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

测量函数执行时间

阅读更多
很多时候你需要测量某个函数的执行时间,从而进行优化。

在erlang中,通过timer:tc/3可以很方便的获取某个函数的执行时间:

tc(Module, Function, Arguments) -> {Time, Value}

Types Module = Function = atom()
Arguments = [term()]
Time = integer() in microseconds
Value = term()


返回值中Time表示函数消耗时间,单位为ms。
有些时候,我们需要某个函数的执行多次,从而更准确的获取函数的执行时间,我们可以书写这样的函数:


-module(test_avg).
-compile(export_all).

tc(M, F, A, N) when N > 0 ->
    L = test_loop(M, F, A, N, []),
    Len = length(L),
    LSorted = lists:sort(L),
    Min = lists:nth(1, LSorted),
    Max = lists:nth(Len, LSorted),
    Med = lists:nth(round(Len/2), LSorted),
    Avg = round(lists:foldl(fun(X, Sum) ->
				    X + Sum end,
			    0,
			    LSorted)/Len),
    io:format("Range:~b - ~b mics~n"
	      "Median:~b mics ~n"
	      "Average:~b mics ~n",
	      [Min, Max, Med, Avg]),
    Med.

test_loop(_M, _F, _A, 0, List) ->
    List;
test_loop(M, F, A, N, List) ->
    {T, _R} = timer:tc(M, F, A),
    test_loop(M, F, A, N-1, [T|List]).


这样,我们就可以获取某个函数执行多次的最少消耗时间,最大消耗时间,平均消耗时间了。
实验一下:

> 
test_avg:tc(test_state, test, [], 10).
>Range:68 - 99 mics
Median:76 mics
Average:77 mics

分享到:
评论

