Good 'ol QuickBASIC restrictions. I had to use $DYNAMIC at the start of my code, just to get enough free memory for it to keep running. Also, there was something else. I think you could use CLEAR , , 2000 to allocate more memory from the stack. I have never had this issue with QB64.
As for speed, I've never had reason to test it, as non-gaming apps just don't have to move that fast, eve in not so quick, QuickBASIC.
Pete