Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: java stored procedures fast, but slow when called as SQL function
Norman Dunbar <Norman.Dunbar_at_lfs.co.uk> wrote in message news:<E2F6A70FE45242488C865C3BC1245DA7038D977E_at_lnewton.leeds.lfs.co.uk>...
> PS. When I was at college, Virtual Machine meant just that - you
> appeared to have the entire resources of the machine to yourself. As far
> as I know, the meaning hasn't changed, it has just been 'leveraged'
> (aaarrgh !) to mean something totally different. A Java VM is just (!)
> an interpreter while a VM is something to do with multi-user systems.
> <dons flame proof Nomex suit and waits ....>
Hehehe!
"leveraged" is indeed the word. A VM in mainframe parlance is a complete box with virtual disks, even its own virtual file system AND Operating System.
These can be completely different between 2 VMs implemented in the same physical system.
This lets you for example run MVS (or whatever IBM calls it now) in one VM and Linux in another. All in the same box. These now in turn can support one or more users/batch processes/whatever.
That is most definitely not what a JVM does. So the term was indeed "leveraged".
Now, is a JVM "just an interpreter"? I don't think so. Let's look at the traditional other interpreter in the market: VBA. A VBA program runs as an OS process and has the same access to the OS that any other program may have. A DLL is engaged to interpret the byte-code, but it is just running as a normal process in the OS. In fact, the interpreter runs in the same process space as the program. You want to call a Windoze internal DLL directly from VBA? Hey, knock yourself out: it's perfectly possible and you do it directly from the program.
A JVM program MUST have the JVM started BEFORE it can execute. You can't start ANOTHER program in that same JVM address space unless the first program does that for you. The program cannot access the OS file system directly. The program cannot access the OS network layers directly. Try and access the Windoze GUI directly from Java. I know, there are class libraries that let you do that. I said "directly". Cannot, eh? Bingo.
There is the difference. In order to provide the "sandbox" concept, the JVM has to isolate the program from whatever OS it's running in. "Just an interpreter" does NOT have to do that. Clear?
"Real" difference? Overhead.
Advantages/disadvantages? It depends.
The same thing? No way, Josay!
Cheers
Nuno Souto
wizofoz2k_at_yahoo.com.au.nospam
Received on Tue Apr 15 2003 - 19:12:52 CDT
![]() |
![]() |