Anthony W. Youngman wrote:

In message <[EMAIL PROTECTED]>, Roger Glenfield <[EMAIL PROTECTED]> writes

Payback during 2nd generation Pick was 10-20 attributes. Back then, the problem was to not oversize because it slowed down the read/writing of the blank attributes.

Didn't we hear/read recently that the new compiler and/or run time machine is keeping track of individual attribute marks in dynamic arrays, so that a full string search is not necessary every time?


Yes. But it only works when stepping through an array in a READNEXT fashion. So if you're accessing fields in random order (as a lot of my code does) you gain nothing.

No it does work even when you access the dynamic array in random order. It then
provides an alternative starting point for the search to use instead of character 1.
This will be used in about half of the searches ( when the last access was 'lower'
than the new one ) and in that case on the average cut the search in half.
Thus I'd expext a 25% performance gain when keeping track of accesses compared
to the old brute force method - for the random access case..


I don't know any details of the implemetnation but it is possible that the last access
pointer could occassionally be used to search backwards when some rule of tumb
says it would be faster - thus making the 'new' approach even better.


But the real reason for using dimensioned arrays is - as already pointed out by others -
the huge gain when inserting data that makes the array grow.


On the other hand - a possible reason to use dynamic arrays for efficiency
might be a number of LOCATEs ...

-- mats

Cheers,
Wol
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to