一直都认为,javascript的函数调用是一个相对耗时的操作。
开始
JSI的优化,这些问题现在必须认真考虑了,测试一把:
一个简单的++操作,直接操作和函数内操作(注,函数参数对原始类型是值传递,所以这不会影响被传入的变量,这里测试里面,两类操作的行为是不一样的)
FF2测试结果(callTime/opTime):
2871/2582
2919/2675
2734/2704
2953/2516
3732/3346
IE7测试结果:
3140/376
3173/327
3238/247
3265/235
3217/299
通过测试可见,函数调用的消耗基本可以忽略。每次调用时间仅为:
3000/(200*1000*5) ==0.3毫秒 ,这个时间还包含函数内部的++操作
从示例可见,FF的函数调用消耗基本可以府略,IE虽然相当于十倍++类简单操作,但依然不足以重视。
奇怪的是,第一次碰见ie的运行效率高于ff的情况。
测试代码
js 代码
- var i = 0;
- var callTime = 0;
- var opTime = 0;
- var inc = 0;
- function plus(z){z++};
- while(inc++<200){
- var i=0;
- var x = 1;
- var t1 = new Date();
- while(i++<1000){
- plus(x);
- plus(x);
- plus(x);
- plus(x);
- plus(x);
- }
-
- var t2 = new Date();
- while(i++<2000){
- x++;
- x++;
- x++;
- x++;
- x++;
- }
- var t3 = new Date();
- callTime+=(t2-t1);
- opTime+=(t3-t2);
- }
-
- prompt("callTime/opTime",callTime +'/'+opTime)
分享到:
相关推荐
JavaScript提供了 4 种函数调用: 一般形式的函数调用 作为对象的方法调用 使用 call 和 apply 动态调用 使用 new 间接调用 5.2.2 函数的调用方式 2、函数的调用方式 一般形式的函数调用,是常见的函数调用方式,...
C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用
JavaScript程序设计 ...实参:指的是实际参数,也就是具体的值,在函数调用时传递的参数。 function maxNum(a, b) { a = parseInt(a); b = parseInt(b); return a >= b ? a : b; } 示例 5.2.3 函数的参数 2. 参数设置
深入理解JavaScript系列(4):立即调用的函数表达式 深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP 深入理解JavaScript系列(7):S.O.L.I.D...
用javascript代码调用delphi写的函数
概念:所谓函数表达式指的是将声明的函数赋值给一个变量,通过变量完成函数的调用和参数的传递,它也是JavaScript中另一种实现自定义函数的方式。 5.5 匿名函数 函数表达式 var fn = function sum(num1, num2) { ...
深入理解JavaScript系列(4):立即调用的函数表达式 深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S O L I D五大原则之单一职责SRP 深入理解JavaScript系列(7):S O L I D...
它指的是一个函数在其函数体内调用自身的过程,这种函数称为递归函数。 下面以计算阶乘为例进行演示: 上述代码中定义了一个递归函数factorial(),用于实现n的阶乘计算。当n不等于1时,递归调用当前变量n乘以 ...
这是使用 CEF 开发时 C++ 调用 JavaScript 函数的例子,详细步骤请见博客文章 http://blog.csdn.net/blackwoodcliff/article/details/75137460
JavaScript 函数调用 JavaScript 函数有 4 种调用方式。 每种方式的不同方式在于 this 的初始化。 this 关键字 一般而言,在Javascript中,this指向函数执行时的当前对象。 Note 注意 this 是保留关键字,你不能...
这是使用 CEF 开发时 JavaScript 调用 C++ 函数的例子,详细步骤请见博客文章 http://blog.csdn.net/blackwoodcliff/article/details/78598262
一个在HTML中使用Javascript的window.external调用C#内函数的示例程序。该方法可应用于网页程序开发中的网页-程序沟通,例如用C#的IHTMLWindow2.execScript替换HTML默认Javascript方法使其直接与C#传参、通讯。
深入理解JavaScript系列(4):立即调用的函数表达式 ... 深入理解JavaScript系列(结局篇) 说明:此系列文档均为网页形式。本人将汤姆大叔(原文译者)的大作,保存收藏起来,并打包成ZIP格式,方便以后学习查阅。...
函数有四种调用模式,分别是:函数调用形式、方法调用形式、构造器形式、以及apply形式。这里所有的调用模式中,最主要的区别在于关键字 this 的意义,下面分别介绍这个几种调用形式。 本文主要内容: 1.分析函数的...
深入理解JavaScript系列(4):立即调用的函数表达式
javascript嵌套函数和在函数内调用外部函数的区别分析.docx
c#代码与javascript函数的相互调用
JavaScript调用window函数.docx
下面的调用模式就是大家最熟悉的函数调用模式,而函数调用模式的this指向和返回值是什么呢? function fn1 () { console.log(this); }; fn1(); // 在调用函数fn1时,输出的this的结果是Window 在上述代码中,fn1也...
本文实例讲述了JavaScript实现同时调用多个函数的方法。分享给大家供大家参考,具体如下: 这里分析JavaScript 同时调用同一网页内的多个函数的实现方法,点击按钮后执行多次函数,比如连续弹出多次窗口。 具体代码...