一直都认为,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与Delphi之间的交互。这种交互通常发生在Web应用程序与桌面应用程序的集成,或者在浏览器扩展和本地资源之间。以下是对这一...
概念:所谓函数表达式指的是将声明的函数赋值给一个变量,通过变量完成函数的调用和参数的传递,它也是JavaScript中另一种实现自定义函数的方式。 5.5 匿名函数 函数表达式 var fn = function sum(num1, num2) { ...
### JavaScript:函数与作用域 #### 一、函数基础 **1.1 函数声明与表达式** 在JavaScript中,函数是一段可重用的代码块,用来执行特定任务。函数可以通过两种方式进行定义:函数声明和函数表达式。 - **函数...
深入理解JavaScript系列(4):立即调用的函数表达式 深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S O L I D五大原则之单一职责SRP 深入理解JavaScript系列(7):S O L I D...
了解并熟练掌握这些函数调用模式对于编写高效、可维护的 JavaScript 代码至关重要。它们在处理对象间的交互、继承和上下文绑定时尤其有用。在实际开发中,你需要根据场景选择合适的调用方式,以便更好地控制代码的...
接下来,我们来看看实现动态函数调用的几种方式: 1. 使用eval()函数: eval()函数可以执行字符串中的JavaScript代码,如果我们知道要调用的函数名的字符串,可以将其与括号“()”组合起来形成代码字符串,并用eval...
6. 嵌套函数调用:在一个函数内部调用另一个函数,可以实现更复杂的逻辑结构。 7. 高阶函数:函数作为参数传递给其他函数,或者接收函数作为返回值,这在函数式编程中很常见。 8. 函数库和模块:程序员可以将相关...
JavaScript函数式编程是一种编程范式,它强调将计算视为数据处理的过程,并且重视函数作为第一类公民,即函数可以作为变量赋值、作为参数传递、作为返回值返回。这种编程风格在JavaScript中尤其常见,因为它提供了...
- 这里的回调函数用于处理JavaScript函数的异步返回结果,如果需要同步获取结果,可以使用`QWebEngineScript`来注册一个全局JavaScript对象,然后通过该对象调用JavaScript函数。 2. **JavaScript调用QT函数**: ...
这是使用 CEF 开发时 C++ 调用 JavaScript 函数的例子,详细步骤请见博客文章 http://blog.csdn.net/blackwoodcliff/article/details/75137460
JavaScript 函数调用 JavaScript 函数有 4 种调用方式。 每种方式的不同方式在于 this 的初始化。 this 关键字 一般而言,在Javascript中,this指向函数执行时的当前对象。 Note 注意 this 是保留关键字,你不能...
总结起来,"JavaScript函数调用堆栈loader"是Webpack中的一个工具,它可以帮助开发者捕获并可视化JavaScript代码的执行路径,提供了一种有效的方式来调试和优化程序,尤其对于理解和解决运行时错误、性能瓶颈等问题...
当遇到函数调用时,会创建一个新的函数执行上下文并将其推入调用栈。函数执行完毕后,其执行上下文从调用栈中弹出。事件循环监控调用栈和消息队列。当调用栈为空时,事件循环会从消息队列中取出事件并创建一个新的...
这个HTML文件通常用于设置测试场景,如加载需要测试的JavaScript函数或者创建用户交互元素来触发性能测试。 `PerformanceTest.js`是核心部分,它包含了性能测试的逻辑。在JavaScript中,我们可以利用浏览器内置的`...
例如,如果你想从VBScript调用一个名为`myFunc`的JavaScript函数,你可以这样做: ```vbscript Dim myObj Set myObj = Server.CreateObject("Scripting.Dictionary") myObj.Language = "JScript" myObj.Add "myFunc...
### JavaScript嵌套函数与在函数内调用外部函数的区别分析 #### 一、引言 在JavaScript编程中,函数是一等公民,这意味着函数可以作为参数传递给其他函数,也可以作为其他函数的结果返回。这种特性使得JavaScript...