| By Christophe So | Article Rating: |
|
| June 3, 2009 01:38 PM EDT | Reads: |
3,470 |
Most of you, if following the latest development on Launchpad project area, might be aware of the big changes with Open ERP Web Client. We migrated the web client to CherryPy3 droping the TurboGears completely and migrated Kid templates by faster Mako templates as a major step to make the Web Client much more faster and easier to deploy.
All the Kid templates are converted to faster Mako templates, i18n/l18n features have been partially reimplemented using Python Babel, CherryPy2 (TG is built on top of CP2) was replaced with CherryPy3, the latest, much better version of CherryPy Server.
This greatly reduced the pain of getting started with and deploying of Open ERP Web client. Now the number of third party dependencies are reduced to 3-4 pure Python libraries which you can install within the local lib dir with the help of `populate.sh` script, found under the same lib directory. Just get the source from Launchpad, run the populate.sh and launch the web client...
The initial test results are very impressive. We have seen almost 3-5 time speed improvement. Here are the benchmark results of the latest trunk version against the stable 5.0 branch which is running over TurboGears.
The benchmark test was done using Apache Benchmark Tool against relatively bigger Customer Invoice Form view. The command was used like this:
$ ab -C session_id=$session -n 100 "http://localhost:8080/form/edit?model=account.invoice&id=1"
where $session should be replaced with session id (you can use firebug to see the session id).
Here is the comparison between before and after improvements in Open ERP web client
|
Result of Open ERP Web 5.0 (TurboGears + Kid) |
Result of Open ERP Web Trunk (CherryPy3 + Mako) |
|
This is ApacheBench, Version 2.3 <$Revision: 655654 $> |
This is ApacheBench, Version 2.3 <$Revision: 655654 $> |
|
Concurrency Level: 1 |
Concurrency Level: 1 |
|
Time taken for tests: 166.323 seconds |
Time taken for tests: 42.054 seconds |
|
Complete requests: 100 |
Complete requests: 100 |
|
Failed requests: 0 |
Failed requests: 0 |
|
Write errors: 0 |
Write errors: 0 |
|
Total transferred: 8022000 bytes |
Total transferred: 9063400 bytes |
|
HTML transferred: 7996500 bytes |
HTML transferred: 9039400 bytes |
|
Requests per second: 0.60 [#/sec] (mean) |
Requests per second: 2.38 [#/sec] (mean) |
|
Time per request: 1663.228 [ms] (mean) |
Time per request: 420.543 [ms] (mean) |
|
Time per request: 1663.228 [ms] (mean, across all concurrent requests) |
Time per request: 420.543 [ms] (mean, across all concurrent requests) |
|
Transfer rate: 47.10 [Kbytes/sec] received |
Transfer rate: 210.47 [Kbytes/sec] received |
|
Connection Times (ms) |
Connection Times (ms) |
|
min mean[+/-sd] median max |
min mean[+/-sd] median max |
|
Connect: 0 0 0.0 0 0 |
Connect: 0 0 0.0 0 0 |
|
Processing: 1556 1663 71.3 1663 1856 |
Processing: 382 420 27.7 415 523 |
|
Waiting: 1555 1662 71.3 1662 1855 |
Waiting: 381 420 27.7 415 522 |
|
Total: 1556 1663 71.3 1663 1856 |
Total: 382 420 27.7 416 523 |
|
Percentage of the requests served within a certain time (ms) |
Percentage of the requests served within a certain time (ms) |
|
50% 1663 |
50% 416 |
|
66% 1681 |
66% 418 |
|
75% 1695 |
75% 420 |
|
80% 1715 |
80% 424 |
|
90% 1775 |
90% 436 |
|
95% 1801 |
95% 512 |
|
98% 1829 |
98% 520 |
|
99% 1856 |
99% 523 |
|
100% 1856 (longest request) |
100% 523 (longest request) |
Conclusion
You can see significant performance boost in second test result. We observed 3-5 time speedup. There are still room to improve the performance further. Like reducing RPC calls, catching results of some computationally heavy functions. Implementing a way to directly call server methods if web client and server are installed on the same system (completely eliminating TCP layer).
What's next?
Besides this, we also planned to make web client modular implementing plugin system which let you create your own plugins to extend the functionality of the web client. We appreciate your ideas and suggestions in this regards.
Also, we have planned for a better main menu & tabified interface (similar to GTK client) where you always have access to the main menu and all views will be opened in tabs inside the same html page instead of utilising browser tabs. We had discussion about such interface previously, you can search the forum for a very good mockup implementation.
We are also thinking of writing some automated unit tests using CP3 testing API. We already wrote some basic tests to check how to proceed. You can run all tests by launching `run-tests.py` script...
We greatly appreciate you ideas, suggestions in this regards...
Thanks and regards
Open ERP Team
Published June 3, 2009 Reads 3,470
Copyright © 2009 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
- Real-World AJAX Book Preview: AjaxWord: An Open Source Web Word Processor
- Breach Security's ModSecurity(TM) Open Source Web Application Firewall Software Selected as Top Application Security Tool at AppSec 2007
- AjaxWord: An Open Source Web Word Processor
- Rising of Open ERP and Its Founder Fabien Pinckaers
- Sun Rise With Open ERP
More Stories By Christophe So
Christophe So is in charge of promotional activities for Open ERP, and its community. Open ERP has been specifically designed to help businesses improve their performances. Its functional coverage expands to all kinds of different areas.
- Ubuntu-based Open Source Linux Mint Tests KDE Version
- Linux Virtualization and Tired Open Source Myths
- IGEL Supports Red Hat Enterprise Virtualization 3.0
- CloudLinux Announces Support for Atomia
- Amazon Kindle Fire Gets Its Own 'Personal Cloud Desktop' with AlwaysOnPC App Launch
- SPIRIT DSP Receives 2011 INTERNET TELEPHONY Product of the Year Award
- The Utility Infrastructure Security Market 2012-2022: Cybersecurity & Smart Grids
- FORTUNE Magazine Names Rackspace Among “100 Best Companies to Work For”
- EnterpriseDB Announces Availability of Postgres Plus Cloud Database
- Convirture Reports Strong 2011 as Virtualization Management Takes Off
- iFollowOffice Turns to Virtual Bridges and Savvis for On-Demand Virtual Desktop Services
- Swisscom Floats Red Hat Cloud
- i-Technology in 2012: Five Industry Predictions
- Ubuntu-based Open Source Linux Mint Tests KDE Version
- Amazon to Rent Out Supercomputers
- Amazon Émigré Starts Network Monitoring Firm
- HP’s Putting a Back Door in the Itanium Alamo
- Linux Virtualization and Tired Open Source Myths
- CloudLinux Announces Preferred Partner Program
- MapR Pushes the Hadoop Envelope
- Rightware Announces Gaming Performance Benchmark for OpenGL ES 3.0/Halti
- IGEL Supports Red Hat Enterprise Virtualization 3.0
- CloudLinux Announces Support for Atomia
- 3Dconnexion Announces its Newest 3D Mouse - the SpaceMouse Pro
- The i-Technology Right Stuff
- Linux.SYS-CON.com Exclusive: Linus Discloses *Real* Fathers of Linux
- After Ubuntu, Windows Looks Increasingly Bad, Increasingly Archaic, Increasingly Unfriendly
- A Closer Look at Damn Small Linux
- Linus' Top Ten SCO Barbs
- SCO CEO Posts Open Letter to the Open Source Community
- Netscape Co-Founder's 12 Reasons for Growth of Open Source
- Where Are RIA Technologies Headed in 2008?
- *POINT - COUNTERPOINT SPECIAL* What's Wrong with the Open Source Community?
- Introducing "Cooperative Linux" - Linux for Windows, No Less
- Linux.SYS-CON.com Exclusive: What Would UserLinux Look Like?
- Why Recovering a Deleted Ext3 File Is Difficult . . .





















