Curious. Do you know if it was because of the .NET overhead, or because the fresh implementation didn't have all the edge case optimisations of the previous one?
The app was analyzing all the pixels in a live image and overlaying data on it. Accessing the data from the camera was slower with .Net, I think more mem copies working with buffers and by arrays. This was long before any span<> memory<> functionality. Iterating the pixels was way slower, don't remember why but you have to remember vb6 has no garbage collector, and no VM/byte code. It was pretty fast surprisingly. So when we updated, our FPS took a major hit and we could never get the performance back to what it was.