Translate Toolkit & Pootle

Tools to help you make your software local

User Tools


This page is mostly dated now that Pootle 2.0 has much better performance, although the ideas for testing are still valid. See the page on Pootle optimisation for ways in which to improve Pootle performance even further. Pootle 2.1 should also have even better performance.

Pootle performance

This is about performance testing in Pootle, and a plan to look into them / address them.

Aspects to consider

  1. disk / memory / processing time
  2. concurrency of processing
  3. distribution across servers

Possible immediate wins

  • backgrounding tasks
  • needs queue so things needed can be brought to front… (queue for files needing stats, if you need stats on a file push it up to the top / do it in own thread)

Areas to Benchmark

  • Parsing PO files
  • Creating Lucene indexes
  • Analyzing stats on PO files
  • Reindexing / altering some entries in a file
  • Overall initial startup

{Friedel sê: Page generation for a big directory (like openoffice)}

Ideas

  • May be helpful to look at locking requirements for concurrent processes (e.g. Apache) at the same time, as separating out the API so its clear whats happening may make it easier to benchmark / improve
  • If the templates directory is indexed, it can form the starting index for a new language that is created from the template PO's.

Achieved so far

  • Simple benchmark program (benchmark.py) that mostly measures the areas above that happen on first-time launch, outputs profiler info (might need to be updated for Pootle 2)
  • Reduced startup time to 1/4 what it was before by optimising often-used code (low-level string functions used by parsing / index analysis code, and stats helper functions were main target)

Locking and Distribution

see locking