性能比较误人不浅(理论与现实的次数差距)
2014-06-05 00:00
218 查看
一个简单却误人很深的性能比较问题如下:
群里刚出现了一个反射与Emit的性能比较:
测试者:for了20000000次的循环,终于得出了Emit比反射性能来的好结论!!!
结论对不?对!
比较普通的用string和stringbuilder的比较,也喜欢for 200000000次的循环,然后得出后者性能好的结论。
结论对不?对!
纵观基本几有的性能测试,都喜欢for 100000000后面的0越多越好, 会感觉效果与结论更显著一些!!!
其实误区就在这次数,理论与现实的差距!!!!!
如果把for的次数设置底于500以下,很明显前者性能好一些。
OK,现实是什么?现实就是很少场景会用到一次操作for超过1000次的,通常for 500次以下的居多。
因此现实的情况是:(web多线程)并发多,单次循环次数多!
举例:你读取50条数据,然后反射为实体,输出!(这么多实在的现实场景!!!而读500000000条数据再转实体输出的有没有?有,有病!)
OK, 然后一个用户来访问,你就for了50次。
那么1000人来访问,是啥情况?for了50*1000???(自己猜了)
这就是现实了:1000个并发50次和一个人循环50*1000次的性能差别。
本文旨在告诉大伙:
如果你还看不懂这些,没事,都有个过渡,IT领域学错比不学好,被误导是好事,多学,错也不打紧!
如果你看的懂,有过误导情节,如果你追求性能,理论归理论,现实归现实,结合才是硬道理!
群里刚出现了一个反射与Emit的性能比较:
测试者:for了20000000次的循环,终于得出了Emit比反射性能来的好结论!!!
结论对不?对!
比较普通的用string和stringbuilder的比较,也喜欢for 200000000次的循环,然后得出后者性能好的结论。
结论对不?对!
纵观基本几有的性能测试,都喜欢for 100000000后面的0越多越好, 会感觉效果与结论更显著一些!!!
其实误区就在这次数,理论与现实的差距!!!!!
如果把for的次数设置底于500以下,很明显前者性能好一些。
OK,现实是什么?现实就是很少场景会用到一次操作for超过1000次的,通常for 500次以下的居多。
因此现实的情况是:(web多线程)并发多,单次循环次数多!
举例:你读取50条数据,然后反射为实体,输出!(这么多实在的现实场景!!!而读500000000条数据再转实体输出的有没有?有,有病!)
OK, 然后一个用户来访问,你就for了50次。
那么1000人来访问,是啥情况?for了50*1000???(自己猜了)
这就是现实了:1000个并发50次和一个人循环50*1000次的性能差别。
本文旨在告诉大伙:
如果你还看不懂这些,没事,都有个过渡,IT领域学错比不学好,被误导是好事,多学,错也不打紧!
如果你看的懂,有过误导情节,如果你追求性能,理论归理论,现实归现实,结合才是硬道理!
相关文章推荐
- 性能比较误人不浅(理论与现实的次数差距)
- 性能比较误人不浅(理论与现实的次数差距)
- 性能比较误人不浅(理论与现实的次数差距)
- 【matlab】仿真4PSK调制信号在高斯信道下的性能,并与理论分析结果比较——理论篇
- 【matlab】仿真4PSK调制信号在高斯信道下的性能,并与理论分析结果比较——仿真篇
- 关于顺序存储和链式存储读写性能的比较(理论)
- 查找字符串中指定字符出现的次数:性能比较
- 比较POF与PE、PVC收缩膜物理性能优劣
- Redis 的性能幻想与残酷现实
- Sql Server多种分页性能的比较
- Map及其子类源码简单分析以及性能比较
- 再谈Activator.CreateInstance(Type type)方法创建对象和Expression Tree创建对象性能的比较(更新版)
- MySQL的MyISAM和InnoDB的大数据量查询性能比较
- 移动开发平台性能比较
- Java压缩算法性能比较
- Gson与Fastjson性能比较
- JS中三种字符串连接方式及其性能比较
- 两种AOP实现方式的性能比较 (转)
- 八种 WebSocket 框架的性能比较
- 各种同步方法性能比较(synchronized,ReentrantLock,Atomic)