天天看點

性能優化--【2】--java程式設計與優化

性能優化目标

  1. 更快響應速
  2. 更少的資源占用
  3. 更高的并發量

基礎

  1. linux系統cpu分片時間在5ms~800ms
  2. 而一個标準linux核心支援50~50000
  3. linux在配置設定運作時間時傾向于有IO消耗程序的優先級。sleep_avg越大的程序優先級别越高,而配置設定的運作時間越多。
  4. 在linux上線程其實是一種所謂輕量級程序的實作,并且在核心3.0以後有所優化,建立速度比普通程序的建立快10~100倍。
  5. cpu核心的運作隊列最好是核心數X2
  6. 大量上下文切換會花費幾多的時間與空間代價,影響系統性能
  7. 每一個程序無法全部消耗cpu核心的處理能力
  8. java的full GC操作嚴重影響性能
  9. java記憶體中老代對象的存儲空間過小會提高full GC的頻率,過大會造成full GC的時間過長

設計與優化思路

  1. 提高時間片内處理請求數量為核心目的
  2. 依據目标硬體設計架構,最好按照一核一線程
  3. 變量申請會消耗指令數量,減少變量建立
  4. 每一個請求的需要處理的指令數量需要盡可能的少
  5. 跨網絡的請求雖然時間消耗少,但是可能會有io等待産生産生時間片的無操作損耗。
  6. 功能完善的開源架構雖然提供的開發的便利性,但是如果需要極緻的性能需求,簡單粗暴目的明确的代碼實作方式更為合适。