程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> 四種整數數據類型的性能對比

四種整數數據類型的性能對比

編輯:關於Access數據庫

在我們寫VBA程序的時候,我們經常要面對數據類型定義的選擇,有的情況下,業務本身對於數據類型有要求和限制,那麼我們並不難以選擇,有些時候卻沒有限制,我們可以任意選用四種整數類型(Byte,Integer,Long,Currency)中的一種,例如:
For i=1 to 100

  在這行代碼中,我們該把變量i定義為什麼類型的變量呢?顯然四種整數類型都可以正常運行,但是他們的效率是否相同呢?我們到底該如何選擇?有的人說,當時是選最小的數據類型Byte,有的人說在32位系統上,32位的Long類型才是效率最高的。

  那麼究竟誰說的是正確的,讓我們來進行一下這四種整數類型的性能對比測試,我們使用如下代碼:



Const LoopTimes = 100000000

Public Sub test()
Dim bytTmp As Byte
Dim intTmp As Integer
Dim lngTmp As Long
Dim curTmp As Currency
Dim loopCount As Long

Dim timeBegin As Single
Dim timeEnd As Single
Dim timeAddition As Single

timeBegin = Timer
For loopCount = 0 To LoopTimes
Next loopCount
timeEnd = Timer
timeAddition = timeEnd - timeBegin


timeBegin = Timer
For loopCount = 0 To LoopTimes
bytTmp = 255
Next loopCount
timeEnd = Timer
Debug.Print "Byte :"; timeEnd - timeBegin - timeAddition; "秒"

timeBegin = Timer
For loopCount = 0 To LoopTimes
intTmp = 255
Next loopCount
timeEnd = Timer
Debug.Print "Integer :"; timeEnd - timeBegin - timeAddition; "秒"

timeBegin = Timer
For loopCount = 0 To LoopTimes
lngTmp = 255
Next loopCount
timeEnd = Timer
Debug.Print "Long :"; timeEnd - timeBegin - timeAddition; "秒"

timeBegin = Timer
For loopCount = 0 To LoopTimes
curTmp = 255
Next loopCount
timeEnd = Timer
Debug.Print "Currency :"; timeEnd - timeBegin - timeAddition; "秒"
Debug.Print "*********************"

End Sub


  在這裡,我們對每個整數類型進行了1億次的賦值操作,同時減去了循環控制所消耗的空轉時間,剩下的就是純粹的賦值操作所需的時間。最後,讓我們來看看運行的結果:


Byte : 7.234375 秒
Integer : 2.421875 秒
Long : 3.4375 秒
Currency : 4.84375 秒
*********************
Byte : 7.234375 秒
Integer : 2.421875 秒
Long : 3.453125 秒
Currency : 4.875 秒
*********************
Byte : 7.21875 秒
Integer : 2.421875 秒
Long : 3.421875 秒
Currency : 4.875 秒
*********************

  看到這裡,我想大家都應該很清楚了,雖然Byte占用內存最少,但是他的性能卻是最差的,如果對於單個變量,我們沒有必要使用Byte

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved