Quote Originally Posted by Sly
Unless you override some base methods in TObject, there is also no way to bulk-allocate a bunch of class instances. Each class instance must be created individually. That is horribly expensive when you might be talking about using a class for a vector or matrix. A mesh might have 10,000 vertices. That is a lot of needless overhead, and the time wasted can be noticed by the end user in longer load times.
This is exactly what i did for my engine, I created a TFastObject which just alocates memory and sets up the VMT but that's it, the performance increase just by doing that was very significant. I also tested allocating 10000's obf objects in an array by pre allocating the memory using a Frame Memory manager, again the performance was significantly improved.

I tend to use records for things like verties and normals as they tend to be easier to pass into opengl, but I always use objects for my engine, but since I derived from my TFastObject things work allot faster