提高软件CPU占用率
生活随笔
收集整理的這篇文章主要介紹了
提高软件CPU占用率
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
案例:
獨立線程以5ms一包的速率接收指令(一共大概70-80種指令類型),并放入一個隊列A
主線程中,根據定時器去隊列A中取數據,并解析/計算/顯示(速率:200包/秒)
現象:按理說這個收/發的頻率是能保持平衡的,也就是收多少就處理多少,延遲會很小(可能就是一個指令的傳輸時間),但是實際現象是,隨著時間的推移,隊列A越來越大。
發現:調試的時候發現是處理數據的時候,判斷數據包類型,并進行解析模塊比較費時間(注釋掉這塊內容就不存在延遲了)。因此排除了代碼本身的問題;
代碼沒問題,那就只能從設備方下手
解決方案:提高軟件的優先級,讓CPU優先處理我這個軟件的計算處理
//REALTIME_PRIORITY_CLASS 實時//HIGH_PRIORITY_CLASS 高//ABOVE_NORMAL_PRIORITY_CLASS 高于正常//NORMAL_PRIORITY_CLASS 正常//BELOW_NORMAL_PRIORITY_CLASS 低于正常//IDLE_PRIORITY_CLASS 空閑GetCurrentProcess():當前軟件進程int main(int argc, char *argv[]) {SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS ); }查看進程的當前CPU優先級:
任務管理器-鼠標右鍵(軟件進程)-轉到詳細詳細-鼠標右鍵(軟件進程)-設置進程優先級
?然后,你啟動軟件的時候就會發現,應用程序優先級,由默認的正常,改成了你需要的!
總結
以上是生活随笔為你收集整理的提高软件CPU占用率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【设计】宽范围输入线性稳压器
- 下一篇: 微博数据爬虫——获取用户基本信息(三)