[問題] 同一編譯檔在Xp與Win7上執行時間的差異

看板C_and_CPP作者 (放空ing)時間12年前 (2011/12/01 23:53), 編輯推噓10(10036)
留言46則, 9人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) 在 Windows 7 64-bit 上使用 code::blocks 撰寫程式,並用 GCC compiler 編譯。 問題(Question): 我撰寫使用 Runge Kutta 45 求解 ode 方程組的問題,將編譯好的執行檔, 分別拿到不同的電腦去執行: 編號 CPU 型號 作業系統 運算時間 (s) 1. AMD 939-3200+ xp-64bit 0.843 2. Intel I3-2100 win7-64bit 2.084 3. Intel I5-2400 win7-64bit 1.932 4. Intel E3-1280 win7-64bit 1.720 http://ppt.cc/b-eihttps://picasaweb.google.com/102487824427220690898/2011121#5681183222695388162) CPU 都使用預設頻率計算,讓我感到困惑的是,我的程式在編號 1 的電腦執行 花費的時間最少,我想詢問一下這樣的運算時間的差異,應該是作業系統造成的吧 ? 若是的話是否有辦法讓編號 2 ~ 4 的運算時間,少於編號 1 的運算時間 ? ps. 作業系統都是安裝完成後僅做完系統更新,並沒有安裝其他有的沒的軟體。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.218.210

12/01 23:54, , 1F
不同cpu你怎麼能確定是os問題?
12/01 23:54, 1F

12/01 23:55, , 2F
我覺得 2->4 的時間差能反映出 CPU 的影響,但是 1
12/01 23:55, 2F

12/01 23:55, , 3F
是否有辦法讓編號 2 ~ 4 的運算時間,少於編號 1 的運
12/01 23:55, 3F

12/01 23:56, , 4F
算時間 ?
12/01 23:56, 4F

12/01 23:56, , 5F
花費最少的時間,就覺得很不可思議
12/01 23:56, 5F

12/01 23:56, , 6F
to : ericinttu 是的 因為程式都沒變動 變動的只是電腦
12/01 23:56, 6F

12/01 23:57, , 7F
跟指令集會有關係嗎
12/01 23:57, 7F

12/01 23:57, , 8F
該提到CPU的指令集嗎? CPU變了,你能說程式沒變嗎?
12/01 23:57, 8F

12/01 23:58, , 9F
是比較不可能 比較新的製程輸給AM2有點好笑...
12/01 23:58, 9F

12/01 23:58, , 10F
to ericinttu : 我是機械系的 這方面的東西我就不是很了解
12/01 23:58, 10F

12/01 23:58, , 11F
而且, 要讓2~4比1快 這樣的意圖的理由是什麼?
12/01 23:58, 11F

12/01 23:59, , 12F
覺得計算時間跟 cpu 的對應關係有問題純粹是覺得新的應該
12/01 23:59, 12F

12/01 23:59, , 13F
比較強
12/01 23:59, 13F

12/02 00:00, , 14F
ㄝ 是輸給 AMD 的 K8 喔
12/02 00:00, 14F

12/02 00:01, , 15F
圖的是 我覺得一樣的程式應該 2~4 要跑贏 1 才是
12/02 00:01, 15F

12/02 00:01, , 16F
挑一個你相信的平台,挑一個你想要的那種速度感的平台.
12/02 00:01, 16F

12/02 00:03, , 17F
噢... 假如你的描述是真實的話, 那這句 "將編譯好的執
12/02 00:03, 17F

12/02 00:03, , 18F
行檔" 這個動作, 也是會有影響.
12/02 00:03, 18F

12/02 00:04, , 19F
我只能說有影響, 沒辦法說出偏袒誰.
12/02 00:04, 19F

12/02 00:06, , 20F
所以這跟 C/C++ 有什麼關係?
12/02 00:06, 20F

12/02 00:07, , 21F
那就在試看看了.... 改用 vc++ 作一次看看好了....
12/02 00:07, 21F

12/02 00:08, , 22F
沒有compiler版 XDDD
12/02 00:08, 22F

12/02 00:09, , 23F
使用 code::blocks 撰寫程式,並用 GCC compiler 編譯
12/02 00:09, 23F

12/02 00:09, , 24F
這算C吧XD
12/02 00:09, 24F

12/02 00:09, , 25F
你假如對於CPU的指令集與差異很有興趣的話,再研究好了.
12/02 00:09, 25F

12/02 00:09, , 26F
好像沒啥直接的關係 抱歉..
12/02 00:09, 26F

12/02 00:11, , 27F
假如是針對paper上的速度數據要做比較,看看就好.別太認
12/02 00:11, 27F

12/02 00:11, , 28F
真.
12/02 00:11, 28F

12/02 00:12, , 29F
然後,版主大概要砍文了.可以先自我備份.
12/02 00:12, 29F

12/02 00:17, , 30F
找不到相關的板...
12/02 00:17, 30F

12/02 00:17, , 31F
組語應該ok吧
12/02 00:17, 31F

12/02 00:20, , 32F
我沒記錯的話,國外的時測都以intel處理器居多.你可多翻
12/02 00:20, 32F

12/02 00:20, , 33F
幾篇看是不是如我所言。
12/02 00:20, 33F

12/02 00:31, , 34F
還有一點要注意: 這4組解的答案都一樣嗎?
12/02 00:31, 34F

12/02 00:34, , 35F
e 大說的是重點。
12/02 00:34, 35F

12/02 00:50, , 36F
關於compiler performance的討論http://0rz.tw/xblAE
12/02 00:50, 36F

12/02 00:52, , 37F
感謝各位大大 等睡醒我會再做一些測試 並到其他地方找答案
12/02 00:52, 37F

12/02 00:53, , 38F
剛剛在 AMD 939的電腦上 分別用 VC++ 2010 express
12/02 00:53, 38F

12/02 00:54, , 39F
以及 GCC 編譯,把程式都拿去 I3-2100 的電腦跑
12/02 00:54, 39F

12/02 00:54, , 40F
結果是這樣 http://ppt.cc/Cmk,
12/02 00:54, 40F

12/02 00:55, , 41F
早上再做一些程式計算的細部驗證.... 多謝大家...
12/02 00:55, 41F

12/02 00:57, , 42F
oh 對了,我一定要提醒,各家compiler對於 math.h 實作
12/02 00:57, 42F

12/02 00:58, , 43F
不論是效能上或是準確性,都有些微差距.
12/02 00:58, 43F

12/02 01:48, , 44F
如果是compiled exe 應該指令都完全一樣吧
12/02 01:48, 44F

12/02 01:48, , 45F
那實在也是夠怪的 orz
12/02 01:48, 45F

12/02 02:17, , 46F
指令一樣但CPU內部實作不一樣, 可變因素太多了
12/02 02:17, 46F
文章代碼(AID): #1ErwBk53 (C_and_CPP)