Ok, the re-instantiation was definitely a part of it.

Using BST.Clear (instead of re-instantiating in each iteration of the 10,000 loop), the no-Ax.DLL version still takes ~1.25 second.

However, the Ax.DLL version now only takes ~1.50 seconds.

So, instantiating an object with calls to NewObjectFromActivexDll definitely takes longer than instantiating an object from a class in our project. So, we should try to avoid 1,000s of re-instantiations when using AX.DLLs, especially when using them in this un-registered way.

----------

And even if we don't do 1,000s of re-instantiations, it still takes a bit longer to use an Ax.DLL than it does to use a class within our project. But, sometimes, the benefits of an Ax.DLL may be worth it (such as knowing it's compiled with optimizations, even though our main project may not be).

----------

I'm calling this thread resolved.