因为时间不是很多,就不是特别的详细的测试咯,样例程序仅供参考,如果大家觉得还有什么程序更具有代表性,欢迎推荐给我!
以后再详细的进行测试,这次只有整型进行咯测试,因为用的最多!
为什么后面的时间会快很多,因为2.0.1版本的FP进行咯很多的优化,比起1.0.10要进步不少…
系统:赛扬1.7G,128M内存 Windows Xp SP2
FP版本:
Free Pascal Compiler version 1.0.10 [2003/06/27] for i386
Copyright (c) 1993-2003 by Florian Klaempfl
Target OS: GO32 V2 DOS extender
Free Pascal Compiler version 2.0.1 [2005/10/02] for i386
Copyright (c) 1993-2005 by Florian Klaempfl
Target OS: Win32 for i386
采用命令行选项,-OG -CX -Xs,打开最优化
采用FPc2.0.1版本,没有使用最新的2.1.1,因为忘咯…-_-0
经测验,在noi的1.0.10版本下各种类型速度超慢…
样例程序1:
integer Time Cost: 11889.57 ms
word Time Cost: 5898.96 ms
longint Time Cost: 5725.90 ms
longwordTime Cost: 5512.71 ms
int64 Time Cost: 23087.00 ms
Qword Time Cost: 25794.83 ms
样例程序2
integer Time Cost: 24782.41 ms
word Time Cost: 15951.86 ms
longint Time Cost: 14946.39 ms
longwordTime Cost: 16398.43 ms
int64 Time Cost: 24308.40 ms
Qword Time Cost: 23848.94 ms
说明:
因为每次运行系统都有些不同,略为有些误差
以上仅供参考!
下面有win32版本的详细信息,大家参考参考!
版本信息:
样例程序:
Number 1:
Var
i,k:???;//由各种类型替代
Begin
i:=0;
While i<30000 Do
Begin
Inc(i);
k:=0;
While k<30000 Do Inc(k);
End;
End.
Number 2:
Number 1:
Var
i,k:???;//由各种类型替代
Begin
i:=0;
While i<30000 Do
Begin
i:=1+1;
k:=0;
While k<30000 Do i:=i+1;
End;
End.
Number 3:
Number 1:
Var
i,k:???;//由各种类型替代
Begin
i:=0;
While i<60000 Do
Begin
Inc(i,2);
k:=0;
While k<60000 Do Inc(k,2);
End;
End.
Win322.0.1版本测试如下:
integer
Number 1:
Time Cost: 5240.35 ms
Time Cost: 4992.75 ms
Time Cost: 4905.92 ms
Time Cost: 5142.44 ms
Time Cost: 5442.54 ms
Number 2:
Time Cost: 11903.93 ms
Time Cost: 11973.62 ms
Time Cost: 11837.13 ms
Time Cost: 11754.59 ms
Time Cost: 11922.97 ms
评述:integer速度太慢…抛弃,因为integer的范围(见下面),故不测试程序3.
word
Number 1:
Time Cost: 2157.52 ms
Time Cost: 2248.40 ms
Time Cost: 2246.49 ms
Time Cost: 2143.85 ms
Time Cost: 2126.39 ms
Number 2:
Time Cost: 7214.55 ms
Time Cost: 6880.52 ms
Time Cost: 7088.26 ms
Time Cost: 6870.09 ms
Time Cost: 6982.72 ms
Number 3:
Time Cost: 2254.64 ms
Time Cost: 2225.91 ms
Time Cost: 2296.30 ms
Time Cost: 2127.20 ms
Time Cost: 2193.17 ms
评述:同为双字节,word的表现实在比intege好多咯!
longint
Number 1:
Time Cost: 2121.51 ms
Time Cost: 2081.88 ms
Time Cost: 2056.08 ms
Time Cost: 2198.03 ms
Time Cost: 2207.08 ms
Number 2:
Time Cost: 6829.80 ms
Time Cost: 6814.89 ms
Time Cost: 7096.89 ms
Time Cost: 6953.72 ms
Time Cost: 7055.97 ms
Number 3:
Time Cost: 2228.12 ms
Time Cost: 2072.92 ms
Time Cost: 2163.88 ms
Time Cost: 2110.50 ms
Time Cost: 2179.88 ms
评述:longint可谓是最佳类型
LongWord
Number 1:
Time Cost: 2518.03 ms
Time Cost: 2487.57 ms
Time Cost: 2514.50 ms
Time Cost: 2406.95 ms
Time Cost: 2572.94 ms
Number 2:
Time Cost: 6964.49 ms
Time Cost: 6953.72 ms
Time Cost: 7096.89 ms
Time Cost: 6814.89 ms
Time Cost: 7076.94 ms
Number 3:
Time Cost: 2220.39 ms
Time Cost: 2111.65 ms
Time Cost: 2151.53 ms
Time Cost: 2127.43 ms
Time Cost: 2162.09 ms
基本类型:
Shortint
SmallInt=integer
Longint
Longword
Int64
Byte
Word
Cardinal
QWord
Boolean
ByteBool
LongBool
Char
DWord = LongWord;
Cardinal = LongWord;
Integer = SmallInt;
Byte 0 .. 255 1
Shortint -128 .. 127 1
Smallint -32768 .. 32767 2
Word 0 .. 65535 2
Integer either smallint, longint or int64 size 2,4 or 8
Cardinal either word, longword or qword size 2,4 or 8
Longint -2147483648 .. 2147483647 4
Longword 0..4294967295 4
Int64 -9223372036854775808 .. 9223372036854775807 8
QWord 0 .. 18446744073709551615 8
说明:integer和Cardinal根据平台来的~
Boolean 1 1
ByteBool 1 Any nonzero value
WordBool 2 Any nonzero value
LongBool 4 Any nonzero value
Single 1.5E-45 .. 3.4E38 7-8 4
Double 5.0E-324 .. 1.7E308 15-16 8
Extended 1.9E-4951 .. 1.1E4932 19-20 10
Comp -2E64+1 .. 2E63-1 19-20 8
说明:Comp=Int64
结论,FP中最佳类型当属longint可以有正负数,速度一流~若要节约,则可以试试word,不推荐Integer
—巫山霏云 无聊郁闷测试—
19号的复赛没有考好,没有省一的话,估计以后也就不会怎么上网咯…Bless我的人不少,可惜没有用,还是希望能考好,不过这些日子状态和心情都不好….55~~
昨天网站访问不了,好急,所信也无所谓,很多资料我都备份咯…
真希望这不是我的最后一篇blog…至少高考前