PDA

View Full Version : Java performance




eric_n_dfw
Oct 14, 2005, 02:44 PM
Spinning a discussion from another thread (http://forums.macrumors.com/showthread.php?p=1817683#post1817683) off to here...


I doubt it.

Sun doesn't like Microsoft.

Microsoft doesn't like Sun.

They simply tolerate each other.

Microsoft even attempted to exclude support for the JVM on XP, until Sun starting making noise.

I doubt Sun is going the 'extra mile' to make sure that the JVM runs on Windows better than their own server software.
Microsoft can do that - they have the upper hand - Sun cannot afford to piss off Windows based developers. I'd venture a bet that there is a very miniscule number of Java developers that use Sun machines for develoment (deployment is a different story). If the JDK sucks on the desktop of the majority of developers, they move to .NET, Ruby, PHP, etc...

Sun may not like it, but that's the way it is.

(NOTE: Ironicly, I say this while I've been developing on Solaris boxes for the past 5 years... but only because we had to for various reasons. We (my team) just finished a network migration that allows us to develop on our own workstations and it's like heaven!)



teh_pwnerer
Oct 18, 2005, 08:58 AM
I used to develop Java on Solaris. I didn't think it was bad.

eric_n_dfw
Oct 18, 2005, 09:49 AM
I used to develop Java on Solaris. I didn't think it was bad.
Honestly, I think it was a matter of developing remotely, using X windows and/or VNC to a server where the IDE was running. The responsiveness of the GUI is so much slower (even on a good network) than when running on your own machine.

Also, sharing a development server (quad CPU, 4GB ram) between a dozen or more developers the ant builds can be as much as 8 times slower than when we use our own machines.

I developed on a large C++ app at my prior job on Solaris with lesser machines and fewer developers and compiles were pretty fast so a lot of it may be our environment.

teh_pwnerer
Oct 18, 2005, 01:57 PM
Probably your environment. I've never been completely satisfied with X over the network. I'm having flashbacks of a heated debate with a coworker who said I was too picky/demanding when asking for better performance from X on a LAN. I still think I'm right.

I remember using a Sun Blade 1000, build periods were relatively short compared to the Power Mac and Wintel machines. On group machines, yeah it can get annoying.

Is it bad etiquette to renice other builds down to 20? Nobody told me.

eric_n_dfw
Oct 19, 2005, 08:24 AM
Probably your environment. I've never been completely satisfied with X over the network. I'm having flashbacks of a heated debate with a coworker who said I was too picky/demanding when asking for better performance from X on a LAN. I still think I'm right.

I remember using a Sun Blade 1000, build periods were relatively short compared to the Power Mac and Wintel machines. On group machines, yeah it can get annoying.

Is it bad etiquette to renice other builds down to 20? Nobody told me.
Yeah, none of us developers have renice privileges. (thank heavens! there'd be blood on the walls if someone did that to me!)

jeremy.king
Oct 19, 2005, 02:06 PM
...
Also, sharing a development server (quad CPU, 4GB ram) between a dozen or more developers the ant builds can be as much as 8 times slower than when we use our own machines.
...

Whats wrong with this picture?

You really develop (as in writing code/builds/etc...) on a shared server? Last I checked it wasn't the early 90s anymore. That would be difficult in ANY environment.

eric_n_dfw
Oct 19, 2005, 02:13 PM
Whats wrong with this picture?

You really develop (as in writing code/builds/etc...) on a shared server? Last I checked it wasn't the early 90s anymore. That would be difficult in ANY environment.
ClearCase dynamic views with a Unix server. Dynamic views rock for large development teams, but because of our network topology and corporate security mandates (it's a long story) we cannot mount them to our desktop machines.

We just started using a new Eclipse plugin (ClearCase Remote Client) that allows us to have the equivalent of a "snapshot" view on our machines - but not everyone is using it yet.

As for our C/C++ code, yes - it's on shared servers and has to be as it is Solaris specific.

FWIW: I never said our environment was "good"! :rolleyes:

jeremy.king
Oct 19, 2005, 02:16 PM
FWIW: I never said our environment was "good"! :rolleyes:

You can say that again ;)

For an industry (IT/IS/etc) that is almost entirely focused on productivity, I am surprised your employer chose an environment that seems to provide more obstacles than necessary.

eric_n_dfw
Oct 19, 2005, 02:26 PM
You can say that again ;)

For an industry (IT/IS/etc) that is almost entirely focused on productivity, I am surprised your employer chose an environment that seems to provide more obstacles than necessary.
It's more of a matter of an old environment from our legacy code base (the C stuff) that got used for the new development. Our small company got bought by a huge company a few years ago and our stuff had to be "fit" into their existing network and security policies. That put our development boxes in a DMZ that could see the WWW but is firewalled off from our desktops. We have ports punched open to get to them, but ClearCase uses RPC calls which are not routable over/through those firewalls. If we want desktop access to our ClearCase we have to relinquish control of the SCM stuff to our outsourced IT vendor (another huge company) that does things is a back-assward way compared to our workflow. So, we deal with it.

One nice thing about our Java stuff is that, since it has been developed (and still must be unit tested) on the exact same platforms as the QA and production servers, we haven't run into a lot of stupid issues that other people in our "parent company" have when you use Windows to develop and Unix/Linux to ship like case insensitivity file system issues, app server or JDK version differences, etc.

plinden
Oct 19, 2005, 02:30 PM
We are still stuck with five year old Sun Ultra 5s, shared between 3-5 developers. Luckily I'm a Java developer so I use my laptop (but I'm not supposed to) unless there's something OS-specific (not very often) that needs to be looked at. The laptop is five times faster at compiling even with the dopey virus-checker running. That's 2 minutes on the laptop vs 10 minutes on the workstations.

