`
jindw
  • 浏览: 508614 次
  • 性别: Icon_minigender_1
  • 来自: 初到北京
社区版块
存档分类
最新评论

javascript 性能测试系列:函数调用

阅读更多
一直都认为,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 代码
 
  1. var i = 0;  
  2. var callTime = 0;  
  3. var opTime = 0;  
  4. var inc = 0;  
  5. function plus(z){z++};  
  6. while(inc++<200){  
  7.   var i=0;  
  8.   var x = 1;  
  9.   var t1 = new Date();  
  10.   while(i++<1000){  
  11.     plus(x);  
  12.     plus(x);  
  13.     plus(x);  
  14.     plus(x);  
  15.     plus(x);  
  16.   }  
  17.   
  18.   var t2 = new Date();  
  19.   while(i++<2000){  
  20.     x++;  
  21.     x++;  
  22.     x++;  
  23.     x++;  
  24.     x++;  
  25.   }  
  26.   var t3 = new Date();  
  27.   callTime+=(t2-t1);  
  28.   opTime+=(t3-t2);  
  29. }  
  30.   
  31. prompt("callTime/opTime",callTime +'/'+opTime)  


分享到:
评论

相关推荐

    JavaScript程序设计课件:函数的调用方式.pptx

    JavaScript提供了 4 种函数调用: 一般形式的函数调用 作为对象的方法调用 使用 call 和 apply 动态调用 使用 new 间接调用 5.2.2 函数的调用方式 2、函数的调用方式 一般形式的函数调用,是常见的函数调用方式,...

    C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用

    C#与JAVASCRIPT函数的相互调用 C#调用JAVASCRIPT函数的调用 JAVASCRIPT调用C#函数的调用

    JavaScript程序设计课件:函数的参数.pptx

    JavaScript程序设计 ...实参:指的是实际参数,也就是具体的值,在函数调用时传递的参数。 function maxNum(a, b) { a = parseInt(a); b = parseInt(b); return a &gt;= b ? a : b; } 示例 5.2.3 函数的参数 2. 参数设置

    深入理解JavaScript系列

    深入理解JavaScript系列(4):立即调用的函数表达式 深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP 深入理解JavaScript系列(7):S.O.L.I.D...

    javascript调用delphi中的函数

    标题“javascript调用delphi中的函数”涉及到的技术领域是跨语言通信,具体是JavaScript与Delphi之间的交互。这种交互通常发生在Web应用程序与桌面应用程序的集成,或者在浏览器扩展和本地资源之间。以下是对这一...

    JavaScript程序设计课件:匿名函数.pptx

    概念:所谓函数表达式指的是将声明的函数赋值给一个变量,通过变量完成函数的调用和参数的传递,它也是JavaScript中另一种实现自定义函数的方式。 5.5 匿名函数 函数表达式 var fn = function sum(num1, num2) { ...

    JavaScript:函数与作用域

    ### JavaScript:函数与作用域 #### 一、函数基础 **1.1 函数声明与表达式** 在JavaScript中,函数是一段可重用的代码块,用来执行特定任务。函数可以通过两种方式进行定义:函数声明和函数表达式。 - **函数...

    深入理解JavaScript系列(.chm)

    深入理解JavaScript系列(4):立即调用的函数表达式 深入理解JavaScript系列(5):强大的原型和原型链 深入理解JavaScript系列(6):S O L I D五大原则之单一职责SRP 深入理解JavaScript系列(7):S O L I D...

    JS 四种函数调用模式

    了解并熟练掌握这些函数调用模式对于编写高效、可维护的 JavaScript 代码至关重要。它们在处理对象间的交互、继承和上下文绑定时尤其有用。在实际开发中,你需要根据场景选择合适的调用方式,以便更好地控制代码的...

    javascript实现根据函数名称字符串动态执行函数的方法示例

    接下来,我们来看看实现动态函数调用的几种方式: 1. 使用eval()函数: eval()函数可以执行字符串中的JavaScript代码,如果我们知道要调用的函数名的字符串,可以将其与括号“()”组合起来形成代码字符串,并用eval...

    函数调用.rar

    6. 嵌套函数调用:在一个函数内部调用另一个函数,可以实现更复杂的逻辑结构。 7. 高阶函数:函数作为参数传递给其他函数,或者接收函数作为返回值,这在函数式编程中很常见。 8. 函数库和模块:程序员可以将相关...

    javascript函数式编程

    JavaScript函数式编程是一种编程范式,它强调将计算视为数据处理的过程,并且重视函数作为第一类公民,即函数可以作为变量赋值、作为参数传递、作为返回值返回。这种编程风格在JavaScript中尤其常见,因为它提供了...

    QT和网页中的JavaScript函数进行相互调用的实现

    - 这里的回调函数用于处理JavaScript函数的异步返回结果,如果需要同步获取结果,可以使用`QWebEngineScript`来注册一个全局JavaScript对象,然后通过该对象调用JavaScript函数。 2. **JavaScript调用QT函数**: ...

    CEF:C++ 调用 JavaScript 函数 Demo(VS2013)

    这是使用 CEF 开发时 C++ 调用 JavaScript 函数的例子,详细步骤请见博客文章 http://blog.csdn.net/blackwoodcliff/article/details/75137460

    JavaScript函数的调用以及参数传递

    JavaScript 函数调用 JavaScript 函数有 4 种调用方式。 每种方式的不同方式在于 this 的初始化。 this 关键字 一般而言,在Javascript中,this指向函数执行时的当前对象。 Note 注意 this 是保留关键字,你不能...

    JavaScript函数调用堆栈loader

    总结起来,"JavaScript函数调用堆栈loader"是Webpack中的一个工具,它可以帮助开发者捕获并可视化JavaScript代码的执行路径,提供了一种有效的方式来调试和优化程序,尤其对于理解和解决运行时错误、性能瓶颈等问题...

    JavaScript:异步编程:回调函数与Promise

    当遇到函数调用时,会创建一个新的函数执行上下文并将其推入调用栈。函数执行完毕后,其执行上下文从调用栈中弹出。事件循环监控调用栈和消息队列。当调用栈为空时,事件循环会从消息队列中取出事件并创建一个新的...

    自己写的javascript性能测试插件

    这个HTML文件通常用于设置测试场景,如加载需要测试的JavaScript函数或者创建用户交互元素来触发性能测试。 `PerformanceTest.js`是核心部分,它包含了性能测试的逻辑。在JavaScript中,我们可以利用浏览器内置的`...

    vbscript和javascript互相调用方法

    例如,如果你想从VBScript调用一个名为`myFunc`的JavaScript函数,你可以这样做: ```vbscript Dim myObj Set myObj = Server.CreateObject("Scripting.Dictionary") myObj.Language = "JScript" myObj.Add "myFunc...

    javascript嵌套函数和在函数内调用外部函数的区别分析.docx

    ### JavaScript嵌套函数与在函数内调用外部函数的区别分析 #### 一、引言 在JavaScript编程中,函数是一等公民,这意味着函数可以作为参数传递给其他函数,也可以作为其他函数的结果返回。这种特性使得JavaScript...

Global site tag (gtag.js) - Google Analytics