[英]Is it ok to use 64bit integers in a 32bit application?
我注意到在C和C ++中,我們可以使用int64_t
,或者只是long long
。
如果我使用這些類型編譯32位代碼 ,我會在64位和/或32位機器上遇到任何性能問題嗎?
除了節省一些RAM,我還有理由只使用int
嗎?
畢竟,64位整數在存儲大數字時更有用。
如果我使用這些類型編譯32位代碼,我會在64位和/或32位機器上遇到任何性能問題嗎?
您的編譯器可能需要生成多個機器代碼指令以對64位值執行操作,從而將這些操作減慢幾次。 如果這可能是一個問題,您需要進行一些基准測試,以評估使用實際數據對特定程序的影響。 存在於32或64位計算機上執行32位可執行文件的問題。
我有理由只使用
int
嗎?
除了性能和內存使用之外,偶爾也有理由使用int
因為您使用的其他API /流等使用int
。 如果明顯足夠的話,使用int
也會有微妙的文件價值,否則其他程序員可能會浪費時間,想知道為什么你不想long long
使用它。
畢竟,64位整數在存儲大數字時更有用。
存儲非常大的數字更有用 - 當然 - 但這是相對很少需要的。 如果你存儲的東西像一年或某個人的年齡,那么64位就沒有特別的意義了。
如果我使用這些類型編譯32位代碼,我會在64位和/或32位機器上遇到任何性能問題嗎?
32位架構上的64位整數需要兩個寄存器來存儲值*。 32位值只需要一個寄存器。 這很重要,因為:
最重要的是,如果32位性能很重要,除非你需要它們,否則不要使用64位整數
*適用於x86,ARM和PowerPC處理器,這些處理器涵蓋了目前人們編程的大多數處理器。 大多數其他處理器也可能是這樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.