2012-09-01 59 views
13

我主要在32位嵌入式系統上工作,通常使用本機32位類型(int,float)的速度比16位等效的要快。在處理器上執行操作之前,處理器將任何16位數字擴展到32位。32位應用程序在64位操作系統上運行得更快還是更慢?

現在我已經轉移到個人電腦和64位操作系統。我的問題是 - 32位類型是否會導致64位計算機出現任何減速?

例如,如果我將MyApp.exe作爲32位應用程序構建,它是否會在64位操作系統上運行速度更慢或更快?

我知道應用程序的性能涉及很多因素,我故意從問題中排除這些因素(IO速度,更快的內存等)。

+1

*您包括哪些因素? –

+0

我正在考慮32位與64位操作系統的CPU執行。但是當你有更多的代碼時,Nate C-K就RAM訪問時間提出了一個很好的觀點。 –

回答

8

有時32位應用程序運行速度更快,有時運行速度更慢。有很多影響性能的競爭因素。一般來說,任何一個方向的差異都不是很大。

我不明白如何從性能考慮中合理地排除任何因素,因爲性能總是發生在所有因素都起作用的現實世界中。速度不是理論上的,不能孤立地對待。

下面是一篇文章在這裏筆者做了一些基準測試:

http://www.osnews.com/story/5768

他發現,32位二進制文​​件在他的測試速度更快。這是對SPARC在2004年初

下面是英特爾2010年一篇關於遷移到64位應用程序:

http://software.intel.com/en-us/articles/moving-from-32-bit-applications-to-64-bit-applications-en/

根據這篇文章,64位二進制文​​件可以更快數學送禮者你,所以如果正確優化,數學繁重的代碼應該更快。否則,你的64位代碼可能會更慢,特別是因爲它需要更多的內存,這可能導致更多的時間訪問RAM(更頻繁的緩存未命中)。

相關問題