9千萬次循環 從2分3秒 優化到 7.3秒的過程 GO語言


 

這就是GO~  對於想極致的性能挖掘 GO語言基本沒有太多空間。 

 下面是測試的代碼,純粹測試解釋指令的效果,歡迎各語言殘份 幫忙測一些數據對比一下。。

    int uu=0;
        //99999999
        for (int i=0;i<99999999;i++){
            uu++;
        
        }

 

說下優化 過程 

1、干了所有的MAP,必須要用MAP的話 key 請搞成int....  但是 在pprof的過程發現一個rumtime.mapxxaccessfast64xx的底層方法 也比較耗時,果斷全換成切片了

2、能不用方法返回屬性的 就不能通過方法返回屬性,在外部 直接引用屬性

3、所有的對象默認在棧上分配。。 后續的全靠GO了。。

4、切片能初始化容量\size的就初始化,方便快速索引,append 效率也比較低的

5、減少方法調方法的 這樣會產生多次拷貝。。

后續的優化思路

1、所有需要對象,系統啟動就每個 先new 100 個出來 池化起來,能不new就不new 同時能不棧上分配就不棧上分配

2、對於棧幀,也考慮提前new 因為會頻發的使用到

 對於GO的 愚見

整體表現OK,從配套的調試工具,到舒適度,已經很不錯了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM