Hi Shachar,

Excellent! The performance is now much much better.
On my laptop(WinXP), with a Pentium M 1.7GHz, I encrypted a 870Mb Outlook pst file in less than 5 minutes!!

At home I have a 3.0 GHz Pentium box.
I'll let you know the performance on that fyi.


On 22/11/06, Shachar Shemesh <rsyncrypto@shemesh.biz > wrote:
In the best tradition of open source development, "release early,
release often".

Version 0.19 is now available at all the usual places (i.e. -
http://sourceforge.net/projects/rsyncrypto). Go get it while it's hot.

This place is probably the place I need to say this least of all, but
the main changes this version is introducing are a major speedup to the
entire process, on all platforms. OS calls have been buffered for both
reads and writes, and the differences are dramatic. For comparison's
sake, I created a 16MB file from /dev/urandom. The file is totally
uncompressible. Here are some stats from my computer. All stats running
on Linux on a Pentium M 1.8GHz.

With version 0.18:


real    0m14.851s
user    0m3.948s
sys     0m10.509s

We can see that the user space + kernel times make up the entire clock
time for the application (the time spent on gzip was not counted here!)
We can also see that despite the fact that we are performing heavy
operations here (encryption, done in user space), most of the time is
spent on system calls. Decryption is much much faster:

real    0m3.400s
user    0m1.512s
sys     0m1.476s

We can see that we spend about equal time in the system and in user space.

With version 0.19, here are our encryption numbers:

real    0m4.251s
user    0m4.068s
sys     0m0.092s

The user space (i.e. - actual encryption) time remained, more or less,
the same as before. The system calls time was practically eliminated.
The over all execution time was reduced from almost 15 seconds to just a
little over 4, making a 3.5 times speedup. The measurements are far from
scientific, so your mileage may, and probably will, vary somewhat, but
this is clearly a major speedup.

As far as decryption times go, things are also looking much better:

real    0m1.984s
user    0m1.860s
sys     0m0.068s

As we can see, here too we managed to wipe away all of the time spent on
system calls. The relative ratio of system calls wasn't as dramatic
here, so we only have about 2 times speedup. This makes particular sense
as encryption and decryption do not take different amount of time
(though compression does take longer than decompression), so I am fully
expecting these numbers to stat approaching the same area.

Unfortunately, I don't have a program for Windows that measures user vs.
system time, so my measurements there aren't as exact. About the same
speedups are seen there, however, so I think it will be safe to assume,
for the time being, that the bottlenecks are similar for Linux and for
Windows, and optimize the first.

Comments, remarks, and I believe that at least one check (someone
offered a bug-bounty for getting Windows above 1GB/hr, a mark we clear
easily now) welcome.


Shachar Shemesh
Lingnu Open Source Consulting ltd.
Have you backed up today's work? http://www.lingnu.com/backup.html

Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
Rsyncrypto-devel mailing list