[fpc-devel] Performance of string handling in trunk
    Michael Schnell 
    mschnell at lumino.de
       
    Wed Jun 26 10:46:36 CEST 2013
    
    
  
On 06/26/2013 09:41 AM, Michael Schnell wrote:
>
> It shows ... how it is done.
>
Hi DoDi,
You might be inclined to enhance the test program for me and compile it 
with DXE:
AFAI understand the encoding type and as I see in 
http://wiki.freepascal.org/FPC_Unicode_support :
========================================================
type
   TRefStringRec=  packed  record
     Encoding:  word;     // encoding of string
     ElementSize:  byte;  // size in bytes of string's element (1-4)
     Ref:  SizeInt;       // number of references
     Len:  SizeInt;       // number of elements is string
   end;
========================================================
(In fact I suppose that a dummy byte is inserted to prevent that the SizeInt types are misaligned)
The encoding type information should be just before the ref counter and thus adding something like
  v1 := PInteger(j1-12);
  v2 := PInteger(j2-12);
And printing this in hex should show this information.
Now you could test in the newest DXE version what happens when assigning a normal string to a RawByteString and vice versa.
Thanks for helping out...
-Michael
    
    
More information about the fpc-devel
mailing list