At 09:07 AM 2/12/02 -0500, Paul Kinnucan wrote:
>Berndl, Klaus writes:
>  > >I've run the JDE with eieio both compiled and uncompiled and I've
>  > >never noticed any difference in performance.  Further, I can't imagine
>  > >why it should cause bad performance.  eieio is not used to do any
>  > >computationally intensive tasks.
>  >

On a related but orthogonal note, do you have an idea how byte-compiling 
would affect memory usage?  Most (all?) of the time when a JDE command is 
slow, I'm fairly certain that it's because I'm low on memory and the 
program is swapping.  (Compiling with the compile server often takes less 
than a second, but can take more than 15.)

Troy

>  > First of all not only JDE uses eieio but also semantic which in turn
>  > is used by JDE.
>  >
>  > Secondly macros & defsubst functions are inlined if byte-compiled
>  > and eieio has a lot of them (if i remember right, Eric has told
>  > me this).
>  > BTW: This argument would also recommend, that we should
>  > semantic byte-compile!
>  >
>  > But here comes the original explanation from Eric, the author of eieio:
>  >
>  > "Byte compilation converts the lisp program into a stack based program
>  > with integer IDs for all built-in symbols.  The core of EIEIO uses
>  > almost all built in commands (like car, cdr, assoc, etc).  In
>  > particular, the method dispatch mechanism does a lot of work.  When
>  > EIEIO core is not byte compiled, the method dispatch runs between
>  > every single EIEIO method call.  The byte compilation step speeds
>  > this up a lot."
>  >
>  > Therefore my strong recommendation: At least eieio and semantic
>  > should be byte-compiled.
>  > And for other packages it is IMHO at least a good way to detect some
>  > errors...
>  >
>  > >If you have noticed bad performance, I'd like to know under what
>  > >circumstances so that I can investigate. There may be ways to
>  > >improve the performance.
>  >
>  > Yes, just byte-compile eieio and semantic :-)
>
>Klaus,
>
>I don't doubt that byte-compiling eieio improves performance. What I
>doubt is that byte-compiling eieo improves JDE performance
>perceptibly. The JDE does not use eieio for any computation-intensive
>tasks. A few microseconds of difference in the execution of a debugger
>step command or the creation of a dialog buffer is not going to be
>perceptible to a human being with ordinary powers of perception. My
>experience running the JDE with eieio both compiled and uncompiled
>confirms this. On the other hand, incorrectly compiling eieo does make
>a PERCEPTIBLE difference in the response time of JDEE commands. It
>increases the response time to INFINITY and forces me to repeatedly
>having to tutor new users on the correct way to byte-compile sets of
>interdependent Lisp files. This takes up a significant portion of my
>time, which is why I try to discourage people, especially novices,
>from byte compiling the JDE. The only way you are going to convince me
>to change this policy is to cite a SPECIFIC JDE command that is
>PERCEPTIBLY improved by byte-compiling eieio.
>
>As for semantic, compiling semantic does shorten loading of large Java
>files but otherwise does not make a significant enough difference, in
>my opinion, to warrant encouraging new users to compile the JDE.
>
>I've used a lot of Emacs applications and the only one that I have
>used where compilation is absolutely necessary is psgml because
>compiling psgmal reduces parsing of the Docbook DTD from hours to a
>few seconds.
>
>
>- Paul

Troy Daniels
[EMAIL PROTECTED]
781-273-3388 x218

Reply via email to