[問題] 請問一下有關Visual Studio2003 與 2008的執行效能

看板C_and_CPP (C/C++)作者 (ㄚ魚!!)時間14年前 (2011/10/14 16:48), 編輯推噓4(408)
留言12則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Visual C++ 2003,2008 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 小弟是一位剛入社會的軟體程式員,所在的公司的前輩一直說Visual Studio的 執行效能還是2003最好。由於工作上的需要,對程式的執行效能很要求(要做碰撞檢測) 今天特地簡化條件 寫了簡單的小程式來測2003 和 2008 之間的差別 for(int i=0;i<INT_MAX;i++) { double a = float(rand()); a = sqrt(a); a = log(a); } 就這樣而已 純粹看計算效能 其他專案參數盡量保持相同 release版 /MD 以下取平均 2003 34.3sec 2008 54.8sec 這快差一倍的效能 真的讓我有點嚇到 我升級了版本 速度卻降一半? 另外由於2008有支援openmp 開了八核去跑 2008 no openMP 54.8sec 2008 with openMP 21.5sec 這邊倒是沒啥意外 請問有人知道這是怎麼一回事嗎?? 是否我有什麼環境設定沒注意到 才有這種速度差異 另外 2003的 /ML (Single-threaded) 居然才9.59sec,這又是怎麼一回事? 單執行緒跑的比多執行緒還快!?!? 請問這是什麼原因呢? -- ※ 發信站 :批踢踢實業坊(ptt.cc) ◆ From: 122.117.112.106

10/14 16:56, , 1F
你有把組語拿出來比較看看嗎?
10/14 16:56, 1F

10/14 17:08, , 2F
不好意思 我學的都是蠻高階的東西 請問組語要去哪裡看
10/14 17:08, 2F

10/14 17:09, , 3F
Single-threaded 版本不需要作任何的同步/lock 動作當然快
10/14 17:09, 3F

10/14 17:36, , 4F
multithread函式庫的意思是thread safe
10/14 17:36, 4F

10/14 17:36, , 5F
不是說他會幫你跑multithread
10/14 17:36, 5F

10/14 17:39, , 6F
手邊沒有2003可以試,不過感覺嫌疑最大的就是rand
10/14 17:39, 6F

10/14 17:39, , 7F
推樓上 mt 和 rand.
10/14 17:39, 7F

10/14 17:50, , 8F
這邊我只是想表達runtime library 我設同一個而已^^bb
10/14 17:50, 8F

10/14 17:50, , 9F
畢竟2003才有/ML可以用 2005之後就被拔掉了
10/14 17:50, 9F

10/14 20:50, , 10F
屬性 -> C/C++ ->輸出檔 -> 組合語言輸出 然後選你要的選項
10/14 20:50, 10F

10/14 20:51, , 11F
手邊只有2010 不過應該是差不多的地方
10/14 20:51, 11F

10/15 00:12, , 12F
工作上的效能測試,請把工作會用到的東西拆解後,再來試.
10/15 00:12, 12F
文章代碼(AID): #1Eb_TVza (C_and_CPP)
文章代碼(AID): #1Eb_TVza (C_and_CPP)