引用:
作者ianme
不用找了,您有mail嗎?我寄給您。我不知道這種文件可不可以曝光,所以還是用寄的吧。之前想要.18的TSMC model竟然說要申請啦....真是.....
|
不用了. 我大概有推導出一些看法, 參考看看.
1. 有 HT 的可以試試開關 HT 下, 跑單一Process單一 thread 的 CPUMark 看看分數會不會一樣, 依 ianme 的看法, HT 如果是把效能分給兩顆虛擬 CPU, 那麼關閉 HT 的話, 跑 CPUMark 分數應該會變高!?
2. 上面的答案我用公司的 P4 3.0EG 做了, 答案是 CPUMark 開不開 HT 幾乎沒差別.
我舉個比較貼切的例子好了, K8 的效能如果是 200 , P4 的效能是 170, 那麼有 P4 的 HT, 可能額外多出 30 分的效能給 P4, 但不表示 P4 的單一 Process 或單一 Thread 就可以得到 170+30 = 200 的效能, no, 這 30 分是強制給另一個 thread 的, 換句話說, P4 HT 上執行程式, 單一 Process 單一 Thread 就算佔有 100% 的 CPU 資源, 也只有 170, 剩下的 30 分可以看做是強制保留給另一個 thread, 沒得改變.
補充: 那要讓一個程式充分發揮 170+30 的效能可以嗎?可以, 寫 multi thread 的程式, 一個程式起碼兩個 thread, 一個 thread 取得 170 的效能, 另一個 thread 取得 30 的效能, 加起來囉.
而樓主程式則是把 K8 的 200 分效能分割給其他 Process、其他 thread, 不讓 200 分的效能讓單一程式、單一 thread 獨佔, 但這程式沒有強制性, 你可透過設定改變、移除優先權的影響.
3. 最早, Windows3.1 的作業系統是一種協調式的分時多工, 在這種作業系統上, 程式的撰寫得依照一個規則, 要程式自己釋放 CPU 控制權, 這只要寫過 SDK 的就知道我在說什麼, 那是現在 Win32 程式繼承自 Windows 留下來的習慣.
Win95 / 98 核心還留有相當的 Windows3.1 基礎影響, 所以在這個系列下的優先權設定, 實際效果沒有 Windows 2000 核心的好.