-
Couldn't load subscription status.
- Fork 2
Description
The performance of the ZPT renderer has not yet been considered at all, and there has been little-to-no effort to make it performant at all. Now that I am increasing my usage of the renderer and that I am facing timeout issues in Screenplay reports, the tone is right to do some benchmarking and profiling and then to optimise the rendering engine.
Profiling
Firstly, I need to profile the engine under some typical circumstances. To do this, I will need to create some test pages to profile.
The profiling should be performed against ASP.NET MVC 5, and each profile should be compared against a profile for the equivalent page (with an equivalent model) using the Razor rendering engine.
A number of test profiles should be created (using a variety of techniques). Particularly important are:
- C# expressions
- Loops (large and small, between 5 and 10,000 iterations)
- Nested loops
- METAL macro usage
- Macro usage within a loop
loadexpressions- The various document type plugins
The results of the profiling should be recorded within/attached to this ticket. This can then be referred-to in the future for further work as applicable.
Optimisation
The actual optimisation will be decided by the results of the benchmarking and profiling.
Importantly, I'm expecting a marked speed improvement in the rendering of large documents.