Performance

From ZekrWiki

Revision as of 14:46, 18 June 2010 by Mohsen (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

Zekr is written in Java, so it's performance is not as fast as normal native C++ application, however the current implementation paid attention to performance issues by optimizing IO calls, using facades, making timely tasks lazy. Java is actually not as slow as people usually think. Zekr performs some timely tasks on startup, and doing that even with C++ is not very faster that current implementation. For example it starts a browser instance on runtime which is really timely for browsers like Mozilla.

Startup/execution time

Startup time can be made faster by doing one or more of the followings:

  • compiling Zekr with latest .class file target (now this is javac -target 1.6), and using JRE 1.6 or newer for running Zekr. Please note that normal Zekr builds are compiled with -target 1.4 (as of Zekr 0.7.5, they are build with -target 1.5) option for compatibility reasons, which makes its startup and execution time a bit slower.
  • removing all unused language packs from <zekr installation>/res/lang directory. By default Zekr loads all the language packs into memory on startup (in order to extract language packs properties).
  • removing all translations (works with Zekr 0.6.0 beta 2+) or unused translations. Default translation is loaded into memory, but other translations' descriptor is also loaded at startup. This can be even worse if you've set multiple translations and using Multi-translation layout, which makes startup time slower because it loads all those translations into memory. You can remove translations from <zekr installation>/res/text/trans or workspace/text/trans.
  • Disable root database: loading root database may take up to 1 second to load into memory. You can disable it by setting root.enable = false in workspace/config/config.properties.
Personal tools