[fpc-devel] Class field reordering
    Skybuck Flying 
    skybuck2000 at hotmail.com
       
    Mon Jul 16 09:22:39 CEST 2012
    
    
  
-----Original Message----- 
From: Jonas Maebe
Sent: Sunday, July 15, 2012 15:49
To: FPC developers' list
Subject: Re: [fpc-devel] Class field reordering
On 14 Jul 2012, at 14:16, Skybuck Flying wrote:
> I don't think this is a good idea.
>
> For example while debugging and looking at the memory in raw this would 
> lead to confusion.
"
By knowing the order of the fields, you still don't know their exact 
offsets. If you want to know their address, print @classinstance.fieldname
"
Yes but I do know the order of the fields which does help make some sense of 
it. With your suggested optimizations it would become much more 
confusing/mixed/shuffled.
I also find it slightly strange how there is now an even bigger disconnect 
between records and classes.
I also wonder how much of an optimization it actually is ? Maybe 0.000001% 
more performance ?
I rarely inspect the binary equivalent of a class instance, so your 
supposedly optimization is probably not a big deal, for records that would 
be a different matter since these are used in all kinds of api's and 
input/output situations.
I still find your suggested optimization weird though. CPU cache lines as 
far as I know are 64 bytes or so... Let's assume a class with 10 fields each 
4 bytes long, that's 40 bytes.
How would re-ordering fields lead to faster performance ? I don't really see 
that...
> It's already bad that Delphi adds invisible fields to classes so they 
> cannot be simply dumped to disk... (virtual method table pointers ?) this 
> would make it even worse.
"
If you want to program at an assembler level of abstraction, don't use high 
level language features.
"
I see no reason why a high level language could not be used to produce 
binary instructions and or files/data.
Bye,
  Skybuck. 
    
    
More information about the fpc-devel
mailing list