This may or may not be relevant to your post, but it seems appropriate to at least post this in a !!SCIENCE!! thread instead of making my own since this is probably not viable !!SCIENCE!!...
Assumptions:
* FPS is reduced by a non-sorted vector list of items (your assumption if I am reading this correctly)
* FPS is reduced by the A* or A* equivalent pathing algorithm used by this game
My Theorems:
* Creation and subsequent destruction of like-typed items (as in your experiment) will not create any appreciable FPS loss
* Creation and subsequent destruction of variable numbers of non-like-typed items may create FPS loss (IE. create 10 bins, create 9 mugs, destroy 3 bins, create 10 bins, destroy 3 mugs, create 9 mugs, destroy 15 bins, destroy 10 mugs, create....etc) such that entire sets of item-creation jobs are not being immediately destroyed, and could possibly create empty vector indices within the lists as it is not guaranteed that an entire stack of a created good are destroyed entirely, which could, and logically would, free up the memory location if done haphazardly.
* Corollary to the above: or at least a simplification of it. Each job set of a specific non-unique item could be creating a list set in the item vector list. If the above holds true then destroying only part of the list would not necessarily free up the memory associated with said list set to allow that set to be used for something else. Iff, (if and only if) the entirety of the item-set is destroyed the memory is freed.
Repercussions for this experiment:
* With the terms of the experiment you, the player, are destroying objects immediately after creation, thus possibly voiding the memory set soon after its creation. This may be the cause of inconsistent results with your initial hypothesis.
* Forcing the objects to being completely unique, by way of encrusting with gems or by other means may not alleviate the problem if the objects are being treated as unique within the lists, and the encrusting of said item(s) is only modifying the data that the object pointer is pointing to instead of creating an entirely new item.
* As only a single type of item is being created possibly only a single list of entries is being created, and as such the number of iterations the engine needs to go through to access a particular object's entry is severely limited. Different types of items would be needed in order to create a "realistic" array of objects for the engine to search through to find a single item.
* There may or may not be a separation between the following informations within the item data: Creator of item, location created (the object id # of the workshop that created the item), the quality of the created item, and any alterations made to the created item (such as encrustings, sewn on images, etc). More !!SCIENCE!! would be needed to figure this one out and if it has any effect on the item lists.
My general thoughts and musings that dont specifically have anything to do with this experiment:
* A* pathfinding is pretty rediculous sometimes and doesn't always net the "best" result, especially if it is being checked every frame (leading to FPS death via creatures that are trapped and want to go elsewhere or otherwise extremely complicated path possibilities...)
* This is a really good experiment, though I believe that much more !!SCIENCE!! will be needed to come to an accurate conclusion...perhaps a grant of some sort should be set up for research into this !!SCIENCE!! ? Lol
* I may or may not be speaking entirely out of my rump right now as I do have a little bit of C++ experience as well as Java, and am in the process of creating a game engine to support a few of my game ideas....probably closer to the "may" than "may not" since everything is still in the ver 0.0000001a stages.
Hope that some things spark interesting musings within anyone who reads this, but not expecting it. Looking forward to seeing the conclusion to your !!SCIENCE!!
GalenEvil