I really don't know what our managers are thinking. They could buy a single high end Sun workstation for OS-specific work, and each of us a generic Linux box for development. The productivity savings would pay for it all in the first month, but they have a fixed budget for equipment and they would rather buy new laptops for themselves annually - they need them to play Solitaire on cross country flights.

Edit: This is brought up monthly, sometimes weekly, at our team meetings.

eric_n_dfw
Oct 19, 2005, 02:38 PM
Our builds take anywhere from 15 minutes (including a ton of JSP compilation) in the off hours to as high as 80+ minutes in mid-day if you get a bunch of people building at the same time.

My Linux machine (2.6Ghz P4 I think, 1GB RAM) can do it in 6.
My poor old G4 500Mhz PowerMac (also with 1GB RAM) can do it in about 15 to 20.

Edit: Those are "clean" builds, incremental ones are much faster, of course. So it's not like we've all been doing 80 minute builds multiple times a day.

jeremy.king
Oct 19, 2005, 02:45 PM
I didn't realize how nice I have it.

Being a consultant, I have been sheilded (for the most part) from old/legacy platforms since I work almost solely in J2EE technologies. I am fortunate enough to work on engagments where I can use my own company provided laptop or a dedicated workstation. My current client has provided me with a p4 3GHz desktop with 1GB ram and a 19" monitor. Granted many of the apps I work on are "small" in comparison to those 80min build apps but I now realize it is nice to have my own machine that I can do what I want, within reason. My only beef is WSAD/RAD, but that whole a different story.

eric_n_dfw
Oct 19, 2005, 02:57 PM
I didn't realize how nice I have it.

Being a consultant, I have been sheilded (for the most part) from old/legacy platforms since I work almost solely in J2EE technologies. I am fortunate enough to work on engagments where I can use my own company provided laptop or a dedicated workstation. My current client has provided me with a p4 3GHz desktop with 1GB ram and a 19" monitor. Granted many of the apps I work on are "small" in comparison to those 80min build apps but I now realize it is nice to have my own machine that I can do what I want, within reason. My only beef is WSAD/RAD, but that whole a different story.
Hehe - our J2EE stuff is pretty much legacy too! Okay, it's not as old as our C stuff, but we're spending a lot of time refactoring "code gone wrong!"

Our stuff was mostly implemented before Struts was around so it's a home-grown MVC architecture where the lines between the M,V & C have gotten very blurry. :eek:

jeremy.king
Oct 19, 2005, 03:21 PM
Hehe - our J2EE stuff is pretty much legacy too! Okay, it's not as old as our C stuff, but we're spending a lot of time refactoring "code gone wrong!"

Our stuff was mostly implemented before Struts was around so it's a home-grown MVC architecture where the lines between the M,V & C have gotten very blurry. :eek:

Even now Struts is considered legacy :) Everyone and their brother is pimping Spring, of which, I have to really read up on.

eric_n_dfw
Oct 19, 2005, 03:36 PM
Even now Struts is considered legacy :) Everyone and their brother is pimping Spring, of which, I have to really read up on.
Yep - we've just implemented some Spring injection stuff but we're still moving to Struts with Velocity tiles as that combo works best for our refactoring/redesign efforts.

Spring is some pretty nice stuff - kind-of one of those, "why didn't someone think of this before" type things.