There were also a ton of posts on the old board about speed of variable reads with X variables on them (also a long-settled dispute). Unfortunately finding them with the boards down is very difficult, and I didn't find the 5000-mark one I mentioned, but I did find a number of others, including remarks by Primogenitor (who studied it extensively when writing the PRC CCC) on 03/21/06 00:21:
The number of locals on the object being one though you have to get into thousands to make a difference. In 99% of cases, this will be the fastest method of reading or writing data. If you do have thousands of locals, its simple enough to split them over several objects with a couple of hundred on each.
.
Of course, were someone to present that to me, I would probably dismiss it as anecdotal, if I didn't know Primo or his work on the Conversation Character Creator, so meh. He also was NOT comparing GetLocalObject to other object-getting methods, but to other data-storage/retrieval methods - something I did a lot of comparison and profiling on myself.
As to placement of objects, I'll probably check that in my runs, if I wind up doing them. I'm also curious to know, as was speculated about on the last page, whether or not all objects in the area are looked at by GNObT, before the nearest of a tag is identified - I suspect they are. That would mean the placement of the reference object for the GN wouldn't matter, only the object count in the area.
As far as object types and speed, we use a combination of GetWaypointByTag and GetNearest to find objects quickly - GWbT is quite fast, in our experience, so there is some merit to limiting by object type. I'm unaware of any hash-like optimization there, either, however, so I would tend to be wary of adding too many waypoints to your mod (but then, I'm sure we have thousands total in HG).
I haven't done much profiling in the last couple of years, and it IS kind of fun...
'>
Funky