There is really no “high” drawcall number, it’s all relative. On my computer, with 16GB, running a movie in the background over the net, having VS2015 open, and in the Unreal editor, when I generated the 3000+ static meshes, I could feel it, when I entered the Play In Editor mode, to get the stats for you. Switched to instance static mesh, and I couldn’t. But then I only have a NVidia 750 GTX, for a video card, with a quad core amd processor.
But yes, your right, say it’s 20,000 drawcalls, and present time goes over 100 milliseconds… Well that’s probably going to even bring a titan to it’s knees.
Basically the best thing to do, is program to the lowest level you wish to support, and then optimize for that. Say someone on a laptop, 4GB of memory, running a little dual core processor, with an intel video chipset. That would be lowend enough. Especially the chipsets that intel sells.
If you take a look at the number of books, and it’s close to equal on the number of calls, revisit your code to make sure, your getting the instanced static mesh. The thing is, from looking at your bookshelf, you have a lot of variation in color, etc. Instanced Static Meshes don’t support that, all the mesh/materials must be the same. Now if your generating, a number of different kinds of ISM(s), then your good to go. But for ISMs, when y ou change one value, for even one of them, they all change. Which has it’s uses as well. Want to change 3000 objects color in world at one shot? ISM(s) is the way to go.
When you press tilde “~” and enter “stat” you will saw a lot of other things you can look at for performance. One I like, is “stat unit”, which shows you information about the gpu/cpu, etc. I use that instead of “stat fps”
Hope this helps!