這就是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,從配套的調試工具,到舒適度,已經很不錯了。