相关推荐

    如何在keil中查看程序执行时间

    为了准确测量函数执行时间,我们需要在代码的关键位置设置断点,并通过观察变量来记录时间点。 - **设置断点**:在想要测量执行时间的函数前后各设置一个断点。例如,假设我们要测量`delay()`函数的执行时间,则在`...

    定时函数的应用综述.pdf

    6. **Windows的GetTickCount函数**:GetTickCount返回系统启动后的毫秒数,比clock函数精度更高,但仍然不是绝对精确的定时器,主要用于简单计时或多媒体应用,如测量函数执行时间。 在选择合适的定时函数时,需要...

    php计算函数执行时间的方法

    总结一下,PHP提供多种方式来测量函数执行时间,如使用`microtime()`和自定义函数`getMillisecond()`。理解并掌握这些方法,对于提升代码的效率和性能优化至关重要。同时,要注意浮点数的计算可能会存在精度问题,...

    JavaScript的函数劫持

    - **性能分析**:通过测量函数执行时间,找出性能瓶颈。 - **AOP(面向切面编程)**:在函数调用前后加入特定逻辑,比如事务管理、权限验证等。 - **模拟与测试**:在测试环境中替换某些复杂的依赖,简化测试逻辑。 ...

    (源码)基于C语言的垃圾收集与内存管理模拟系统.zip

    3. 函数执行时间测量ftimewin32.c文件提供了一个实用工具,用于测量函数执行时间,帮助开发者评估代码的执行效率。 4. 命令行参数解析getopt.c文件实现了getopt函数,用于解析命令行参数,便于处理命令行选项和参数...

    测量ARM Cortex-M MCU上的代码执行时间.docx

    测量ARM Cortex-M MCU上的代码执行时间 本文将讨论ARM Cortex-M MCU上的代码执行时间测量方法,这对实时应用系统的开发和优化具有重要意义。测量代码执行时间可以帮助开发者找到代码中的热点,从而对代码进行优化和...

    Python @函数装饰器及@staticmethod,@classmethod.docx

    5. **性能监控**:测量函数执行时间或其他性能指标。 #### 六、静态方法与类方法 除了通用的函数装饰器,Python 还提供了内置的装饰器 `@staticmethod` 和 `@classmethod`。 - **@staticmethod**:将一个方法标记...

    (源码)基于Go语言的编程学习与测试项目.zip

    # 基于Go语言的编程学习与测试项目 ## 项目简介 该项目是学习Go语言时所做的笔记和测试代码集合,不再更新,...4. 函数装饰器通过func关键字定义函数装饰器,可在函数调用前后添加额外操作,例如测量函数执行时间。

    DSP中的DSP函数执行时间自动测试方法

    以TI C64x+ DSP为例,描述了如何利用TI集成开发环境及相关的配套脚本分析工具,实现大量函数执行时间自动测试的方法,该方法效率高,并且可获得函数运行的各类信息,为软件的函数级优化提供了充分依据。  1.前言 ...

    鲲鹏920处理器的汇编代码优化

    首先,实验介绍了如何测量函数执行时间,这是评估优化效果的关键。通过C语言调用汇编,利用`clock_gettime()`函数记录开始和结束时间,计算内存拷贝函数`memorycopy()`的执行时间。实验提供了一个基础的内存拷贝函数...

    JavaScript性能优化.docx

    这可以通过浏览器的开发者工具实现,如Chrome的DevTools,它提供的性能分析工具可以帮助开发者测量函数执行时间,从而发现执行缓慢的代码段。此外,代码分析工具如ESLint也能辅助识别代码中潜在的性能问题,例如循环...

    apihook钩子截获对DLL的调用.zip

    - **性能分析**:测量函数执行时间,优化程序性能。 - **安全监测**:检测恶意软件对特定API的滥用。 - **插件系统**:扩展应用程序功能,如游戏模组。 在使用API Hook时,需要注意潜在的问题,如稳定性、兼容性和...

    cpp-benchmarkGoogle提供小型微基准测试支持库

    其核心功能包括测量函数执行时间、计算平均运行时间、处理并发执行等。通过这些功能,开发者可以对比不同实现方案的性能,从而选择最佳实践。 **使用方法** 1. **安装与集成**: `google-benchmark`通常可以通过包...

    EasyHook-2.7.6270.0.zip_c# easy hook_easyhook_easyhook 2.7_eas

    - **性能分析**:通过拦截函数调用,可以测量函数执行时间,从而发现性能瓶颈。 - **系统监控**:可以监控系统级别的行为,如网络通信、文件操作等。 - **插件系统**:允许第三方开发者扩展主程序的功能,而无需...

    Decode lua调试工具

    6. **性能分析**:某些高级调试器还包括性能分析工具,可以测量函数执行时间,帮助优化代码性能。 7. **协同工作**:Decoda可能支持多人协作,多人可以同时查看和调试同一份代码,这对于团队开发来说非常方便。 总...

    Python高级疯狂讲义v4.5_20181104-746-876.pdf

    3. **计时器**:测量函数执行时间。 #### 示例代码分析: ```python def makeBlod(func): def wrapped(): return "<b>" + func() + "</b>" return wrapped @makeBlod def test1(): return "helloworld-1" ...

    MPI时间函数的测试

    在 MPI 中,时间函数是最基本的函数之一,它可以用来测量程序的执行时间。下面将从 MPI 时间函数的测试的角度来介绍相关的知识点。 一、MPI_Wtime 函数 MPI_Wtime 函数是 MPI 中最基本的时间函数,它可以返回当前...

    js查看一个函数的执行时间实例代码

    通过本文的介绍,我们了解了如何通过 JavaScript 测量函数的执行时间,并通过实例代码加深了理解。在实际开发中,我们还可以利用现代浏览器提供的开发者工具(如 Chrome 的 Timeline 或 Firefox 的性能分析工具),...

    函数加密解密(外加计算函数加密过程执行时间).rar

    文件列表中的"函数加密解密(外加计算函数加密过程执行时间)"很可能是一个包含详细步骤的教程或代码示例,不仅展示了如何实现函数级别的加密和解密,还提供了测量加密过程执行时间的方法。这在性能优化和理解加密...

    dsp运行时间测量方法及操作说明

    第二种方法是使用clock()函数,这是一种更简单的测量方式,但可能无法准确测量极短的时间间隔。操作步骤如下: 1. 在程序中包含time.h头文件。 2. 定义clock_t类型的变量start、stop和subtraction。 3. 在要测量的...

Global site tag (gtag.js) - Google Analytics