Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Build Your Own Java Performance Profiling Tool

ScuttleMonkey posted more than 8 years ago | from the cuppa-diy-goodness dept.

153

An anonymous reader writes "IBM DeveloperWorks has an interesting look at creating a custom profiler using Java 5 and AOP. From the article: 'Profiling is a technique for measuring where software programs consume resources, including CPU time and memory. This article provides a list of best-of-breed features you might look for in an ideal profiler and explains why aspect-oriented techniques are well suited to achieving some of those features. It also introduces you to the JDK 5.0 agent interface and walks you through the steps of using it to build your own aspect-oriented profiler.'"

cancel ×

153 comments

Vobrators (-1, Troll)

Anonymous Coward | more than 8 years ago | (#14918600)

Wil it run Dildo Technology for anal leakage

LOL at Java and Performance in the same title (-1, Flamebait)

Anonymous Coward | more than 8 years ago | (#14918612)


o_O

AspectJ (2, Interesting)

El_Muerte_TDS (592157) | more than 8 years ago | (#14918656)

Byte-code hacking!?
Why not simply use AspectJ?

Re:AspectJ (1)

ELProphet (909179) | more than 8 years ago | (#14918922)

To say you did it yourself, duh!

The things he mentions are fun to do, and for some projects they may be necessary, but the big thing seems to be "My profiler is more customized than yours!" As for byte-code hacking and other "Refliective" programming techniques, that's the all-mighty Heavenly Father's (ar at least Matz's) gift to Ruby.

Re:AspectJ (4, Interesting)

javaxman (705658) | more than 8 years ago | (#14918923)

Byte-code hacking!? Why not simply use AspectJ?

You could as easily ask "Why use AspectJ", couldn't you?

I mean... what you're trying to do in the case of profiling is _not_ change the actual byte code you're working on any more than neccessary. Is using the aspectj runtime somehow better than using the -javaagent JVM option? I'm going to guess here... not neccessarilly, unless you're using AspectJ anyway. If you're _not_ using AspectJ and are not familiar with all of the extra syntax that AspectJ introduces, it becomes very unclear that doing your profiling that way is really a good way to go.

How would you specifically do the same thing they're talking about in the article using AspectJ ? I'm asking as a Java programmer who has shied away from using AspectJ ( the reasons for using it to me have not become terribly compelling; I'm aware that some folks love it ). Is there an article somewhere that spells out how to do the same sort of thing using AspectJ or some other AOP system? Maybe that would be a helpful link, or make another good story.

Oh, please, that's EASY (-1, Flamebait)

Anonymous Coward | more than 8 years ago | (#14918678)

Making a Java performance profiling tool is easy: it's in Java, so the performance problem is every single line of code!

Seriously, the concept of trying to profile performance in a Java application is just ridiculous. It's like trying to tweak the frame of a sedan powered by a four-cylinder engine. No matter how much you try and cut down on wind resistance, the only way to get acceptable performance is to replace the engine.

No matter how much you try and optimize your Java code, the only way to get acceptable performance is to use a different engine - most likely, native code.

This annoys me greatly (1, Insightful)

Anonymous Coward | more than 8 years ago | (#14918710)

The only popular languages faster than Java are Assembly, C, C++, and Fortra. All of which take are enormously difficult to use for large scale projects.

Java's a speed demon compared to almost all other programming languages out there. So what if it's 1/5 (warning : 97% of statistics are made up on the spot...) the speed of Assembly?

If you're optimizing Java, you're sunk (0)

Anonymous Coward | more than 8 years ago | (#14918778)

If you're to the level where you're profiling code, you shouldn't be using Java, period. If you're at the point where you're trying to optimize Java code, you should be using native code.

But, if you want to know better alternatives to Java, there's always Python, Ruby, C#, or a host of other languages that don't have the massive memory problems or library bloat that Java has.

Re:If you're optimizing Java, you're sunk (0)

Anonymous Coward | more than 8 years ago | (#14918837)

Ruby and Python are so much slower than Java that it's retarded to suggest those two when the discussion is about achieving better performance.

Re:If you're optimizing Java, you're sunk (5, Informative)

HotBBQ (714130) | more than 8 years ago | (#14918850)

That's simply not true. I work on a large Java project that deals with a lot of matrix intensive work. Our Java code has been rigorously architected, engineered, and optimized. The matrix code in particular (where the majority of our processing time is spent) is far superior in Java than it was in C or C++. Every programming language has its place, use the one that suites your needs. Profiling most any code can reveal useful information.

Re:If you're optimizing Java, you're sunk (1)

throx (42621) | more than 8 years ago | (#14918911)

The matrix code in particular (where the majority of our processing time is spent) is far superior in Java than it was in C or C++.
If your code is targetted to a specific platform then all that says is your C/C++ coders were idiots. The only case where a jitted language exceeds a natively compiled language is where the JIT compiler can apply optimizations the native code compiler cannot for compatibility reasons (eg avoiding SSE3 when you might run on an older CPU).

There is no excuse for heavy math code such as matrix processing to be faster in Java than C/C++. In the absolute worst case, you can simply take the machine code generated from the Java JIT and reproduce better code in C/C++.

Re:If you're optimizing Java, you're sunk (1)

animaal (183055) | more than 8 years ago | (#14919066)

The only case where a jitted language exceeds a natively compiled language is...


Actually, the post to which you replied never said the Java solution was faster than a C++ implementation. He said it was "superior". True, it is a vague term, but for his organization, superior may mean "easier to maintain", "smaller codebase", "easier to use on other hardware platforms", or any other number of possibilities.

Re:If you're optimizing Java, you're sunk (1)

HotBBQ (714130) | more than 8 years ago | (#14919075)

Sorry , but no. The matrix library we use was written in C++. We used a Sun Blade 1000 system (SSE free) and the Sun compiler to run an extensive set of sample calculations. The code was ported in house to Java 1.5, making only minimal changes to make it Java compatible. The same sample calculations were performed using the Java library and were approximately 15% faster. We initially thought we had done something wrong, because we all assumed the C++ code would be faster. We verified, verfied again, and verified some more. A few changes were made but the Java code just got faster. Believe what you will, but in this case the Java was faster, and we had the metrics to prove it.

Re:If you're optimizing Java, you're sunk (1)

NialScorva (213763) | more than 8 years ago | (#14919343)

What matrix library were you using for C++? Was it hand-rolled, and if so was it faster than C++ matrix libraries like Blitz++?

Re:If you're optimizing Java, you're sunk (1)

HotBBQ (714130) | more than 8 years ago | (#14919590)

I forget the name of the C++ library and it's past 5 o'clock here so everyone has left. We have moved on to the Colt http://dsd.lbl.gov/~hoschek/colt/index.html [lbl.gov] matrix library.

Re:If you're optimizing Java, you're sunk (2, Informative)

Doc_NH (898298) | more than 8 years ago | (#14919304)

Ever heard of HotSpot? Java JVM does runtime optimization that C/C++ can't. No it doesn't happen in a two second bench test designed for C to prevail, but use in real life applications the JVM performance improves with longer runs. If you honestly look into it and realize that your "java is slow" mantra is a bit dated or is that a SlashDot fact that is not refutable?

Re:If you're optimizing Java, you're sunk (1)

angel'o'sphere (80593) | more than 8 years ago | (#14919677)


There is no excuse for heavy math code such as matrix processing to be faster in Java than C/C++. In the absolute worst case, you can simply take the machine code generated from the Java JIT and reproduce better code in C/C++.


Following your logic I rather would write: There is no excuse for heavy math code such as matrix processing to be faster in C/C++ than in Java. In the absolute worst case, you can simply take the machine code generated from the C/C++ compiler and reproduce better code with the Java JIT.

Bottom line: you have to admit that there is an "optimal" code for doing a certain matrix problem (general matrix is different from a diagonal one e.g.). It does absolutely not matter if that optimal code is generated by a C++ compiler or by a Java Jit.

For general purpose computing Java is as fast as C++, since 4 to 5 years. Even Doom clones and 3D engines are written in Java in our days .... get a clue, go with the time, stop repeating over half a decade old mythes.

angel'o'sphere

Re:If you're optimizing Java, you're sunk (1)

cecom (698048) | more than 8 years ago | (#14919925)

Sorry, but you are wrong. For some things Java can never be as fast as C/C++ due to the definition of the language itself - things like lack of value objects, specifics of method dispatching, late binding, etc.

I don't want to go into details here, but as a good example of Java's inefficiencies think about an array of complex numbers in Java and C/C++. Java is at least an order of magnitude slower in this particular example and no JIT can ever fix that unless the language itself is changed. If you don't believe me and you know C and Java you can even try it - write a small program performing a simple operation with the array - for example sum of the elements.

Admittedly matrix algorithms do not necessarily exhibit the problems I am talking about. However I sincerely doubt that the current generation of JAVA JITs do complex optimizations like loop reshaping, cache blocking, prefetching, etc.

Re:If you're optimizing Java, you're sunk (1)

Jekler (626699) | more than 8 years ago | (#14920485)

You are grossly misinformed about the inefficiencies of Java. It is extremely easy to examine two languages and design a 20-line test that shows that one is faster than the other.

This does not make Java "an order of magnitude slower...", a real test of requires two seperate developers, with roughly equal skill in their respective languages, given a general problem and the task of implementing a solution, then comparing the resulting applications.

Given those results, the first thing you'll note is that all the specific instances you previously cooked up (your "Fool's loop test") which proves Java is slower doesn't matter, because the Java-equivilant solution to an actual problem is entirely different. Everything about the structure of the code, where and when messages are sent, right down to the type and size of objects will be entirely different between languages.

Your test uses the assumption that in order to test Java's execution speed, the only necessary step is to take a program in C++ and translate the code, line for line, into Java syntax. The difference between programming languages is not in the syntax.

Your test is like redoing a physical structure by, beam for beam, replacing it with a different material. As any architect can tell you, the placement of the load-bearing beams will need to be dramatically altered depending on the material you use. If you take the design for a timber home and instead use concrete, the whole thing will cave in. Does this mean that concrete is weaker than timber? But yet, if you take a timber plank and slam it into a concrete wall it'll splinter into pieces. Wow, what a bizarre phenomenon!! It's as if, under different circumstances, each material has varying levels of suitability.

Your test is as ridiculous as arbitrarily declaring a search engine superior based on the results of a single keyword. "I'll prove Yahoo is the best! If you search for 'chicken', Yahoo returns better results! Therefore Yahoo is superior to Google!"

Re:If you're optimizing Java, you're sunk (2, Interesting)

cecom (698048) | more than 8 years ago | (#14920809)

I shouldn't really be replying, since you already said that all the specific instances which prove Java is slower don't matter - how could I argue with that ? However I would like to benefit from your obvious knowledge of the matter.

Also, please note that I didn't say "C/C++ is best", which you seem to be implying in your last paragraph - I was commenting in the context of the thread about Java vs C/C++ performance for matrix computations. I don't care about language wars, because obviously everyone who disagrees with me is wrong ... :-)

I have seen many claims about Java's performance, ranging from reasonable to absurd and ridiculous. For example:

  • Java is as fast or faster than C for everything
  • Java is as fast or faster than C for everything that Java is normally used for
  • Java is slower but fast enough for most things
  • Java's performance doesn't matter because everything is IO and network bound anyway
  • etc

I would love to share my opinion on these subjects some other time, but for this post they are irrelevant.

So, getting back to the subject. Obviously you agree that for the scenario I am describing, Java is slower than C. You contend that this results from "translating line by line from C into Java syntax". OK, enlighten me then. What is the Java-specific solution for keeping complex numbers in an array ? You can go wild - use any Java tool and technology. This is not an artifical scenario. The same problem exists for arrays of 2D or 3D coordinates, actually arrays of anything except primitive types, so if you present a solution I will be very grateful and even offer to buy you a beer ot two (or a dozen!).

Re:If you're optimizing Java, you're sunk (1)

throx (42621) | more than 8 years ago | (#14920640)

Following your logic I rather would write: There is no excuse for heavy math code such as matrix processing to be faster in C/C++ than in Java. In the absolute worst case, you can simply take the machine code generated from the C/C++ compiler and reproduce better code with the Java JIT.
No, you can't. The language restrictions of Java are far more significant than the language restrictions in C. For example, you cannot perform unchecked array access in Java on arbitrary memory. In a very real sense, Java's performance on a given platform has an upper bound at C's performance.

Bottom line: you have to admit that there is an "optimal" code for doing a certain matrix problem (general matrix is different from a diagonal one e.g.). It does absolutely not matter if that optimal code is generated by a C++ compiler or by a Java Jit.
There is definitely optimal code, and I am saying that that code will not be able to be produced by a Java JIT compiler because the structure of the java language is unable to deal with it as efficiently as the structure (or absence of structure) that the C language has.

The Java code will probably be more maintainable and less error-prone, but to suggest that it will outperform optimized C code is patently ridiculous.

For general purpose computing Java is as fast as C++, since 4 to 5 years. Even Doom clones and 3D engines are written in Java in our days .... get a clue, go with the time, stop repeating over half a decade old mythes.
Java is not as fast as C/C++. It's simply a function of the language. In optimized cases, the speed difference may not be great but Java does have performance penalties defined by the language (garbage collection, checked array access, etc.) that are simply not present in C. You might write a Doom clone, but you sure won't write a F.E.A.R. clone. Take your binders off and realize that the tradeoff for the manageability and elegance of Java is some speed. It's no myth - it's a raw fact.

However, if you still choose to disbelieve me, please post the Java source code you believe will outperform optimized C/C++ code. I'd be fascinated to test it out.

Re:If you're optimizing Java, you're sunk (2, Insightful)

andrewwilcox (961166) | more than 8 years ago | (#14918881)

You're implying that there are languages (other than Java) that don't ever require profiling which is simply rediculous.

Re:If you're optimizing Java, you're sunk (0)

Anonymous Coward | more than 8 years ago | (#14919396)

But, if you want to know better alternatives to Java, there's always Python, Ruby, C#, or a host of other languages that don't have the massive memory problems or library bloat that Java has.

HahAhhaHAHAHahAhAhA "Python", "Ruby", they are primitive if compared to JVM. BTW, how old are you? 13?

Re:This annoys me greatly (-1, Flamebait)

TheNetAvenger (624455) | more than 8 years ago | (#14918798)

Java's a speed demon compared to almost all other programming languages out there

Really, have you even used any other development tool? Oh like Pascal, or other soapbox technologies other than Java?

Look at it this way the .NET framework has a managed code 'sandbox' comparable to Java. Microsoft uses this in DirectX9.0c, which is where performance would be VERY important as it impacts all applications and games that use DirectX. And so far 9.0c of DirectX took about a .009% hit for moving a lot of code structure to .NET from the previous version of DirectX, or it could be just the new features of DirectX.

Either way, can you see anyone ever writing a library or API technology in JAVA, let alone an application that doesnt run like syrup on a cold day?

I would rather write in C with no libraries and a monkey chewing on both of my arms than have to program in JAVA. Sure you can drop out some applications and code quickly, not as quick as other things, but quickly. The problem and times comes when you try to TRULY achieve cross-platform, and the killer, reasonable performance.

JAVA is over 10years old, and yet on P4 3.4ghz computers, you have to performance optimize even simple appliations to run reasonably well. Who in the heck thinks this is normal?

Sorry to dog on your response, but the poster with the car analogy is pretty accurate, only I don't think replacing the engine in the Sedan wouldn't be enough to help JAVA. It is such the poster child a of a good idea gone bad, and a good idea with horrible developers when it comes to implementation and performance. It is the current dark spot on Sun. (pun intented)

Re:This annoys me greatly (2, Insightful)

vectorian798 (792613) | more than 8 years ago | (#14918916)

While I do agree that for the most speed-intensive programs you need C, it isn't as bad as you seem to make it seem either. In many common algorithm tests, a JIT compiled Java program runs just as fast as its C equivalent. Also, the fact that Java is 'over 10 years old' is irrelevant, because C is over 30 years old. The fact remains that while a low-level is required for very intensive programs, in many applications the fastest program is not a necessity. This is often the case when you need to write a program where the database is a much larger bottleneck. Many companies use Java for speed-to-solution, and in this parameter Java easily outdoes C.

Also, your mention of DirectX having .NET wrappers is irrelevant. You can use DirectX with unmanaged code as well, it is just that it has wrappers available so that if you wanted to use it with C# or VB.NET, you can. It was NOT re-written in C# internally or anything like that, because that WOULD deliver a fair performance hit.

Anyways, I feel every programming language has its place somewhere. To say that one language is worse than another one in every aspect is more likely to be false than true since its an absolute statement.

Re:This annoys me greatly (0)

Anonymous Coward | more than 8 years ago | (#14919104)

In many common algorithm tests, a JIT compiled Java program runs just as fast as its C equivalent.

I keep on hearing this, but I've never seen it. Got any links to things that aren't something stupid like for (int i = 0; i < 100000; i++) { }? The only examples I've ever seen of a JIT compiled Java program being able to come anywhere close to a C program are the most stupid and contrived examples. (And, when you actually compare them, you'll note that the C program did it in the same time, using 32KB, while the Java program did it using a meager 10MB.)

I've played around with everyone's favorite "Java doesn't have to suck" example, Eclipse, and - it sucks! It's slower than native apps, it suffers the same random freezes people blame on Swing, and it's a giant resource hog.

I've never seen a Java program come anywhere close to a C program. Do you have any actual links?

Re:This annoys me greatly (1)

Doc_NH (898298) | more than 8 years ago | (#14919419)

I've played around with everyone's favorite "Java doesn't have to suck" example, Eclipse, and - it sucks! It's slower than native apps, it suffers the same random freezes people blame on Swing, and it's a giant resource hog.

That is amazing since it it is build SWT, but I am sure that in your opinion the the pure suck value of swing being in the JRE would slow eclipse down.

Re:This annoys me greatly (1)

TheNetAvenger (624455) | more than 8 years ago | (#14920579)

You can use DirectX with unmanaged code as well, it is just that it has wrappers available so that if you wanted to use it with C# or VB.NET, you can. It was NOT re-written in C# internally or anything like that, because that WOULD deliver a fair performance hit.

No, not all of it was rewritten in managed code, but there are performance level areas that were moved to managed code for stability and security.

Go check out channel9, and see the DirectX team talk about the decision to move parts to managed .NET code (which does not mean it was written in C#, .NET is language independant, even creating managed code).

They talk about the security and stability reasons and the concerns for the performance trade off by moving to managed .NET code.

The were happy to realize that performance was not a significant issue.

Please don't take my word for this, or anyone else's go look this information up yourself...

Re:This annoys me greatly (1)

HotBBQ (714130) | more than 8 years ago | (#14918931)

Either way, can you see anyone ever writing a library or API technology in JAVA
Yes and yes.

Re:This annoys me greatly (1)

TheNetAvenger (624455) | more than 8 years ago | (#14920609)

Yes and yes.

I will buy its viability after another 10 years of hype, and when they can show the industry companies like ATI or NVidia using JAVA for video driver library performance level coding.

They already use .NET managed code in parts of their drivers on Windows, I don't see JAVA performing that role or hitting that level of performance.

I could be wrong, but I was an early JAVA lover, and even stuck with them when they cut of their nose to spite their face with the MS lawsuit, but to date Sun has not provided what JAVA was promised to be back in 1995, not EVEN close. I am tired of waiting on them, when other technologies are emerging with the same 'cool' factors and are already more mature.

In a way I hope I am wrong, but I don't ever see JAVA being credible, they lost their window.

Re:This annoys me greatly (0)

Anonymous Coward | more than 8 years ago | (#14920889)

but to date Sun has not provided what JAVA was promised to be back in 1995

Correct me if I'm wrong but I recall a promise about an environment where I could program in Linux and run on Windows. I'm but a Java beginner but still think that I'm in my place to say that if you can't get this promise working you really have to put the blame somewhere else.

As for the games (I knew it, thats what bothered you; you didn't find the cool games to play!) just look a Java Website [java.com]

Sorry but this response is IMO silly. It only describes your failing of not being open to the way in which Java was heading. You could see the Java bus drive into another lane, honking its horns and flashing it lights yet you stay at your same station waiting for it to arrive.

Now a whole new station has been build before you and you can once again see the big bad Java bus drive in and here you are again just waiting for the thing to change itself to your expectations, not even noticing that it has already surpased a lot of those promises a long time ago.

Re:This annoys me greatly (0)

Anonymous Coward | more than 8 years ago | (#14918953)

I'm glad you have decided to stay out of my market. I'll make the money writing Java apps. You can keep feeding your monkeys. :)

Re:This annoys me greatly (2, Insightful)

ultranova (717540) | more than 8 years ago | (#14918976)

Either way, can you see anyone ever writing a library or API technology in JAVA, let alone an application that doesnt run like syrup on a cold day?

Yes. Batik [apache.org] , for example, is written in Java. Admittedly, it is much slower than Inkview [inkscape.org] in starting up and opening a file, or opening another file once started, but on the other hand, it supports filters (which inkview doesn't) and clips properly at image edge (inkview doesn't), and supports scripts and other niceties.

JAVA is over 10years old, and yet on P4 3.4ghz computers, you have to performance optimize even simple appliations to run reasonably well. Who in the heck thinks this is normal?

X86 assembly has been around since 1978, and even on a P4 3.5GHz computer you have to optimize to run well. I guess that means that assembly equals bad performance. It couldn't possibly be because "simple application" nowadays means something different than 10 years ago.

Not to say that Java is neccessarily a fast language, but saying that "you have to optimize to get good performance" is true for any programming language.

Re:This annoys me greatly (1)

TheNetAvenger (624455) | more than 8 years ago | (#14920634)

X86 assembly has been around since 1978, and even on a P4 3.5GHz computer you have to optimize to run well. I guess that means that assembly equals bad performance. It couldn't possibly be because "simple application" nowadays means something different than 10 years ago

You even know this is a bad excuse...

Optimization is always something EVERY developer should be doing. However, there is no way to 'override' some of the inherent performance issues present in JAVA currently.

And no it has nothing to do with simple applications. I can write an XAML .NET application doing 3D animations on a non GPU accelerated computer, and write a few lines of code very quickly, and present a fully functionaly appliation with stunning visual effects and abilities current desktop software marvels at, and sadly it performs better than JAVA by a factor of 5, and this is beta software and development tools and beta technologies, but are already more mature.

Sad....

Re:This annoys me greatly (0)

Anonymous Coward | more than 8 years ago | (#14919042)

it's fine, learn to code.

A generalized profiler is just what I need now! (1, Insightful)

Anonymous Coward | more than 8 years ago | (#14919074)

The idea of being easily able to measure where a program is using resources appeals to me. It might settle a few arguments around here.

Programming in C with a monkey chewing on your arm. I see students doing that all the time. They struggle for hours to write code that they could do in minutes with a higher level language. They look like they are having about as much fun as if they had a monkey chewing on their arm for sure. Usually, for what they are doing, speed of execution is irrelevant.

I often hear C programmers insist that they can be as productive as someone writing in a higher level language. They say it's just that the people writing in the higher level language never learned to program properly. Actually they're right about that one. Many people who get paid to write in higher level languages aren't really good programmers but that doesn't prove anything about the innate goodness of the languages in question.

We have gotten to the point where being able to write at a low level isn't as advantageous as it used to be. For instance, it used to be possible to write key elements of code (for DSPs in my case) in assembler. With modern tools, that advantage has evaporated. Trying to code by hand often creates much slower code. (Actually in this case, C is the higher level language.)

My own preference for a higher level language is Python. The large majority of the time, there is absolutely no useful benefit that I could get by writing in C.

Anyway, your comment about programming in C with a monkey chewing on your arm, reminded me a lot of an ongoing argument with the people who teach programming around here. The students do need C because they do a lot of embedded stuff, but the rabidity of some of the C folks does seem a bit overboard. Sorry if you got caught in the crossfire.;-)

Re:A generalized profiler is just what I need now! (1)

TheNetAvenger (624455) | more than 8 years ago | (#14920705)

Programming in C with a monkey chewing on your arm. I see students doing that all the time. They struggle for hours to write code that they could do in minutes with a higher level language. They look like they are having about as much fun as if they had a monkey chewing on their arm for sure. Usually, for what they are doing, speed of execution is irrelevant.


This not something we disagree on, whatsoever... In fact my past post supporting higher level languages and help from IDEs have not been received so well.

I think there is a balance, programmers can't be fully dependant on a good language and an IDE that does everything for you, as they never get the 'creative' element a lot of times, as things are done for them, instead of them having to 'figure them out', as us old time coders had to struggle with, but also gives us the creative edge. When we had to create our own way for something to happen in C or C++, that gave us the understanding and sparked our creative elements.

However I am all for the higher level language technologies and ease of use from IDEs. Why not let the language and the IDE do a lot of the work, when they can do it with performance or reused concepts, and are smart, considering the processing power we utilize today, then why not use it?

Just because I know how to drop to a low level language or hand code button coordinates for a form, doesn't mean I should have to with current development technologies. The IDEs should be smart and do a LOT of the work for us, and the languages we choose can also be high level and do a lot of the work for us. Even Delphi Pascal, VB, C# are good examples of this, Pascal not only provides speed, but memory clean up that non-existent in many C forms.

So with that all said, I DO NOT thing JAVA is a good example of a high level language or a good solution. Why use JAVA when I can just as easily code in numerous other languages and IDE environments that do all I described above for me, and yet get near C/Assembly level of performance. Why should we suffer SUCH a performance and 'stability' and 'consistency' hit by using JAVA.

If JAVA was 'fast', more stable, and truly platform independant, I would be here championing JAVA. I was an early fan, but SUN Never delivered. It doesn't do any of the original design goals. Heck I could even eat some of the performance hit if it did run reliably across multiple OSes, and it just doesn't at least not yet, and will be probably be too late before it matures to the level needed and these other tools are already filling in the needs.

Take Care,
TheNetAvenger

Re:This annoys me greatly (0, Troll)

rubycodez (864176) | more than 8 years ago | (#14918910)

there's plenty of other heavily used languages that have compilers that barf out machine code and that'll whoop your resource pig Java: LISP, COBOL, RPG/400, FORTH, and ADA to name a few.

Re:This annoys me greatly (1)

hunterkll (949515) | more than 8 years ago | (#14919630)

This was a funny, not a troll.... Who uses such ANCIENT and USELESS languages anyway! :D

Re:This annoys me greatly (1)

rubycodez (864176) | more than 8 years ago | (#14919697)

your bank and credit card company

Re:This annoys me greatly (1)

ari_j (90255) | more than 8 years ago | (#14919794)

The Orbitz backend makes extensive use of Lisp.

Java startup annoys me greatly (1)

metamatic (202216) | more than 8 years ago | (#14919274)

Java's a speed demon compared to almost all other programming languages out there.

Depends what you mean by "speed". For example, compare how long it takes to fire up ANT, compared to Ruby's Rant. Both are build tools offering roughly equivalent functionality.

Results:

$ time ant
Buildfile: build.xml does not exist!
Build failed

real 0m1.233s
user 0m0.188s
sys 0m0.043s
$ time rant
rant: [ERROR] No Rantfile found, looking for:
Rantfile, rantfile, root.rant
rant aborted!

real 0m1.071s
user 0m0.089s
sys 0m0.015s

Ruby's an interpreted language, and it's one of the slowest in its class. (Slower than Python or Perl). It's loading in all the libraries as source code and interpreting them. Yet it still wipes the floor with Java at speed of startup. And that's before you actually start building anything--the first time I used Rant, it was so much faster than ANT that I thought I must have done something wrong.

Try launching a major Java GUI application, and you can profile the application startup speed with a manual stopwatch. Try launching a J2EE setup, and compare it with starting up Ruby on Rails.

Java isn't going to lose its well-deserved reputation for slowness until some major work is done on startup speeds.

(And yes, I'm using Java 1.5.0.)

Re:Java startup annoys me greatly (1)

moro_666 (414422) | more than 8 years ago | (#14919724)

nobody will ever optimize java for your specific needs.

java right now is fast where it's supposed to be, in large serverside applications running in multiple threads and having a stable platform all around it. if you've got 50 threads up and running , all doing various sort of fast i/o and depending heavily on automatic garbage collection, java sweeps the place clean. python is dead, perl doesn't even have proper threads (ithreads are not really that much of "thread" ...), ruby with 50 threads ? right ....

and you are comparing this to a 5 liner scripting language .... doh

starting an entire platform is a lot more than reading a dummy script.

i could aswell claim that a damn ruby/python/perl thing sadly dies if it goes over 100 threads all fighting over db connection pools and managing a shared memory of 1gb ... these things aren't even comparable so why do you bother ?

Re:Java startup annoys me greatly (1)

metamatic (202216) | more than 8 years ago | (#14920649)

So if Java I/O is so fast and it's a compiled language, why does it take an order of magnitude longer to start up than any other language runtime except Smalltalk or C#? What could it possibly be doing that other language runtimes don't have to do?

And I'm not just talking about 5 liner scripts. I mentioned Rails, which does database persistence, XML, and the other web application things a J2EE environment does--and starts up 10x faster than any J2EE setup I've seen.

Sure, Java threading is good. The point is, you don't necessarily need 50 threads in Ruby, because you can afford to start more than 1 process.

So am I to take it you're admitting that Java is totally unsuited to desktop applications and the embedded applications it was supposedly designed for? Isn't that rather a sad reflection on the language?

(I'm coming at this from the perspective of someone who would like to be able to write useful desktop and mobile code in something other than the crappy languages I'm stuck with at the moment. Java's slothfulness at starting up means it isn't a very good option, and I'd like to see that change. Saying "La la la there is no problem because I run everything on the server" isn't really a very helpful response.)

Re:Java startup annoys me greatly (1)

Phil John (576633) | more than 8 years ago | (#14920835)

The reason it takes so long to startup is because you have the overhead of:

  • Loading the JVM
  • Reading and Verifying the ByteCode of the classes to be loaded
  • Running a JIT compile cycle to get your optimised machine code
  • Starting execution.

All of that takes time, that's why it takes so long. Ruby on the other hand has the overhead of:
  • Loading the interpreter
  • Opening a ruby script

After that it simply follows the instructions in the script...slowly (by comparison, but not in the grand scheme of things).

It's a given that startup times can be a bit on the long side for Java apps, however, how many times do you start an IDE in a given day? How many times does that J2EE app have to start (if the programmers knew what they were doing not very often).

Being a slow starter does then mean you don't want to write a console app that munges some data quickly and then exits...that's just silly...use perl/c/whatever instead. For large apps that are started infrequently, it's not so clear cut.

As for ruby in an enterprise app, it may start faster but which one serves request faster and which one scales better? I think you'll find it's a well configure J2EE stack.

Re:Java startup annoys me greatly (1)

angel'o'sphere (80593) | more than 8 years ago | (#14919844)

If you compare ant and rant in that way, then you compare two programs, not to languages or language environments.

Guess what ant is doing all the tiem while it is using your CPU? It loads an XML parser, it loads an XML Schema (likely via the internet) and it laods some ant taks and finaly it wants to open a file that is not existing ...

Sure, for your little benchmark it would be much better to open the file first and abort early ...

Rule number one in meassuring and benchmarking: get a clue what you measure.

angel'o'sphere

Re:Java startup annoys me greatly (1)

metamatic (202216) | more than 8 years ago | (#14920567)

So ANT is badly designed, that doesn't discount the point. I also mentioned J2EE environments vs Rails, and you'll get the same Java speed problems if you try "Hello World". Face it, Java startup is goddamn slow [debian.org] , and trying to deny it doesn't make the problem go away.

Re:Java startup annoys me greatly (0)

Anonymous Coward | more than 8 years ago | (#14921006)

It loads an XML parser, it loads an XML Schema (likely via the internet) and it laods some ant taks and finaly it wants to open a file that is not existing ...

WTF?! No it doesn't. ANT's build scripting is schema-less - in fact, it can't be defined by a schema, because you can define new XML elements via the <taskdef> command.

Plus, in his example, ANT isn't loading ANYTHING. It's going far enough to ask the Java I/O library if "build.xml" exists and that's it. Because it doesn't, it never loads the XML parser, and never loads the stuff that makes an empty ANT script take a good second on a modern P4 to do absolutely nothing.

(Seriously, time <?xml version="1.0"?> <project/> and see how long it takes.)

If you really want proof of just how slow Java is, run ant -projecthelp on an ANT script, and time that. It takes it over two seconds to display the project help on a 9KB ANT script on my machine, a 3200+ AMD K7. Keep in mind that when it displays the project help, it doesn't even bother parsing the inner XML, just the <target> elements!

A simple time ant gives me 0.692s on my system - keeping in mind that this is AFTER I've already caused the JVM to be loaded by the ant -projecthelp!

The Java startup time is, simply put, INCREDIBLY slow. When you start loading anything complicated, the massive number of classes that get loaded slows things down even further.

As a comparison, running a Perl script that does nothing takes 0.027s on my machine.

Re:Oh, please, that's EASY (3, Insightful)

Aspirator (862748) | more than 8 years ago | (#14918801)

That is pure Flamebait.

Java is a language which benefits more than most from performance profiling, in that
it is very easy to write inefficient code, because the mapping from code to actual
execution is not always very clear.

This is a strength, and a weakness. The degree of abstraction from the underlying
machine is high. This results in quite intelligible code, and an ease of coding complex
and abstract tasks. It also results in it being quite possible to write apparently
simple looking code which ends up executing in a very complex way.

Profiling will expose the gross inefficiencies, and allow them to be corrected.

It will never be possible to write as efficiently (execution time), as
in a more direct language, but the coding efficiency (programming time) is quite good,
and for a lot of applications that matters a lot more. It also has a lot of
cross platform capabilities (not perfect I concede).

I prefer writing code where I can see the bits and bytes (i.e. not Java), but
to put down Java in such an off hand way is unjustified.

JVMPI (1)

iMaple (769378) | more than 8 years ago | (#14918700)

I use the JVMPI by sun which IMHO does a pretty good job and is extremely easy to use. However the custom profiler looks easy enough and will probably be much more accurate. Worth a try for sure.

My Java Profiler Written in C (-1, Flamebait)

Dante Shamest (813622) | more than 8 years ago | (#14918714)

It's surprisingly accurate for all the Java programs I've tested it on.
#include <stdio.h>
int main() {
printf( "Slooooooowwww..." );
printf( "Memory usage...HIGH!!!" );
return 0 ;
}
I'm just kidding. Put down your guns Java fanbois.

Re:My Java Profiler Written in C (1, Funny)

Anonymous Coward | more than 8 years ago | (#14918833)

i wrote one like that for C, it goes like th#@$(JAWDj12309iDAW--

--shit, sorry, must have trashed a pointer somewhere. hang on, this'll just take a minute...

;)

Re:My Java Profiler Written in C (1)

Dante Shamest (813622) | more than 8 years ago | (#14918897)

Judging by your l33t skillz, even if you'd written in Java, all you'd get would be
java.lang.NullPointerException
.

Re:My Java Profiler Written in C (1, Insightful)

Anonymous Coward | more than 8 years ago | (#14918946)

silent memory corruption or npe w/stack trace, take your pick.

Quick! Name a successful Java program. (0)

Anonymous Coward | more than 8 years ago | (#14919077)

Nope. I can't think of one either.

Re:Quick! Name a successful Java program. (0)

Anonymous Coward | more than 8 years ago | (#14919192)

How about walmart.com?

Re:Quick! Name a successful Java program. (4, Informative)

Anonymous Coward | more than 8 years ago | (#14919353)

"Quick! Name a successful Java program. Nope. I can't think of one either."

Gmail. It uses Java for almost all of its back end. In fact almost all of Google's large scale web applications use Java in some form. Python is also used extensively however, it's generally used for simple scripts and smaller applications. Tons of websites use Java extensively and people like you are just too dumb to realize it. If you do online banking it's almost guaranteed that the website is using server side Java.

In terms of client side applications there's; Azureus, LimeWire, Eclipse, Netbeans, Intellij IDEA, Yahoo Site Builder, ZipCreator, Summit Groupware, jEdit, SmartCVS, NeoOffice etc. etc. Just because you don't use them doesn't mean that they're not there. The truth is that most people only use a very select few programs and these programs are often using code bases that are over 10 years old (ie. Microsoft Office, Outlook, Internet Explorer etc.). Then there's all the enterprise applications that are written in Java.... In the enterprise world Java is dominant and the only real competitor is .NET.

Re:Quick! Name a successful Java program. (0)

Anonymous Coward | more than 8 years ago | (#14920934)

I love when people try and use server applications to prove that Java is useful. Yeah, when you can throw as much server hardware as you need at a problem, you can get Java to work. But just because Java works when you shove enough server power under it doesn't quite make it a lean, agile platform. There are successful web applications written in Visual Basic, after all.

In terms of client side applications there's; Azureus, LimeWire, Eclipse, Netbeans, Intellij IDEA, Yahoo Site Builder, ZipCreator, Summit Groupware, jEdit, SmartCVS, NeoOffice etc. etc.

Let's see, Azureus, which is well known for massive CPU and RAM usage, LimeWire, which as I recall is slow and buggy, Eclispe, which is slow and flakey, Netbeans, which flat-out sucks...

It's interesting you should mention jEdit. You might want to read the developer's blog [jroller.com] where he explains why Java sucks ass, and why he'll never touch Java ever again.

The simple reality is that Java isn't used for anything useful, or any place where a simpler language couldn't have been used to create a faster, more scalable, dynamic solution. The people claiming otherwise are deluding themselves.

Why? (-1, Flamebait)

Anonymous Coward | more than 8 years ago | (#14918728)

Why are we still discussing Java? Didn't it die a long time ago? Unless we're talking legacy systems, Java shouldn't even be brought up anymore. I know it's hard to accept death, but we all have to face the facts. Java no longer has developer mindshare and it still faces the same problems it had in the 1990s, namely slow startup and runaway CPU/memory usage. Just let it die with dignity already.

Re:Why? (0)

Anonymous Coward | more than 8 years ago | (#14918832)

If it died a long time ago, why am I still getting paid well to code in it?

Re:Why? (0)

Anonymous Coward | more than 8 years ago | (#14918861)

Maybe because there is no other cross-platform language with decent graphics support and comprehensive libraries?

Re:Why? (0)

Anonymous Coward | more than 8 years ago | (#14918971)

O [perl.com] R [python.org] L [mono-project.com] Y [www.tcl.tk] ?

Re:Why? (0)

Anonymous Coward | more than 8 years ago | (#14919091)

Other than Mono, none of those even remotely compares to Java and there's numerous reasons why to use Java over Mono. I love it when the topic is performance and people suggest Python/Ruby/Perl etc., it just shows that they're completely clueless. For most real world *paid* developers the choice is between .NET and Java, each having their respective strong points.

The most portable paradigm ... (0)

Anonymous Coward | more than 8 years ago | (#14919326)

./configure
make
make install

Re:Why? (0)

Anonymous Coward | more than 8 years ago | (#14919445)

I said language.

perl - illegitimate offspring of bash and grep.

python - perl for people who hold their little fingers up when they drink tea.

mono - I had that as a teenager

tcl - heh heh

Re:Why? (5, Funny)

animaal (183055) | more than 8 years ago | (#14919011)

I agree totally. Java is dead. We just have to get the message through to the huge numbers of organizations and developers who depend on the technology to get their jobs done. Oh, and then we have to come up with something better to replace it. Give me a little while... ;)

Re:Why? (0)

Zebra_X (13249) | more than 8 years ago | (#14920109)

Oh wait, do you mean .NET? :-) And while you are downloading the "free" IDE, you can also pick up one of several [red-gate.com]
visual [microsoft.com] code [amberpoint.com] profilers out there.

Current Economic Status of Prussia (-1, Offtopic)

Anonymous Coward | more than 8 years ago | (#14918751)

I want to finger bang BANG you into my life!

Re:Current Economic Status of Prussia (0)

Anonymous Coward | more than 8 years ago | (#14918794)

And girl, you know that you're the only girl for me, girl
Girl, you're the girl of my fantasies, you're my girl
You're my girl, my girl.

Obligatory (1, Funny)

Bastard of Subhumani (827601) | more than 8 years ago | (#14918797)

Coming up later: high performance tuning tips for Citroen 2CV owners.

Yeah... (-1, Offtopic)

Anonymous Coward | more than 8 years ago | (#14918800)

Should have used http://www.myspacegrill.com/ [myspacegrill.com] to pimp your myspace.

jrat - Already does everything you need. (4, Informative)

tezza (539307) | more than 8 years ago | (#14918847)

Forget this article AOP Build Your Own. By the time you finish reading the article you could have used jrat [sourceforge.net] .

Download jrat here [sourceforge.net]

I've used it many times, and it's helped me find horrible Hibernate queries, Lucene bottlenecks, Batik rendering pipeline issues. It is fantastic.

jrat already does MOST everything you need. (1)

JohnQPublic (158027) | more than 8 years ago | (#14918927)

Sure, JRat is interesting, but I like the DeveloperWorks article's idea of taking the *exact* bytecode you'll be running and instrumenting it. Now if I can just figure out how to shoehorn it into Tomcat ...

Re:jrat already does MOST everything you need. (1)

kevlar (13509) | more than 8 years ago | (#14920848)

Now if I can just figure out how to shoehorn it into Tomcat ...

You can instantiate tomcat yourself, which means you have full control over the loading of the libraries. Just create your own classloader and inject your instructions as they're read from the JAR.

Re:jrat - Already does everything you need. (2, Informative)

andrewwilcox (961166) | more than 8 years ago | (#14918944)

The article is more than just how to build an AO profiler -- it's about how to use the Java 5 agent interface to create AO-based solutions. As for jrat -- the big different between JIP (which is discussed in the article) and JRat is that JIP instruments your code at runtime rather than requiring a separate step.

Glad to see SOMEONE takes performance seriously (1)

wsanders (114993) | more than 8 years ago | (#14918905)

I've worked on quite a few contracts where I was part of a massive 3 ring circus to collect Java metrics, so we could make pie charts for PHBs to show their PHBs. Of course the coders with half a brain already knew where their bottlenecks were. Glad to see all my efforts are being taken so seriously.

Object oriented languages?! (-1, Troll)

Anonymous Coward | more than 8 years ago | (#14918932)

Pffffft!!!

C++ is for people too stupid to use function pointers.
The OSS community should work to keep software development out of the hands of stupid people who write bloatware and bring it back into the hands of the elite.

HP is your friend (1)

nbvb (32836) | more than 8 years ago | (#14918941)

Re:HP is your friend (2, Informative)

andrewwilcox (961166) | more than 8 years ago | (#14919025)

These two tools aren't profilers, there anaylsis tools. hpjmeter uses the output generated by hprof (the profiler that ships with the JDK) and the other tool you mentioned analyzes the garbage collection log. The problem with traditional tools like hprof is that 1: they require native components and 2: they don't let you turn the profiler on and off at runtime and 3: they profile everything -- even things that you as a developer can't change.

Seriously (-1, Flamebait)

Anonymous Coward | more than 8 years ago | (#14918957)

I wish they would quit monkeying around with Java and just make a java to native binary compiler that supported a static definition of Java and supported AWT and SWING completely.

A poratable Java program that ran fast and was easy to distribute.

Is that too much to ask?

Re:Seriously (0)

Anonymous Coward | more than 8 years ago | (#14919087)

"java to native binary" and "portable"

what are you smoking?

Er, Why is this in IT? (2, Interesting)

W. Justice Black (11445) | more than 8 years ago | (#14918970)

Seriously. Modifying a program to profile it?

I'd do that, but I'm a hybrid java developer/IT d00d. Most IT folk I know wouldn't touch a profiler with a 10-foot pole, much less write one and semi-build it into an app. This is a programming topic, not an IT one.

Re:Er, Why is this in IT? (2, Insightful)

Heembo (916647) | more than 8 years ago | (#14919196)

Yea, most corporate slug programmers dont even know how to run a profiler, let alone actually understand the output. Thats why you hire fools like me at 200$/hr or more to run profilers and find your damn bugs for you!

you really need more than hprof ? (2, Interesting)

javaxman (705658) | more than 8 years ago | (#14918989)

I know I'm setting myself up, but... do you really have profiling needs that aren't met by hprof ?

Using hprof and decent unit testing, you can work out where your problems are, I've found. All of this bytecode hacking and AOP stuff might show how l33t you are, but I'm not convinced it's really *needed*. Just my humble, uninformed opinion, of course, I'm very willing to hear from others. It could be that I'm just not working on sufficiently complex systems, or that I'm spending more time writing unit tests and pouring through hprof results than most folks.

Re:you really need more than hprof ? (2, Interesting)

JohnQPublic (158027) | more than 8 years ago | (#14919052)

I've tried to use hprof on complex systems, and it just isn't up to the task. Try throwing a system that has a few hundred threads, a couple of databases, and a servlet container at it. hprof quickly loses track of what's going on and stops recording long before my first servlet gets control.

Re:you really need more than hprof ? (2, Interesting)

javaxman (705658) | more than 8 years ago | (#14919145)

I've tried to use hprof on complex systems, and it just isn't up to the task. Try throwing a system that has a few hundred threads, a couple of databases, and a servlet container at it. hprof quickly loses track of what's going on and stops recording long before my first servlet gets control.

Thanks, that was exactly the sort of post I was looking for.

So, to continue the discussion... do you think the approach outlined in the article would be usable or appropriate for the system you just described ? How might that compare to the AOP approach others have suggested ?

It's interesting that hprof simply stops recording... any theories as to why that would happen? What causes it to lose track of the application state ? Does it have some hard ( or soft ) limit as to how much it can record ?

Re:you really need more than hprof ? (5, Informative)

andrewwilcox (961166) | more than 8 years ago | (#14919095)

As was noted in the article, hprof has a number of short falls:
  • It is slow. If you've spent any amount of time using hprof, then you know what I'm talking about!
  • You can't start and stop it at runtime. If you've ever tried to profile a web application with hprof, you know what I'm talking about!
  • Filtering. hprof profiles everything and so it's slow and that output is expansive. When I'm profiling code, I want to know how my code is performing, not how some third party library is performing.

I like hprof -- it's helped me out more times that I can say, but it also has some short comings, which is why I developed JIP

For filtering, I've also got another option (1)

fizbin (2046) | more than 8 years ago | (#14920790)

This perl script [perlmonks.org] . (Or google for "wherehot.pl")

It's a relatively simple script I wrote a while back to filter hprof textual output. It tells you things like "which of the code inside com.foo.* is being slow"? And "which of the code inside com.foo.* is causing StringBufffer.expandCapacity to be invoked, and thereby being slow?".

A further enhancement of it (that I haven't posted yet, sorry) changes the output format to look something like a java stack trace, which means you can take the output of that script, copy and paste it into eclipse's Java Stack Trace console, and be able to click on the lines identified as being slow.

We've found it to be a nice complement to graphical tools that let you visualize what bits are slow, like HPJmeter.

Re:you really need more than hprof ? (1)

slamb (119285) | more than 8 years ago | (#14920791)

[hprof] is slow. If you've spent any amount of time using hprof, then you know what I'm talking about!

That's true for the timing mode. The sampling mode is zippy. For most stuff that I do, it's good enough. It's generally pretty obvious which are blocking calls and which are actually using the CPU. Monitor contention can be a bit confusing sometimes, though - a relatively simple operation will have many, many samples because it's waiting on a monitor held by something more complex. This is good to show you that it's an important problem, but it doesn't make it obvious where to go to fix it.

I tend to use this configuration:

export JVM_PRE_ARGS="-agentlib:hprof=cpu=samples,interval =10,depth=5"

...and I sometimes change the "5" as necessary. There's also a heap allocation mode that I haven't played with much, and something that shows you each monitor acquisition and deacquisition (which I think is too much information).

You can't start and stop it at runtime. If you've ever tried to profile a web application with hprof, you know what I'm talking about!

Yeah, but with the sampling mode, I find I can just leave it on all the time on my development system.

Filtering. hprof profiles everything and so it's slow and that output is expansive. When I'm profiling code, I want to know how my code is performing, not how some third party library is performing.

Why? I want to know if I should patch or replace a third-party library. I care about the performance of the whole system, not just the code I wrote.

Re:you really need more than hprof ? (1)

linuxhansl (764171) | more than 8 years ago | (#14920886)

You can't start and stop it at runtime. If you've ever tried to profile a web application with hprof, you know what I'm talking about!

This is a common problem with badly designed software. Software should be designed so that all parts can be unittested - and hence profiled - independently. Not only will such a design facilitate better and easier testing, it also makes the code more readable, extendable, and reusable.

"not responding" checker? Anyone? (1)

maillemaker (924053) | more than 8 years ago | (#14919144)

I'm looking for an application that will monitor a specified application and log how long the application is "not responding".

We use CAD (Computer Aided Design) software, and I would like to justify new hardware by being able to say how much less time we would have to spend waiting on the software if we had faster computers.

If I had a way to measure how often the cursor was an hourglass in our CAD software during the course of a standard workweek and then benchmark this on a new computer I could have a metric that I could use for justification.

Anyone know about anything like this?

Steve

Re:"not responding" checker? Anyone? (1)

Billly Gates (198444) | more than 8 years ago | (#14919725)

You need a real unix like solaris for this feature and not linux.

Although I heard linux has limited support for profiling these days I dont know how good it is for monitoring regular applications in userspace.

sorry, Windows based... (1)

maillemaker (924053) | more than 8 years ago | (#14920415)

Sorry, we are on Windows. They don't even write a *nix version of this software. Anyone know of a not-responding process monitoring app for Windows? Steve

Re:sorry, Windows based... (1)

Billly Gates (198444) | more than 8 years ago | (#14920606)

Let me guess"? Autocad?

Its a shame the cad market is going to windows from unix. Its certainly no unix and the vendors drank the NT coolaid from all teh hype in the 90's.

And they're off! Like a herd of turtles! (-1, Flamebait)

stanwirth (621074) | more than 8 years ago | (#14919330)

Optimizing Java is about as absurd as racing sailboats -- elegant, yes, beautiful code, yes but...

puleeze! You pick the slowest form of transportation available and then... have a race?

...and spend millions of dollars in the process? Couldn't you just walk down the street in the rain, rubbing your tummy, patting yourself on the head and uh, stopping every five minutes to hop on one foot around in a circle while ripping up hundred dollar bills?

here's my profiler (3, Funny)

cygnus (17101) | more than 8 years ago | (#14919332)

public class HomegrownProfiler {
public static void main(String[] args) {
while (true) {
System.out.println("Some people say this'll never be quite as fast as hand-tuned C.");
}
}
}

Re:here's my profiler (1)

coshx (687751) | more than 8 years ago | (#14920255)

% Some people say this'll never be quite as fast as hand-tuned C.
% Some people say this'll never be quite as fast as hand-tuned C.
*snip*

Well, I think it really depends on whether you downloaded the hand-tuned C as a pre-build binary or compiled it yourself...

best-of-breed (3, Funny)

teneighty (671401) | more than 8 years ago | (#14919992)

Never use the word "best-of-breed" again. Or else.

Re:best-of-breed (0)

Anonymous Coward | more than 8 years ago | (#14920181)

This paradigm is a quantum leap for leading edge enablers. It's an enterprise-class, state-of-the-art construct in this solution space. I suggest you recontextualize your core competencies.

java is crap (0, Troll)

AlgorithMan (937244) | more than 8 years ago | (#14921120)

if this profiler is written in java (likely) it is as slow as the crap it's supposed to analyze...
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...