关于erlang中的timer:tc/3

timer:tc/3对于统计函数运行时间是个很不错的函数,

截图timer:tc/1,tc/2,tc/3的API:

拿斐波那契数列入手做个讲解:

-module(fib).
-export([fib/1]).

fib(0) -> 0;
fib(1) -> 1;
fib(N) when N>1 -> fib(N-1) + fib(N-2).

对于统计运行时间,直接上图:

这里的355000为MincSeconds.

注意:这是统计从1到30,斐波那契函数运行的总时间。

若要使变通下,要是求每个运行的时间,(若是求)计算每个函数请求的响应时间,则如下:

ps:这里可以扩展做获取每个request的接口的请求时间.

timer:tc/3  是在代码调优中的很好的工具以及获取某函数运行时间.

时间: 2024-10-14 02:34:08

关于erlang中的timer:tc/3的相关文章

JDK中的Timer和TimerTask详解

目录结构: Timer和TimerTask 一个Timer调度的例子 如何终止Timer线程 关于cancle方式终止线程 反复执行一个任务 schedule VS. scheduleAtFixedRate 一些注意点 1. Timer和TimerTask Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次. TimerTask是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务. 2.

qt中定时器Timer的使用

qt中定时器Timer的使用,布布扣,bubuko.com

关于erlang中的进程字典(process dictionary)的新理解及其访问速度 (copy来的)

之前对于erlang的进程字典了解的不够清楚,只是知道put().get()函数,即存值和取值,而每个put.get中都有自己的一对Key--Value(键值对)与之对应.一个Key对应一个Value.在erlang中,启动进程节点之后,进程字典的put.get的值是对缓存的处理,而对数据库的操作,相当于是对硬盘的一个操作,可以理解成是一个数据的备份. 举个简单的例子:在游戏中都有好友操作,启动服务之后,玩家点击添加好友操作,进程的节点已经开启,先从内存中获取玩家的进程字典的Value的值,这里

ASP.NET AJAX入门系列(11):在多个UpdatePanle中使用Timer控件

本文将使用Timer控件更新两个UpdatePanel控件,Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel的触发器,翻译自官方文档. 主要内容 在多个UpdatePanel中使用Timer控件 1.添加一个新页面并切换到设计视图. 2.如果页面没有包含ScriptManager控件,在工具箱中的AJAX Extensions标签下双击ScriptManager控件添加到页面中. 3.双击Timer控件添加到Web页面中.Timer控件可以作为Update

erlang中字符编码转换(转)

转自:http://www.thinksaas.cn/group/topic/244329/ 功能说明: erlang中对各种语言的编码支持不足,此代码是使用erlang驱动了著名的iconv编码库来对字符进行编码转换处理. 文件说明: iconv_erl.c和iconv.h 是erlang字符编码模块的driver,作用是对iconv进行封装.编译后生成iconv_erl.dll,供iconv.erl使用. iconv_makefile.win32 windows上编译iconv_erl.dl

java中基于timer计时器的图片播放

所有注释放在代码中...(图片的加入使用硬代码) package com.sxt.jtime; import java.awt.BorderLayout; public class Itimer_test extends JFrame { private JPanel contentPane; private int index = 0;//图片播放计数器 private ImageIcon[] img;//声明数组用来存放要播放的图片 JLabel label;//声明为全局变量用来显示图片

Erlang中一些错误或者异常的标识

erlang中错误大体分为四种: 1. 编译错误    2. 逻辑错误    3. 运行时错误    4. 用户代码生成的错误 编译错误,主要是编译器检测出的代码语法错误 逻辑错误,是指程序没有完成预期的工作,属于开发人员的问题 运行时错误,是指erlang运行时抛出的错误,比如对非数据类型执行算术运算,erlang运行时会捕获异常,并抛出.在erlang中,这类异常的类型为error 用户自定义错误,是指通过exit/1或者throw/1生成 我们把运行时错误以及用户抛出的错误称为异常(exc

Boost中的Timer的使用——计算时间流逝

使用Boost中的Timer库计算程序的执行时间 程序开发者都会面临一个共同的问题,即写出高质量的代码完成特定的功能.评价代码质量的一个重要标准就是算法的执行效率,也就是算法的执行时间.为了可靠的提高程序的执行效率,首先要知道执行程序所消耗的时间,然后找出可行的方案对程序进行优化.C++程序员在开发代码的过程中难免会遇见此类问题,本文以Boost中的Timer库为例,详细讲解如何测量程序的执行时间. Boost中Timer库的介绍 Timer是Boost中的一个很小的时间库,提供时间度量和进度显

Erlang中频繁发送远程消息要注意的问题

http://avindev.iteye.com/blog/76373 注:这篇文章可能会有争议,欢迎提出意见 在Erlang中,如果要实现两个远程节点之间的通信,就需要通过网络来实现,对于消息发送,是使用TCP.如果要在两个节点间频繁发送消息,比如每秒几百上千条,那样就要注意了. 无论是网游服务器开发的书籍,或是经验老道的工程师,都会告诉你,在发送数据包时,尽可能把小的消息组合为一个比较大的包来发送,毕竟一个TCP包的头也很大,首先是浪费带宽,其次调用底层发送的指令也是有开销的.有工程师告诉我