Hey there!
There's a long-standing and well documented bug in the version of Mono that Unity 4.x is using which results in a memory leak in "foreach" loops (as I understand it, each iteration burns 24 bytes of RAM). I've been cleaning up my app to eliminate those leaks, but there seem to be a few in the NGUI code. While I'm not concerned by memory leaks in the editor tools, it'd be awesome if any foreach loops in NGUI's runtime code could be addressed.
While this may be a non-issue with Unity's switch to IL2CPP, it remains a problem for apps that are locked to a pre-Unity5 dev environment (to be fair, I'm not even sure that Unity5 has actually switched to the IL2CPP system - I'm locked at version 4.6.x for my current project, and it's not clear if they've actually "pulled the trigger" on that change).
I can certainly tweak the version of NGUI I'm using to remove the foreach loops, but it would be more optimal if they were removed from the NGUI distribution. My understanding is that foreach is less efficient than simple "for" loops, so swapping them out might also provide a small performance improvement.
Just a suggestion - if it's something do-able then that would be fantastic. If not, I can do my best to sort it out.
An FYI - I just want to say that NGUI is pretty freakin' amazing. It's not easy to sort out initially, but once you understand the relationships between panels, depths, and so on, it's a near perfect toolkit for building GUIs. It's awesome!
Nick