View Single Post
  #1 (permalink)  
Old December 28th, 2003
sberlin sberlin is offline
Software Developer
 
Join Date: November 4th, 2002
Location: New York
Posts: 1,366
sberlin is flying high
Lightbulb Why Does LimeWire Seem To Run More Slowly?

The answer to this question requires a bit of background in Java, which is the language that LimeWire is written in...

Java programs run in what's called a "Java Virtual Machine" (JVM). The JVM reads the code that makes up LimeWire and tells your computer what to do. This means that LimeWire (and all Java programs) can be run on any operating system that has a JVM.

One of the recent additions to JVMs is what's called a "Just-In-Time Compiler" (JIT). This is something that, while running a program, optimizes and converts the java bytecode into native machine code. The addition technically came when Java 1.2 was introduced, but a JIT was backported by Symantec to Apple for Java 1.1.8 on Mac Classics.

Unfortunately, this JIT becomes very buggy as the language is pushed to its limits. It was causing many problems that destabilized LimeWire and caused errors that are generally impossible. Prior to the release of 3.6.15, the JIT was stopping LimeWire from even starting. (Instead, a message popped up saying there was a bug in the JIT and that Symantec should be notified.) Thus, in order to keep LimeWire running, we had to disable the JIT on Mac Classic.

The result of this is that LimeWire runs slower, because the JVM is constantly converting the java bytecode into machine code instead of remembering and optimizing it.

We'll look into determining if it's possible to turn the JIT back on, but it is going to be difficult to do.

Thanks.

Last edited by sberlin; December 28th, 2003 at 09:38 PM.
Reply With Quote