fp中间各种数据运行的速度快慢[简略的]

因为时间不是很多,就不是特别的详细的测试咯,样例程序仅供参考,如果大家觉得还有什么程序更具有代表性,欢迎推荐给我!
以后再详细的进行测试,这次只有整型进行咯测试,因为用的最多!
为什么后面的时间会快很多,因为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…至少高考前

发布者:巫山霏云

巫山霏云,87年生巨蟹,文科生,IT男,喜读书,不求甚解,

留下评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据