I've spent a few hours porting the basic bunnymark to luxe and I thought I'd share some findings. I will start by recognising that Sven didn't see much point in doing this from a performance testing perspective for snowkit at this stage so don't take any of this as an indictment of the potential. I mostly did it as a way of understanding the basics of the luxe scene-entity-component relationships. That said I think the results are somewhat interesting, especially to me as someone who has barely dabbled with Haxe.
So here we've got the initial results with a couple of thousand bunnies. Sven mentioned the geometry batcher as a performance bottleneck in another post so I was expecting that but, skipping over the gc for now, the hit coming from accessing StringMaps wasn't. I'd noticed that StringMaps were commonly used throughout luxe for a number of core systems, but over 15% total processing time is a bit much.
The StringMap accesses dropped out of sight and I got back ~5fps on my laptop.
I did try a build for desktop and that was actually slower than the browser. A quick peek at the StringMap implementation for C++ looks rather similar to the JS version so I'll be curious to see if that's as much of a performance issue.
I guess the worrying thing about this for me is that I'm finding these issues in base library files for the tech stack. I just hope this is an odd edge case for Haxe.