• 性能比较误人不浅(理论与现实的次数差距)


    一个简单却误人很深的性能比较问题如下: 

    群里刚出现了一个反射与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领域学错比不学好,被误导是好事,多学,错也不打紧! 

    如果你看的懂,有过误导情节,如果你追求性能,理论归理论,现实归现实,结合才是硬道理! 

  • 相关阅读:
    0-完全开源的 Vue.js 入门级教程:HelloVue,发车啦!
    [Java 开源项目]一款无需写任何代码,即可一键生成前后端代码的工具
    用 Java 做个“你画手机猜”的小游戏
    PowerJob 从 0 到 1.9k star 的经历
    最后一篇:结束不想说再见,那就扬帆再次起航!
    shell 常用快捷键
    微服务网关评测对比
    Docker加入自定义iptables规则链
    CentOS.7防火墙firewalld属性
    bash和shell的差别
  • 原文地址:https://www.cnblogs.com/cyq1162/p/2550848.html
Copyright © 2020-2023  润新知