性能優化目标
- 更快響應速
- 更少的資源占用
- 更高的并發量
基礎
- linux系統cpu分片時間在5ms~800ms
- 而一個标準linux核心支援50~50000
- linux在配置設定運作時間時傾向于有IO消耗程序的優先級。sleep_avg越大的程序優先級别越高,而配置設定的運作時間越多。
- 在linux上線程其實是一種所謂輕量級程序的實作,并且在核心3.0以後有所優化,建立速度比普通程序的建立快10~100倍。
- cpu核心的運作隊列最好是核心數X2
- 大量上下文切換會花費幾多的時間與空間代價,影響系統性能
- 每一個程序無法全部消耗cpu核心的處理能力
- java的full GC操作嚴重影響性能
- java記憶體中老代對象的存儲空間過小會提高full GC的頻率,過大會造成full GC的時間過長
設計與優化思路
- 提高時間片内處理請求數量為核心目的
- 依據目标硬體設計架構,最好按照一核一線程
- 變量申請會消耗指令數量,減少變量建立
- 每一個請求的需要處理的指令數量需要盡可能的少
- 跨網絡的請求雖然時間消耗少,但是可能會有io等待産生産生時間片的無操作損耗。
- 功能完善的開源架構雖然提供的開發的便利性,但是如果需要極緻的性能需求,簡單粗暴目的明确的代碼實作方式更為合适。