Improving XML performance with the LZO real time compression library
LZO is an impressive real time compression library. I got great performance improvements when compressing XML messages several years ago. The following graph shows the results on a 10Mb LAN with multiple clients using lzo 1.08:
The X-axis shows the different compression configurations. "Val 0" is the original code that does not use any compression. The other values show the results with different compression levels.:
- 81: very fast but low compression
- 111: standard compression
- 982: high compression
I expected a performance improvement but the results impressed me:
- it uses less cpu, since it does not have to manage a lot of large strings
- drastic increase in transactions per second: it jumped from 35 to 140!
- it uses less network bandwith (as the data is compressed)
LZO 2.0 has just been released. Real time compression of DataSets returned by WebServices will my first test case when the .NET bindings are released.