Many technologies going on... so nobody really knows what's gonna happen...
who's gonna win... what's gonna be the next big thing... it might be
anything really...
However when it comes to Delphi I am starting to fear it's "old"
architecture a little bit, speed wise that is.
The bandwidth inside hardware still seems to be increasing (becoming
faster). I am not sure at what rate...
The access time/speed inside hardware still seems to be decreasing(becoming
faster) but at a slow rate....
I am not sure how the rates compare...
But let's suppose that access time is slowly becoming shorter/faster while
bandwidth is increasing rapidly...
Then at some point it doesn't make to much sense anymore to use a lot of
pointers everywhere... simply because the pointers will not fit into the cpu
caches... the pointers will have to be retrieved from memory... and then the
cpu's have to wait for it... so they stall...
While with the copies/bandwidth solution the cpu can happily chew through
all the memory... and this memory will be streamed which is somewhat of a
big benefit really I think at least....
Call me crazy... but someday in the future people might say: "no don't use
pointers !" "pointers are slow the stall the cpu !" "Use copies, they are
much faster !"
Now suppose that becomes reality... then Delphi is in deep ****... because
it more or less uses pointers for everything:
1. Dynamic arrays
2. Strings
3. Classes/objects.
For example:
If you have a big array of all classes... like one million
classes/objects... that's just one million pointers right there !
And all those objects might be anywhere in memory... no streaming... but
more random access... more stalls probably.
And that's just for the object access...
One of these days when I have some time

cause I really busy these days

Is I am gonna do a little test:
Big array of pointers to objects... versus big array of objects (flat or
so...) without pointers...
Just to see which one is faster.. and how much it matters
I place my bets on the second one for now... as long as there are not too
many copies being done or whatever... for now I won't be doing that many
copies... actually none at all... just a simply access and processing test
or so... so it should be obvious which one will win
So this story is something to keep in mind... the way I see it:
Bandwidth can always be added... just add more lanes...
Access time is limited... you can't go faster than the speed of light...
that sort of thing... or maybe you can ?
Who knows ?!
Bye,
Skybuck

=D