2011-08-22 112 views
-5

區分int和浮點數是否與它使用的一樣重要?浮點與整數性能

如果這是語言相關的,我對Python感興趣。

編輯
我也有興趣瞭解更多有關該時間段是(如果有的話),其中一個將通過選擇浮動,而不是一個整數注意到性能差異。

+0

你問浮點數學是否與整數數學一樣? – NPE

+0

..或者浮點運算中精度的可能損失在多年來變得不那麼重要了嗎? –

+0

我想知道如果我把所有東西都做成浮動(一切都是數值而不是索引),我是否會失去性能。 – csta

回答

4

如果您在談論性能:對於大多數用途而言,沒有性能差異。您可能仍然可以測量一個編譯爲機器代碼的純數字運算代碼,以及硬件上沒有專用FPU(即大多數嵌入式內容)的稍微較少的數學密集代碼。但是對於Python(以及許多其他語言)來說,硬件性能的任何差異都會因解釋和裝箱開銷而變得不合常理(多很多數量級)。如果將數字視爲指向16字節結構的指針,並且添加是針對解釋的操作碼進行動態分派的方法調用,則實際處理是否需要一納秒或幾百個並不重要。

語義上,整數和(近似值)實數之間的差異仍然是一個數學事實,而不是計算機工程技術水平的必然性。例如,浮動(一般來說,不是從完全浮動的浮動的隱式轉換)將從決不會有作爲索引。