C#程序優(yōu)化-有效減少CPU占用率
最近開發(fā)的項(xiàng)目中,由于會(huì)用到比較耗費(fèi)CPU資源的第三方程序ffmpeg來(lái)處理視頻。所以在網(wǎng)上找了一下,如何解決這種問(wèn)題。
于是乎,就得到一個(gè)結(jié)論,減少CPU占用率,可以通過(guò)減少使用的CPU數(shù)量,在Window系統(tǒng)下,打開一個(gè)exe程序,系統(tǒng)會(huì)默認(rèn)使用所有CPU作為處理。

是不是減少CPU使用數(shù)量,就可以減少CPU占用率呢,答案是肯定的。
參考代碼:這里使用calc作為例子。
Process p = new Process(); p.StartInfo.FileName = @"c:\windows\system32\calc.exe"; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true;//重定向 p.StartInfo.UseShellExecute = false; p.StartInfo.CreateNoWindow = true;//無(wú)窗口 p.Start(); // 設(shè)置CPU使用數(shù),這里使用了CPU0和CPU1 p.ProcessorAffinity = (IntPtr)(0x0001 | 0x0002); p.Close(); p.Dispose();

修改后的CPU數(shù)量減少了,在使用過(guò)程中,CPU的占用率也會(huì)大大減少了。
當(dāng)前,還有很多方法,可以減少CPU使用率,聽說(shuō)還有硬件加速等等,不過(guò)這些功能還沒有用過(guò)。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
c#自定義Attribute獲取接口實(shí)現(xiàn)示例代碼
這篇文章主要給大家介紹了關(guān)于c#自定義Attribute獲取接口實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
淺析C#靜態(tài)類,靜態(tài)構(gòu)造函數(shù),靜態(tài)變量
這篇文章主要介紹了淺析C#靜態(tài)類,靜態(tài)構(gòu)造函數(shù),靜態(tài)變量 的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
如何使用C#串口通訊實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收
本文詳細(xì)介紹了如何使用C#實(shí)現(xiàn)基于串口通訊的數(shù)據(jù)發(fā)送和接收,通過(guò)SerialPort類,我們可以輕松實(shí)現(xiàn)串口通訊,并結(jié)合事件機(jī)制實(shí)現(xiàn)數(shù)據(jù)的傳遞和處理,感興趣的朋友一起看看吧2025-03-03
異步/多線程/任務(wù)/并行編程之一:如何選擇合適的多線程模型?
本篇文章小編為大家介紹,異步/多線程/任務(wù)/并行編程之一:如何選擇合適的多線程模型?需要的朋友參考下2013-04-04
采用easyui tree編寫簡(jiǎn)單角色權(quán)限代碼的方法
本文主要介紹了如何采用easyui tree編寫簡(jiǎn)單角色權(quán)限代碼,文章思路清晰,需要的朋友可以參考下2015-07-07
舉例講解C#中自動(dòng)實(shí)現(xiàn)的屬性
這篇文章主要介紹了C#中自動(dòng)實(shí)現(xiàn)的屬性,包括使用自動(dòng)實(shí)現(xiàn)的屬性實(shí)現(xiàn)輕量類的方法,需要的朋友可以參考下2016-01-01
C#在foreach遍歷刪除集合中元素的三種實(shí)現(xiàn)方法
這篇文章主要給大家總結(jié)介紹了關(guān)于C#在foreach遍歷刪除集合中元素的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

