Plone 5.2.2 performance is way better than before. It has less power consumption and is greener now. But how did we found the bottlenecks? What were the action needed to got it faster? Where are our pain points? Can we improve more?
Jens KleinSoftware Developer and self employed consultant at BlueDynamics Alliance
9. Tools mainly used
●
py-spy
runtime profiler for Python programs
●
repoze.profile
Python profiler integration with WSGI
●
dis
Disassembler for Python bytecode
10. py-spy
●
Overall mix of the whole application performance
●
Unix „top“ like output of running python program
●
recording mode: for later analyzing
●
Able to attach to live process w/o slowing down
Plone
11. repoze.profile
●
Python profiler integration as WSGI
middleware
●
Slows down the application
●
Ability to profile a single request and
analyse its call stack by count/ single call
time, accumulated time/ callee/ caller
12. Plone 5.2.0 to 5.2.3
plone.dexterity
●
avoid early providedBy calls
●
__getattr__ early exit on common attrs
●
caches optimized: assignable, schema cache
●
removal of superfluos threadlocal sync
15. Future Todo‘s
●
plone.restapi has optimization potential
→ all navigation related
●
plone.registry is called too often
●
Use „python:“ expressions in all page
templates
●
More introspection