View Single Post
  #3 (permalink)  
Old May 22nd, 2004
verdyp's Avatar
verdyp verdyp is offline
LimeWire is International
 
Join Date: January 13th, 2002
Location: Nantes, FR; Rennes, FR
Posts: 306
verdyp is flying high
Default

Note that I have worked on accelerating the SHA1 hashing. I hope that LimeWire will test the new SHA1 class I created, because it DOUBLES the performance of the SHA1 "MessageDigest" so that, for the same CPU time, it will hash twice the volume.

However it will require testing it on other platforms than just mine (Windows), notably on MacOSX where some optimizations that are perfectly legal according to the Java VM specification produce errors when computing expressions.

The new code I created should however be extremely beneficial to Mac OS 9 users, because it avoids all memory management (which is shamely one of the main causes of slow performance in Java 1.1.8/MRJ 2.5, the latest supported Java on Mac OS 9).

Give us some time to beta-test this SHA1 hashing code completely, and it may be in a later release of LimeWire. (On my PC, an Athlon 1800+ XP on Windows XP with Java 1.5-RC1, this code can hash 47 Megabytes per second, instead of 22 Megabytes per second with the default hash implemented in Java core libraries; the difference of performance is even greater with Java 1.4 or 1.3, where my code works roughly at the same level of performance, unlike the default code in Java core libraries).

---

Hashing should not take 100% of your CPU. It is limited on purpose so that its background-running thread will not take more than 33% of the total execution time, leaving enough time to keep the LimeWire GUI or your other apps responsive. At most, LimeWire should not take more than 50% of your CPU time when connected, unless you are trying to download lots of files in parallel.

That's one good reason why the number of concurrent downloads is limited: if it was unlimited, we could have hundreds or thousands of threads taking all your CPU if they all try to connect to various sources, accessing to complex data structures for each file and each source. You can choose the number of concurrent downloads to authorize in the options (you can still select more files to download but they will be queued locally, and tried one after the other).

If you have poor performance, you may need to reduce the number of concurrent downloads allowed in the options panel.
__________________
LimeWire is international. Help translate LimeWire to your own language.
Visit: http://www.limewire.org/translate.shtml

Last edited by verdyp; May 22nd, 2004 at 05:10 PM.
Reply With Quote