It seems like the Text components are causing a rebuild and that takes time, but that also recursively causes OnPopulateMesh to fire (we have an Outline effect so that is recursively being called for nothing).
Also, another strange thing is that this doesn’t occur on subsequent runs (not even if i recompile the code which should force static data to be invalidated).
Has anyone else encountered this ? I think this can (and should) be optimized in some way …
Slow text loading can occur when you use a lot of text, simply because text is still using the legacy text system, which means each character is a quad.
Simple answer to get round this is to use an alternative text asset system, like @Stephan-B 's TextMeshPro.
As for the reversing calling of PopulateMesh, that does seem a step back with the updated UI Mesh rendering system in 5.2.2, waiting for the updated UI source to be revealed to see what (if anything) caching is used to prevent mesh rebuild of UI components when nothing has changed. Seen a few proposals for caching on the forums but nothing nice and uniformed yet.
Just double checked and the 5.2.2 source is now on the BitBucket. in short, no caching.
Some memory improvements by actually allocating and de-allocating lists, but I wonder if this is actually causing the effect you are seeing. Only way to verify is to copy the text code and making your own and playing.