国产精品免费嫩草研究院|无遮羞动漫在线观看AV|国产麻豆精品传媒AV国产在线|村在线观看|寂寞情人1正版|韩国床震韩国床震古|精品系列专区久久

用golang開發系統軟件的一些細節( 九 )


需要額外注意兩點:

  • 一個大的struct數組,要注意字節對齊帶來的不必要消耗 。內存敏感的話,調整字段的順序以節約空間 。
  • 一個大的struct數組,可以故意加些padding的字段,然item盡可能的按照cache line的長度對齊,可以提升訪問性能 。
分支預測優化這種優化點很難找 。
關于分支預測的案例,可以看看我寫的這個分析文章:《用重復寫入代替if判斷,減少程序分支》
golang標準庫中也有個很好的例子:《How does ConstantTimeByteEq work?》
一個簡單的if x==y,考慮了攻擊者對計算時間的猜測,考慮了分支預測的損耗 。
其他的關于分支預測的優化技巧,這篇也不錯:《淺談利用分支預測提高效率》
在日常的開發中,換個寫法是有可能會提高性能的:
switch variable{  case "a":    // 根據業務特點,把最可能的分支放在最前 。提高分支預測的成功率     // do something  case "b":     // do something}OK,文章到這里就結束了 。
本人也才寫了兩年的golang,難免有很多錯誤之處,還請讀者不吝賜教,謝謝!
【用golang開發系統軟件的一些細節】

經驗總結擴展閱讀