Mark Thornton
Sr. Member   Posts: 473 Medals: 2
|
 |
«
Reply #30 on:
2004-02-28 02:27:57 » |
|
At dev time you can copy the JDK's server VM dll folder to the JRE so that sending the following command works: java -server -version
Maybe this is what Mark meant?
Exactly. A default install of java 1.5 beta gives this in response to java -server -versionError: no `server' JVM at `C:\Program Files\Java\j2re1.5.0\bin\server\jvm.dll'.
|
|
|
|
|
Jeff
|
 |
«
Reply #31 on:
2004-03-02 21:42:11 » |
|
Hmm. Thats the beta. Im not sure what that means if anything.
AFAIK there is no intent to stop destributing the server VM with the JRE but who knwos, maybe someone thought it was a brillaitn way to reduce JRE size.
I'll poke around and see what I cna find out.
|
|
|
|
Jeff
|
 |
«
Reply #32 on:
2004-03-02 21:43:44 » |
|
Umk are you guys telling me its been this way since 1.4?
Thats nutty. I need to look into that. Thanks.
|
|
|
|
Games published by our own members! Go get 'em!
|
|
Bombadil
JGO Strike Force    Posts: 808 Medals: 1
|
 |
«
Reply #33 on:
2004-03-02 23:59:13 » |
|
Umk are you guys telling me its been this way since 1.4? Yes. :-) You live in a nice world: no Windows PCs for years. Lucky you...
|
|
|
|
|
Mark Thornton
Sr. Member   Posts: 473 Medals: 2
|
 |
«
Reply #34 on:
2004-03-03 01:11:55 » |
|
Umk are you guys telling me its been this way since 1.4?
Since the server VM was released (1.3 ?). You could at least make the server VM an option in the JRE install so that you don't have to download it unless you want to.
|
|
|
|
|
princec
« League of Dukes » JGO Kernel      Posts: 8076 Medals: 91
Eh? Who? What? ... Me?
|
 |
«
Reply #35 on:
2004-03-03 02:07:26 » |
|
<nagnagnag> ...or get the VM engineers to join them together and get that 2-stage compile working...  </nagnagnag> Cas 
|
|
|
|
selendic
Jr. Member   Posts: 74
Java games rock!
|
 |
«
Reply #36 on:
2004-03-03 05:14:16 » |
|
Umk are you guys telling me its been this way since 1.4?
Thats nutty. I need to look into that. Thanks.
Yep, there's not server VM in Windows JRE for a long time now. However, Linux 1.5.0 beta JRE has it. Sweet.
|
|
|
|
|
Mark Thornton
Sr. Member   Posts: 473 Medals: 2
|
 |
«
Reply #37 on:
2004-03-03 05:51:02 » |
|
You mean its just the 1.5 JDK installation which doesn't copy the server vm to the JRE location? That 's just nutty.
|
|
|
|
|
swpalmer
JGO Kernel      Posts: 3438 Medals: 4
Where's the Kaboom?
|
 |
«
Reply #38 on:
2004-03-03 06:52:06 » |
|
Yes it has always been the case that the server VM is not included in the "JRE" but is included in the "JDK", on Windows at least.
On Mac there currently is NO server VM at all, but the -server command line arg does change some parameters to the client VM so it behaves a bit more server like - though without any of the server VM optimizations.
|
|
|
|
cfmdobbie
JGO Wizard     Posts: 1257
Who, me?
|
 |
«
Reply #39 on:
2004-03-04 15:28:37 » |
|
Heh, what a mess!  I'd always assumed that the reason why the server VM wasn't in the JRE was because most people wouldn't know it was there anyway - it's an easy 2MB to cut. The minority who want the server VM are capable of getting the full JDK instead - classical client-side apps would prefer to avoid the startup cost so it's application servers et al that really benefit, and they frequently come bundled with the preferred VM. That was always my perception, anyway.
|
Hellomynameis Charlie Dobbie.
|
|
|
Games published by our own members! Go get 'em!
|
|
princec
« League of Dukes » JGO Kernel      Posts: 8076 Medals: 91
Eh? Who? What? ... Me?
|
 |
