It is true that Java is, by default, a p-code style language.  However, what 
Bertalan Fodor was referring to is what's called the "Just in Time" compiler.  
The JIT must not be confused with Java's command line compiler.  The command 
line compiler (or those built into IDEs) convert Java text source code into 
Java byte code (or p-code, if you like).  The JIT is actually part of the 
runtime environment which, as the p-code is accessed, converts the p-code to 
native machine code.

As you might imagine, this is quite a complicated task.  So much so that Sun 
provides two different JITs, one tuned for client access (UIs and such) which 
converts p-code to native code almost immediately and one tuned for longer 
running servers, which takes a more analytical approach, making far better 
choices on machine code conversion based on usage patterns.  Keep in mind to 
that in-lining is only one of a large variety of optimizations the JIT employs.

Based on current benchmarks, Java software runs as fast or significantly faster 
than even hand-written C code.  Even in Java 6 (just released) there are some 
very noticeable speed improvements.  All the documentation about Java being 
slow is either very old (still touted about by anti-Java-ers) or the result of 
very poor application design and implementation (even the JIT can't overcome a 
bad programmer; the most typical issue being that the person using Java objects 
still writes their code very procedure-oriented, without properly switching to 
the object oriented paradigm).

-----Original Message-----
From: [EMAIL PROTECTED] on behalf of Anthony W. Youngman
Sent: Wed 12/13/2006 5:23 AM
To: [email protected]
Subject: Re: lilypond and editors
 
In message <[EMAIL PROTECTED]>, Bertalan Fodor 
<[EMAIL PROTECTED]> writes
>Certainly not. Actually the java code is compiled to machine code at 
>runtime. This is slower than precompiling, but the compiled code can 
>run faster than its precompiled counterpart, because the runtime 
>machine will have information about how often a certain part of the 
>code is called, and those calls can be made inline. Running inline code 
>is much faster than procedure calls.
>
>Bert

Java code is actually a form of p-code (p standing for pseudo). 
Pseudo-code engines CAN be blindingly fast.

There's a lot of history behind pseudo-code - like UCSD pascal for 
example, or the example dear to me, the Pick system. At least one system 
I ran implemented a lot of the Pick instruction code set in microcode, 
and indeed, I understand that is the way the transputer works.

Any system with access to the first stage of a processor's pipeline and 
the ability to redefine it (ie any decent modern processor - don't know 
if that definition includes x86 :-) should be able to run p-code at the 
same sort of speed as "native" code.

Cheers,
Wol
>
>Erik Sandberg írta:
>> On Saturday 09 December 2006 10:27, Bertalan Fodor wrote:
>>
>>> Well, what is extremely important: development time is so little in 
>>>Java
>>> and with JEdit (compared to any alternatives), that I won't change this
>>> platform. The price is that it will remain slow if you don't have much
>>> memory in the machine.
>>>
>>
>> I'm not a java expert, but wouldn't it get a lot faster if you 
>>compiled everything to native machine code (using gcj, for instance)?
>>
>>
>
>
>
>
>_______________________________________________
>lilypond-user mailing list
>[email protected]
>http://lists.gnu.org/mailman/listinfo/lilypond-user

-- 
Anthony W. Youngman - [EMAIL PROTECTED]



_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user

2006-12-13, 05:26:57
The information contained in this e-mail message and any attachments may be 
privileged and confidential.  If the reader of this message is not the intended 
recipient or an agent responsible for delivering it to the intended recipient, 
you are hereby notified that any review, dissemination, distribution or copying 
of this communication is strictly prohibited.  If you have received this 
communication in error, please notify the sender immediately by replying to 
this e-mail and delete the message and any attachments from your computer.


2006-12-13, 08:25:13
The information contained in this e-mail message and any attachments may be 
privileged and confidential.  If the reader of this message is not the intended 
recipient or an agent responsible for delivering it to the intended recipient, 
you are hereby notified that any review, dissemination, distribution or copying 
of this communication is strictly prohibited.  If you have received this 
communication in error, please notify the sender immediately by replying to 
this e-mail and delete the message and any attachments from your computer.
_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to