On Sun, 02 Sep 2012, Amir wrote: > Hi, > In one of my project, I have to call IntToStr more than 10M times. > I noticed that IntToStr calls Str function. I implemented my own version > of IntToStr which is almost twice faster than the current implementation > of IntToStr. > I wonder if it is possible to use my code in IntToStr function.
There are 4 generic routines in "./FPC_SRC/rtl/inc/generic.inc": procedure int_str(l:longint;out s:shortstring); procedure int_str_unsigned(l:longword;out s:shortstring); procedure int_str(l:int64;out s:shortstring); procedure int_str_unsigned(l:qword;out s:shortstring); And also an i386-speciic assembler variants in "./FPC_SRC/rtl/i386/i386.inc", which I suspect use approach similar to yours, but I'm not sure they are "enabled".. {$if defined(disabled) and defined(regcall)} procedure int_str(l:longword;out s:string); ... procedure int_str(l:longint;out s:string); {Optimized for speed, but balanced with size.} const digits:array[0..9] of cardinal= (0,10,100,1000,10000, 100000,1000000,10000000, 100000000,1000000000); ... {$endif} So You can try to propose your changes to "generic.inc".. --- WBR, Max. _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel