# CPU性能優化的幾個思路 避免「過早優化」 * 小故事:POE(longsing) ## 三個問題 1. 如何判斷現在要做的優化是否有效?優化後,能提升多少性能? 1. 確認性能的量化指標 2. 優化前量測 3. 優化後量測 2. 多個性能問題同時發生時,要先優化哪一個? 1. 找出因果關係 2. 最先達上限的指標(longsing) 3. 當有多種優化方法可以選擇時,要選擇哪一種? 1. 切勿因小失大 2. 不會一步登天 3. 先做最簡單最快速的(longsing) ## 量化指標 * 吞吐量 * 請求延遲(回應速度) * CPU使用率 * RAM使用率(longsing) * IO使用率(longsing) ## 應用程序優化 - 演算法優化 - 迴圈 - 架構 - SIMD - GPU - 編譯器優化 - 參數 - 問題 - 非同步 - 輪詢 替換為 事件通知 - storge I/O - sync - 網路存取 - 索引 - multi thread - concurrent or parallel - JAVA - Thread - Runnable - java.util.concurrent - 線程安全容器 - ExecutorService - newCacheThreadPool - newFixThreadPool - newSingleThreadExecutor=newFixThreadPool(1) - newScheduledThreadPool - newSingleThreadScheduledExecutor=newScheduledThreadPool(1) - https://ithelp.ithome.com.tw/articles/10207124?sc=iThelpR - .setPriority(1~10) - https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/concurrent/package-summary.html - https://docs.oracle.com/javase/8/docs/api/index.html?java/util/concurrent/package-summary.html - C# - Worker - Thread - Async - buffer - storge I/O ## 系統優化 - CPU綁定 - https://www.cnblogs.com/tuowang/p/9398837.html - JVM參數 - CPU獨佔 - https://www.cnblogs.com/tuowang/p/9398837.html - 命令參數 - 優先級調整 - NICE - 設置資源限制(cgroup) - 神奇範例:linux's media player (longsing) - NUMA - IRQ balance - storge block size (longsong)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up