产业气象站|代码人生丨C++程序员容易走入性能优化误区!对此你怎么看呢?

【产业气象站|代码人生丨C++程序员容易走入性能优化误区!对此你怎么看呢?】有些C++程序员 , 特别是只写C++没有写过Python/PHP等慢语言的程序员 , 容易对性能有心智负担 , 就像着了魔一样 , 每写3行代码必有一行代码因为性能考虑而优化使得代码变形(复杂而晦涩) 。
产业气象站|代码人生丨C++程序员容易走入性能优化误区!对此你怎么看呢?
文章图片
我认为 , 任何系统级的代码 , 都不应该刻意地在代码层面"形式化"地在表面功夫上面考虑性能优化 , 而是应该把心思放到如何让代码更简洁和清晰上面 。 如果逻辑清晰度能提高10% , 代码行数能减少10% , 即使单个模块性能下降20% , 也应该做这笔交易 。 理论上 , 即使单个模块性能下降20% , 整个系统的性能下降也许只有1%(阿姆达尔定律) 。 根据经验 , 如果代码行数减少逻辑清晰度增加 , 带来的往往是性能提升而不是下降 。
产业气象站|代码人生丨C++程序员容易走入性能优化误区!对此你怎么看呢?
文章图片
如果一个C++写的系统中用到了超过3处std::move , 就证明程序员有心智负担了 。 std::move并不是性能优化的手段 , 而是检测系统是否变臭的标记 。 为了不让检测方法失效 , 也就是为了避免程序员逃避检测 , std::move外面裹了一层糖衣 , 吸引那些着了魔的程序员主动来接受检测主动暴露 。 这个符号证明程序员花了大量的精力去追求表面功夫 , 而不是把心思放在如何让系统更简洁和清晰上面 。
lockfree也是检测一个C++系统是否发臭的标记 , 如果你能在代码中感受到程序员在极力避免使用锁 , 也就是明明可以用一行锁解决的事 , 它偏偏封装了5个辅助类 , 引入了3个概念 , 那么 , 显然你也闻到了发臭的味道 。
产业气象站|代码人生丨C++程序员容易走入性能优化误区!对此你怎么看呢?
文章图片
为什么要强调C++呢?因为一个C++程序员诞生的时候 , 他有极高的机率沾染上"过度优化"的毛病 , 这个毛病一直伴随许多C++程序员的职业生命周期 。 这是一个慢性病 , 影响程序员的个人职业发展 , 毁坏程序员参与开发的系统 。
自学C/C++编程难度很大 , 不妨和一些志同道合的小伙伴一起学习成长!