«
Reply #40 on:
2004-03-05 02:01:56 » |
|
What annoys me is that all the performance optimism and clever compiler tricks quoted about Java are all based on the server VM. The client VM just sucks, really  Cas 
|
|
|
|
Jeff
|
 |
«
Reply #41 on:
2004-03-05 02:22:59 » |
|
Well not ALL the clever tricks, but certainly the expensive optimization ones are server only.
I still think its wacky that they too it out of the JRE. i never noticed because I ALWAYS install a JDK.
I'll do some digging on it but I suspect some brilliant person decided that "only GUI users download the JRE and they don't need server" which as PC points out is not a good assumption.
|
|
|
|
blahblahblahh
JGO Kernel      Posts: 4575
http://t-machine.org
|
 |
«
Reply #42 on:
2004-03-05 02:52:21 » |
|
I'll do some digging on it but I suspect some brilliant person decided that "only GUI users download the JRE and they don't need server" which as PC points out is not a good assumption.
Perhaps related to this mess? http://www.java-gaming.org/cgi-bin/JGNetForums/YaBB.cgi?board=announcements;action=display;num=1078053186It certainly seems that someone in marketing is keen to fork <*> java. <*> (the similarity between this and another f word is rather appropriate here I think)
|
malloc will be first against the wall when the revolution comes...
|
|
|
sma
Jr. Member   Posts: 98
|
 |
«
Reply #43 on:
2004-03-08 01:38:29 » |
|
The client VM just sucks, really  That's over-generalized and therefore simply not true. Eclipse, for example, runs much better (read: faster) on a client VM than on a server VM. For whatever reason...
|
.: Truth Until Paradox!
|
|
|
princec
« League of Dukes » JGO Kernel      Posts: 8076 Medals: 91
Eh? Who? What? ... Me?
|
 |
«
Reply #44 on:
2004-03-08 02:46:12 » |
|
It sucks for what we want, which is high-performance games that can compete with C++  Eclipse runs faster with the server VM - it just needs a little tuning. Cas 
|
|
|
|
HamsterofDeath
Jr. Member   Posts: 75
Java games rock!
|
 |
«
Reply #45 on:
2004-03-25 04:35:40 » |
|
try to run this 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class Bench { public static void main(String[] args) { long time = System.currentTimeMillis(); int x = 0; for (int i = 0;i<1000000000;i++) { x+=5; x+=10; } System.out.println(x); System.out.println((System.currentTimeMillis()-time)/1000f); } } |
with the client and server vm (1.5). it's amazing. time client vm : 8 seconds on a 1 ghz pentium 3. server vm : 0.01 (!!!) seconds
|
|
|
|
|
princec
« League of Dukes » JGO Kernel      Posts: 8076 Medals: 91
Eh? Who? What? ... Me?
|
 |
«
Reply #46 on:
2004-03-25 04:45:05 » |
|
It is conceivable the server VM processes that loop completely and turns it into a single instruction... not particularly useful in the real world maybe but you never know  Cas 
|
|
|
|
pepe
Sr. Member   Posts: 402
Nothing unreal exists
|
 |
«
Reply #47 on:
2004-03-25 04:59:32 » |
|
Maybe simply, the server vm is smart enough to remove completely the loop as the result can be calculated with a simple multiplication... that is 1000000000 * 15..... Can even add the result directly in the print statement.... I bet that if you get the loop count from... mhhh commandline, you will not get the same results in server VM.... You then finally bench the timer granularity ...
Not an amazing performance, but a nice optimization..
corrections.. can't type....
|
|
|
|
morbo
JGO n00b  Posts: 35
|
 |
«
Reply #48 on:
2004-03-25 08:34:09 » |
|
Probably has more to do with the JIT. AFAIK, the server VM is much more proactive at determining which methods it should JIT compile. Whereas the client VM waits until it actually sees a hotspot before it compiles.
Try moving the code into a method, calling it a couple of times, THEN perform the benchmark. This should give the client VM time to compile the method, if this is indeed what's happening.
|
|
|
|
|
|