锁定老帖子 主题:我所做的Java和C++性能测试
精华帖 (2) :: 良好帖 (2) :: 新手帖 (11) :: 隐藏帖 (7)
|
|
---|---|
作者 | 正文 |
发表时间:2011-05-24
caoyangx 写道
starry198804265811 写道
4 测试结果 我的软硬件环境: 硬件配置:AMD AthlonII X3 435 2.89GHz; 2GB DDR3内存;WD 500G硬盘; 软件环境:Windows7 旗舰版;Visual C++ 2008;SUN jdk1.6.0_21.
你们也是AMD三核CPU? 你们的电脑也是王志配的吗? 三核~你能装上Sql2000吗? |
|
返回顶楼 | |
发表时间:2011-05-24
最后修改:2011-05-24
for (j = 0;j < MAIN_C; j++) { test = new PerformTest(); test.doTest(); test = null; } 你这里还测试了new 10000次的对象,如果只是做计算的能力对比建议不要new 10000个,只new 1个进行测试更好 因为new的操作相比于计算还是比较耗的 |
|
返回顶楼 | |
发表时间:2011-05-24
题目取的太大了...
你这叫,java通过jni方式调用windowsapi 与 c++直接调用windowsapi的比较. |
|
返回顶楼 | |
发表时间:2011-05-24
njbble 写道 你用汇编再写个用例测试一下
顶 |
|
返回顶楼 | |
发表时间:2011-05-24
JE帐号 写道 题目取的太大了...
你这叫,java通过jni方式调用windowsapi 与 c++直接调用windowsapi的比较. +1 |
|
返回顶楼 | |
发表时间:2011-05-24
skzr.org 写道 for (j = 0;j < MAIN_C; j++) { test = new PerformTest(); test.doTest(); test = null; } 你这里还测试了new 10000次的对象,如果只是做计算的能力对比建议不要new 10000个,只new 1个进行测试更好 因为new的操作相比于计算还是比较耗的 如果用我前面给的后一个版本的代码,在我说的条件下执行的话就不会new那么多对象出来。逃逸分析+标量替换解决了这个问题。InlineSmallCode=2000在这个实验里加不加会有影响。 |
|
返回顶楼 | |
发表时间:2011-05-24
代码大全里面说:性能跟你的机器,跟你的环境,用到的相关版本有关,一般就是前期写程序不需要太考虑性能,写出好读逻辑清晰的代码,后期根据特定环境做分析,真正性能设计到的代码只有百分之二,而这百分之二写编码时候是不用费大力气,却在不确定因素上花时间
|
|
返回顶楼 | |
发表时间:2011-05-24
无聊的测试,还不如好好说说某一个语言的编程优化...
|
|
返回顶楼 | |
发表时间:2011-05-24
怎么每个帖子说风凉话都多于认真做讨论的。
楼主辛苦些这些代码,做测试,然后贴出来跟大家分享,无论如何都是值得尊重的。至少楼主验证了在所给出的案例下,c++和Java的性能差别。 如果你认为楼主的水平很差,或者工作毫无价值,那你可以到水平高,或者比较有聊的帖子里去讨论。完全用不着去说风凉话。 现在愿意做这些貌似微不足道的测试的人,不是太多了,而是太少了。不知道这跟风凉话有没有关系。 |
|
返回顶楼 | |
发表时间:2011-05-24
RednaxelaFX 写道
skzr.org 写道
for (j = 0;j < MAIN_C; j++) { test = new PerformTest(); test.doTest(); test = null; } 你这里还测试了new 10000次的对象,如果只是做计算的能力对比建议不要new 10000个,只new 1个进行测试更好 因为new的操作相比于计算还是比较耗的 如果用我前面给的后一个版本的代码,在我说的条件下执行的话就不会new那么多对象出来。逃逸分析+标量替换解决了这个问题。InlineSmallCode=2000在这个实验里加不加会有影响。
不过你的代码里面:
还是一样的new了对象了的?不知道你这里:“在我说的条件下执行的话就不会new那么多对象出来”
|
|
返回顶楼 | |