锁定老帖子 主题:每秒多少次是怎么算出来的?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-06
那种大型机, 说是每秒多少多少万次, 是怎么算出来的?
|
|
返回顶楼 | |
发表时间:2011-08-06
hiblue 写道 那种大型机, 说是每秒多少多少万次, 是怎么算出来的?
这个是说CPU完成多少指令吧,设计出来的。 |
|
返回顶楼 | |
发表时间:2011-08-07
aaa5131421 写道 風一樣的男子 写道 yuanfeng_dong 写道 long startTime = System.currentTimeMillis(); for(int i = 0; i <= 100; i++){ //...你的程序 } long endTime = System.currentTimeMillis(); long elapsedTime = endTime - startTime; long n = 100/elapsedTime; System.out.print("每秒钟执行"+n+"次"); 这样算有意义吗? System.currentTimeMillis();本身就是个很耗时的操作 耗不耗时是一个相对的概念,100次程序操作夹杂两次额外的计时操作,完全可以接受。 ps:currentTimemillis有的平台精度不准,参照api,精确的计时需要用public static long nanoTime(); 在单线程中测试,有意义吗? |
|
返回顶楼 | |
发表时间:2011-08-07
希望做过的 给讲解一下。
|
|
返回顶楼 | |
发表时间:2011-08-07
yuanfeng_dong 写道 long startTime = System.currentTimeMillis(); for(int i = 0; i <= 100; i++){ //...你的程序 } long endTime = System.currentTimeMillis(); long elapsedTime = endTime - startTime; long n = 100/elapsedTime; System.out.print("每秒钟执行"+n+"次"); 实际速度会是你算出来的好几倍,首先for中每一次循环都要执行一次i++(这个至少是一次计算),然后是计算i <= 100的值,也至少有一次以上计算,还有算出i <= 100值后判断此布尔值的真伪又是一次计算。所以实际计算机速度至少是你算出来的值的4倍以上 |
|
返回顶楼 | |
发表时间:2011-08-08
你想知道这个数据是为什么用?
单线程?多线程? 要知道,不同的硬件环境会有不同的执行效率 不列出测试环境,怎么能说明白你的每秒多少次是真实有效的? |
|
返回顶楼 | |
发表时间:2011-08-08
freish 写道 loadrunner测出来的
这位来自少林的女弟子。。。天天瞎跑 |
|
返回顶楼 | |
发表时间:2011-08-08
大明湖畔的传说哥 写道 yuanfeng_dong 写道 long startTime = System.currentTimeMillis(); for(int i = 0; i <= 100; i++){ //...你的程序 } long endTime = System.currentTimeMillis(); long elapsedTime = endTime - startTime; long n = 100/elapsedTime; System.out.print("每秒钟执行"+n+"次"); 实际速度会是你算出来的好几倍,首先for中每一次循环都要执行一次i++(这个至少是一次计算),然后是计算i <= 100的值,也至少有一次以上计算,还有算出i <= 100值后判断此布尔值的真伪又是一次计算。所以实际计算机速度至少是你算出来的值的4倍以上 先把程序放进去测试得到第一个 elapsedTime1; 再把程序注释掉测试得到第二个 elapsedTime2; 实际程序运行时间为 elapsedTime1 - elapsedTime2. |
|
返回顶楼 | |
发表时间:2011-08-08
与其纠结几十 毫秒的误差
不如测试一些每次耗时在 100毫秒以上的操作。 比如网络通信,IO, |
|
返回顶楼 | |
发表时间:2011-08-08
建议看下struts2源码里面 的计时器 那个实现比较可以
|
|
返回顶楼 | |