Board logo

標題: [發問] 是否能強制電腦的多核心"高效能"去執行程式 [打印本頁]

作者: dreamsway    時間: 2018-11-9 18:53     標題: 是否能強制電腦的多核心"高效能"去執行程式

各位前輩好,是這樣的我有一個VBA程式在不同電腦上執行效率不同(好電腦反而比較慢....慢非常多),
EXCEL有設定開啟多執行緒,且win10.excel皆64位元
A電腦:4C8T(且單核效能跑分明顯強過於B電腦) E3-1230
B電腦:2C4T  I3-4130

A電腦執行程式時(透過以下設定 跑指定的VBA皆耗時2分30秒左右)
無特殊設定:8T卻只跑單核然後滿載90%以上
設定優先順序為即時:8T全跑但....各T只跑10%....而且實際運行超慢
設定親和性為6核:6T全跑但運作大概不到20%....實際運行時間仍然超慢

B電腦(耗時1分30秒左右即可跑完)
無特殊設定:4T全跑,各核約50%運作

有人知道是什麼原因嗎? 或是有無設定能夠開啟提高核心的效能
作者: tanlee    時間: 2018-11-15 01:46

選項 -> 進階 -> 公式 -> 啟用多執行緒計算,或是可以參考:
msdn.microsoft.com/zh-tw/library/office/ff726673(v=office.14).aspx
msdn.microsoft.com/zh-tw/library/office/ff700515(v=office.14).aspx
作者: luckeyfly    時間: 2019-1-2 13:17

本帖最後由 luckeyfly 於 2019-1-2 13:21 編輯

多核心要對應的是多執行序
簡單的說,你的程式指令在撰寫時必須是能夠分段且多段同步執行的,才能在多核心上發揮效果
如果指令不能分段,就只能交給一個核心去跑
所以買電腦時除了看多核心效能,還有人會刻意挑選單核心效能

EXCEL本身雖然支援多核心,但並不是全部指令都可以多核心運作
一張工作表上的很多「獨立」的儲存格運算式,可以多核心同步運作
但是VBA指令大部分都只能單核心運作


至於CPU控制
優先順序控制的是CPU運算時間的分配(前景程式/背景程式),在CPU不是滿載的情況下,設定優先順序基本上不影響效能
可以限制CPU核心數也沒有意義,因為減少核心數並不會同步提升時脈(時脈不提升,單核效能就不提升)
作者: t8742350    時間: 2019-5-16 08:20

可以試試看調整電腦效能部份只允許執行程式高其他不用背景程式的先行關閉
作者: chenyu    時間: 2019-9-14 10:10

這是我心中一直的疑惑!但是聽到的釋疑大都是理論派的多,有沒有朋友能夠舉個step by step的調整實例,(菜鳥學習中)




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)