Den 31-01-2011 22:54, Vladimir Zhirov skrev:
I was surprised when B turned out to be almost 3 times
slower than A (~11 vs ~29 sec. on my hardware). This ratio
remains nearly the same regardless of compiler optimization
level.

I'm using FPC 2.4.2 [2010/12/27] for i386 on Linux.

1) Is it expected behavior, or should I create
    a bug report about it?
It's probably because "cs" is a typed constant, meaning it'll become a global variable. If you used

cs = ['a', 'b', 'c', 'd', 'e'];

Then you would probably see the same performance as in a

It's true that the semantics are the same, and it would probably make sense to do some optimizations on typed constants that aren't ever written to(the FPC rtl "abuses" the typed constant variable property in the heap manager code, for example)
2) What way (A or B) are you using in your programs
    (or would suggest to use in long term)?
I would write it in the way that is clearest to the programmer, and not use typed constants :)
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to