[問題] 關於VC++的Win32 Console Application

看板C_and_CPP (C/C++)作者 (年輕的心)時間13年前 (2012/08/04 16:00), 編輯推噓2(208)
留言10則, 4人參與, 最新討論串1/1
想請問大家,若使用的作業系統是Windows 7 64位元系統,當設計VC++程式時,選擇 Win32 Console Application,這樣子有沒有意義呢?小弟的電腦是Windows 7 64位元 系統,使用VC++2010,設計程式時,正是選擇Win32 Console Application,花了很多 時間寫完程式,忽然發現編譯器正上方中間那一欄寫的是"Win32",讓小弟擔心這樣子 是否跟64位元系統不搭配?是否要改成"x64"較合理? 再請問,假若要將"Win32"改成"x64",步驟是否如下? 1. 在"Win32"那一欄旁邊的箭頭點一下 2. 選"Configuration Manager" 3. 在Active solution platform的地方選<NEW...> 4. 在New Solution Platform的地方選擇x64 5. 按"OK"最後 6. 按"Close" 做了上述的設定以後,還有哪裡要改嗎? 因為做的研究很重視程式運算速度,小弟將"Win32"改成"x64"以後,再測量程式運算 速度,發覺讀檔的速度有變快,但是在某些地方程式運算速度卻變慢,原因不明,有 沒有可能是測量程式速度的方法錯誤?小弟是採用以下的方式測量程式運算速度。 LARGE_INTEGER frequency; // ticks per second LARGE_INTEGER t1, t2; // ticks double elapsedTime; QueryPerformanceFrequency(&frequency); QueryPerformanceCounter(&t1); 程式內容…… QueryPerformanceCounter(&t2); elapsedTime = (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart; cout << elapsedTime << " ms.\n"; (如果有錯誤,請問是在"Win32"情況下測出來的是對的,還是在"x64"情況下測出來 的是對的? Orz ) 抱歉問題有點多,因為小弟本身不是資工背景,所以對於一些程式及硬體的細節不是 很清楚,上述問題關係到小弟的畢業論文,總不能測出來的時間是錯的吧 TT 因此趕 緊來板上求救,希望知道問題所在的高手們能給小弟一點指教,在此先謝謝大家了! 非常感激! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.240.228.225

08/04 16:29, , 1F
寫一個 printf("%d", sizeof(int *)); 如果是 8 就是 x64
08/04 16:29, 1F

08/04 16:32, , 2F
快慢差距一秒內就不要在意了,不同電腦就是會跑不同速度,
08/04 16:32, 2F

08/04 16:33, , 3F
1.沒的事,除非你有碰很低階的東西,不然x86/x64都可
08/04 16:33, 3F

08/04 16:34, , 4F
3.程式沒錯,但是x86->x64效能本來就不一定會提昇,這牽涉
08/04 16:34, 4F

08/04 16:35, , 5F
到register變多的提升跟pointer變大帶來的空間浪費互相拉鋸
08/04 16:35, 5F

08/04 16:37, , 6F
4.沒有對照組,x86/x64說不上哪邊對哪邊錯,能說的只有你的
08/04 16:37, 6F

08/04 16:38, , 7F
程式在x86有一個跑的時間,x64又有另外一個時間
08/04 16:38, 7F

08/04 18:31, , 8F
程式本身的演算法比較重要, 要不然就用平行處理吧
08/04 18:31, 8F

08/04 18:36, , 9F
測時沒問題,論文只需附上環境,編譯器,有心的附上編譯參數,
08/04 18:36, 9F

08/04 18:37, , 10F
其他的關鍵是在演算法,撰碼過於細節不會再討論。
08/04 18:37, 10F
文章代碼(AID): #1G7DQEzf (C_and_CPP)
文章代碼(AID): #1G7DQEzf (C_and_CPP)