有個開發(fā)者最近翻舊賬,說自己浪費(fèi)了整整三年。不是感情問題,是代碼問題——9個C++特性擺在眼前,他愣是沒碰,直到某天深夜重構(gòu),性能直接飆了10倍。
這事的荒誕之處在于:這些特性不是藏在標(biāo)準(zhǔn)文檔的腳注里,是明明白白寫在教科書上的東西。constexpr、move語義、結(jié)構(gòu)化綁定……名字都聽過,就是懶得改寫法。他形容自己像「拿著智能手機(jī)當(dāng)座機(jī)用,還抱怨撥號太慢」。
最打臉的是第7個特性——std::string_view。他之前寫了個高頻調(diào)用的字符串處理模塊,每次傳參都默默拷貝整段內(nèi)存。換成string_view后, profiling圖上的紅色尖峰直接削平。沒有算法優(yōu)化,沒有多線程改造,就是少做了幾份深拷貝。
評論區(qū)有人補(bǔ)刀:「C++程序員的老毛病,把新特性當(dāng)語法糖,直到被性能賬單打臉。」這話刻薄,但準(zhǔn)。標(biāo)準(zhǔn)委員會每三年發(fā)一版新規(guī)范,多數(shù)人用著C++11的腦子寫C++20的代碼,編譯器默默嘆氣。
他最后貼了個對比截圖:重構(gòu)前后同一組測試用例,執(zhí)行時間從4.2秒掉到0.4秒。底下最高贊評論是:「三年無視,一夜真香。這10倍加速,買的是你欠下的技術(shù)債利息。」
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.