产业气象站|代码人生丨C++程序员容易走入性能优化误区!对此你怎么看呢?
【产业气象站|代码人生丨C++程序员容易走入性能优化误区!对此你怎么看呢?】有些C++程序员 , 特别是只写C++没有写过Python/PHP等慢语言的程序员 , 容易对性能有心智负担 , 就像着了魔一样 , 每写3行代码必有一行代码因为性能考虑而优化使得代码变形(复杂而晦涩) 。
文章图片
我认为 , 任何系统级的代码 , 都不应该刻意地在代码层面"形式化"地在表面功夫上面考虑性能优化 , 而是应该把心思放到如何让代码更简洁和清晰上面 。 如果逻辑清晰度能提高10% , 代码行数能减少10% , 即使单个模块性能下降20% , 也应该做这笔交易 。 理论上 , 即使单个模块性能下降20% , 整个系统的性能下降也许只有1%(阿姆达尔定律) 。 根据经验 , 如果代码行数减少逻辑清晰度增加 , 带来的往往是性能提升而不是下降 。
文章图片
如果一个C++写的系统中用到了超过3处std::move , 就证明程序员有心智负担了 。 std::move并不是性能优化的手段 , 而是检测系统是否变臭的标记 。 为了不让检测方法失效 , 也就是为了避免程序员逃避检测 , std::move外面裹了一层糖衣 , 吸引那些着了魔的程序员主动来接受检测主动暴露 。 这个符号证明程序员花了大量的精力去追求表面功夫 , 而不是把心思放在如何让系统更简洁和清晰上面 。
lockfree也是检测一个C++系统是否发臭的标记 , 如果你能在代码中感受到程序员在极力避免使用锁 , 也就是明明可以用一行锁解决的事 , 它偏偏封装了5个辅助类 , 引入了3个概念 , 那么 , 显然你也闻到了发臭的味道 。
文章图片
为什么要强调C++呢?因为一个C++程序员诞生的时候 , 他有极高的机率沾染上"过度优化"的毛病 , 这个毛病一直伴随许多C++程序员的职业生命周期 。 这是一个慢性病 , 影响程序员的个人职业发展 , 毁坏程序员参与开发的系统 。
自学C/C++编程难度很大 , 不妨和一些志同道合的小伙伴一起学习成长!
- 『程序员』装出新高度! 程序员用代码写招租广告只因不想与其它行业人士合租
- 产业气象站|散热效果大大下降,CPU硅脂应该这样涂!涂多了得不偿失
- 【湖南】那些街边不起眼的小小打印店,背后却是鲜为人知的产业帝国
- 产业气象站|5G汽车:新能源汽车产业发展新方向
- 产业气象站|「电商运营」作为电商运营需要具备的逻辑思维
- 路飞写代码|浪潮也难以逃脱限制,自主自研迫在眉睫!美国科技霸凌背后的“获利”浪潮也被美国进行断供更大的风暴还在后面写在最后:,中兴、华为之
- 电子产业观察者|他才是人生大赢家,段永平:OPPO、vivo真正的幕后大老板
- 大宇说科技|斥资188亿,解决了芯片全产业链困局,中国最强芯片巨头诞生
- 自主汽车网|汽车产业生态将被重建,“软件定义的汽车”成为共识
- 科技小数据|产业观察:如何通俗地理解5G及其应用