It's an internal gnome javascript implementation
http://stackoverflow.com/questions/8078 ... umentation
I don't know much about it myself, so any bits of documentation would be helpful. I'm looking for some sort of firebug like debugger. This looks interesting...
https://live.gnome.org/GnomeShell/LookingGlass
The fix that I put in corrects an O(N**2) search. What happens when the menu adds a new application is that it looks over the existing apps to see if there is a duplicate with a linear search so you end up with O(N**2) behavior. I replaced the search with a hash table which gives you O(N) behavior. It helped my ASUS netbook a lot.
There are probably more inefficiencies in the javascript code. One big one is that I think it's calling refreshApp too often. It really should only refresh the app buttons when there are new apps added/removed, but unfortunately, when anything changes (i.e. recent documents), it reloads all of the apps.
One other tool, I've been trying to get compiled is Bugle
http://www.opengl.org/sdk/tools/BuGLe/
This should help with debugging issues in the OpenGL code.
One good thing about this is that I very strongly suspect that the problem is with the menu applet and it's not a general problem with the cinnamon infrastructure.
I have order 1000 applications. I accidentally stumbled on a fix when I was installing a new machine, and the menu was lightning quick with 50 apps.