Python测试:小心藏在简洁背后的那些陷阱
很多朋友都会疑问,自己写的代码为什么那么慢? 记得在读研究生的时候,我的导师到台湾去访学,跟我讲了他的亲身经历,说他写的算法,半个小时,计算机就出结果了,而且是在个人电脑上,台湾的学生2-3天都算不出来,问了之后,说还在计算。 导师说的问题是关于裂缝的应力分析的,简单讲,比如,一颗子弹打到玻璃上,玻璃会不会出现裂缝,裂缝周围的应力是怎么分布的,出现裂缝之后,玻璃还能不能继续达到使用的应力承载能力? 这是一个很复杂的计算,可以说导师的算法非常好。当然我们是做计算机数值计算的,对性能的追求可以说达到了极致,在应用领域,开发成本也是非常重要的考量。 我们公司的流体力学仿真软件一直非常追求性能,同时作为商业的软件开发公司,在开发成本上的考虑也是非常关注的。从计算性能,到可视化性能各个方面,都需要时间和经验的高度分析。 今天我们聊聊性能这件事。 关于性能和开发 1、编程之美的准则是什么? 美与丑,是做一个判别,既然是判别自然存在一个标准的问题,也就是准测。 作为算法工程师,首先自然是完成功能,然后才是性能。但是,功能这件事,通常很好描述,标准也相对清晰,而,性能这件事却无穷无尽。 一般情况下,我们的判别标准就是在功能满足客户需求的情况下,以当前市面上软件水平的客户体验效果为标准,别人一个操作等0.1秒,我们做到0.1秒以内就可以。 2、牺牲性能的背后,是组织形式的自由和更广泛的人才空间