As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I want to analyze runtime behavior of the application with software profiling. As far as I know there are two basic types of profiling technique. First is Sample based profiling and second is Instrumentation. Can somebody please tell me which one should I use ? I want to analyze behavior of single (java) application and not behavior of one application with other. I am not concerned about the performance related issues like cpu cycle time, memory allocation etc. Please suggest some tools also which can help me.
I would really appreciate any help regarding this.
Thank you.
If you're interested in control flow, sampling is not appropriate (it's great for finding performance bottlenecks). Only instrumentation can provide data for control flow.
Recording method-level chronological data for an application will result in a huge amount of data unless you carefully define which classes should be instrumented.
JProfiler has a call tracer view that may be suitable for your purpose, also see this question.
Disclaimer: My company develops JProfiler.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Our current system is based on a Spring/Hibernate/Java/MySQL stack. We have a relationship with a company for which we will end up doing a portion of the IT work. They are currently building a system using an outside vendor which is based on PHP/MySQL. I would like to make an argument that they should reconsider and switch to a Java-centric platform. My main argument is that we can utilize our current (Java-based) skillset for system maintenance and enhancements, instead of having a system which requires knowledge of both PHP and Java. However, they have asked if there is any technical reason why this couldn't happen.
It would be great if I could bring some technical arguments to table which show the two platforms are incompatible. However, I've googled the differences, and as far as I can tell, there wouldn't be any particular technical issues. For example, we could use web services for the systems to communicate.
So, the question is, is there anything one could say about PHP which makes it either incompatible with or just not as "good" as Java? E.g security, scalability and other enterprise considerations? I know it's a vague question, but it would be very helpful to get some input.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
If you need to choose the language to write your integration tests, what language would you pick? (from the above, or maybe another language).
The requirements that I think the language should meet are at least the following: fast, reasonable IDE, easy to learn.
Thanks!
I'd say Groovy is probably the best choice.
It offers significant advantages over Java (closures, list/map literals, very compact implementation of mocks)
It's very easy to learn incrementally for anyone familiar with Java (Scala is much more different, and many also consider the language inherently more difficult)
Groovy is pretty well supported by IDE plugins by now
The speed of the language is almost certainly not going to matter for integration tests, as the system being tested will probably contain much larger overheads (especially if a database is involved)
However, if you're already using Scala elsewhere (especially in the system under test) and can assume youre developers to be familiar with it, Scala may be a better choice.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I thought that hibernate is the most used Java ORM, by far. Is its usage declining? If so, where are people migrating to?
You are looking at search trends, not usage trends
A lot of people know Hibernate sufficiently for their daily needs, so they don't search as much for it. I expect this to be the dominant effect. Compare it for example with log4j which declines as well but certainly is still heavily used (and no the decline can't be explained with slf4j) http://www.google.com/trends?q=log4j%2C+slf4j
As mentioned above a lot of people are talking (searching) JPA although they might use Hibernate as the implementation.
Some people realized that maybe the whole ORM thing is a bad idea ... but that probably doesn't show significantly in the search trends
My guess would be it's JPA (of which Hibernate is also a provider). Because of this alias (which wasn't available in 2005) the declining trend for Hibernate may be misleading: some of the growing JPA uses are backed by the "declining" Hibernate, offsetting or even reversing the decline.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
What are the main advantages (and disadvantages) of using of an Application Server, comparing to a standalone application? I'm interested in Java approach mainly.
With an application server, the developer should spend time writing business logic (which delivers added-value) rather than boilerplate infrastructure code (e.g. managing transactions, configuration, security, etc.). So to me, the main argument is that using an application server should boost the productivity.
Unfortunately, the learning curve until you can unleash this productivity boost is rather long. In the worse case, misusage of application server features can even result in a productivity loss.
Also a general problem with any approach that raise the abstraction level (same with MDA, etc.), is that when something goes wrong it's harder to understand how to fix or circumvent the problem. On the other hand, if you do everything yourself at a lower abstraction level, you know how to fix problem easily but you re-invent the wheel again and again.
This is a high-level view of the concept of application server. For details about technical features of Java EE application servers, refer to the Java EE documentation or the link in the 1st comment to your question.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am looking for a Dataflow / Concurrent Programming API for Java.
I know there's DataRush, but it's not free. What I'm interested in specifically is multicore data processing, and not distributed, which rules out MapReduce or Hadoop.
Any thoughts?
Thanks,
Rollo
You might try gpars; it apparently has implementations of data flow variables and streams in Java even though it is geared towards providing concurrent programming goodies for Groovy.
Might try the upcoming fork/join library which will (hopefully) be in Java 7 as part of the JSR 166y update.
Main project page:
- http://gee.cs.oswego.edu/dl/concurrency-interest/index.html
Pointers to lots of links about what it is:
- http://tech.puredanger.com/java7#jsr166
Does the built in Java concurrent package meet your needs? It's a very nice package, built in ThreadPools, CopyOnWriteCollections, Executors, Future. We use it to process large volumns of data in thread pools.
https://github.com/rfqu/df4j is simple but powerful dataflow library. If it lacks some desired features, they can be added easly. It can exploit java.concurrent.ExecutorService.