![]() |
Automated Testing, Analysis, Performance and Monitoring Solutions |
| Home | Products | Services | Download | Purchase | Support | About Us |
|
AppPerfect Java/J2EE Profiler > FAQs
What are the various kinds of profiling supported by AP JP?AP JP provides the most comprehensive profiling solution available on the
market today. With one single tool, you can do the following: What kinds of applications can be profiled using AP JP?The following types of applications can be profiled using AP JP: Desktop/Local applications, Server/J2EE/EJB applications, Server/Web/JSP/Servlet applications and Web Applets What is remote profiling? When should it be used?Remote profiling is normally referred to the configuration where the AP JP
is running on one machine while the target application being profiled is
running on a different machine. The target application may be a desktop or a
server application. AP JP connects to your remote application via a port to
get necessary profiling data. Remote profiling is usually used in following
situations: What versions of the JDK are supported?AP JP supports JDK 1.3.1 and higher on Windows/Linux/Solaris/MacOS X. JDK 1.5 and higher is supported using JVMTI. JDK 1.3.x and JDK 1.4.x are supported using JVMPI. Dynamic Instrumentation is supported for all JDK versions. What is Dynamic Instrumentation?Dynamic Instrumentation (DI) is a process by which AP JP intercepts your classes as they are being loaded into the JVM, adds certain byte-code to support profiling the class, and then passes the class onto the JVM for loading. This process significantly improves application speed (brings it closer to actual application speed) and reduces memory usage since less data is collected. How should I diagnose memory/heap problems?Memory/heap problems generally manifest themselves in overusage of memory leading to either slow execution or even application termination due to running out of memory. Start by understanding how much memory various classes of your application take. Click on the various views under the "Memory" node of AP JP to view the data. Narrow your focus to the class or classes causing the problem. Once that is done, solution will vary from explicitly calling the destroy method of the class, to using an alternate class, etc. How should I diagnose performance/CPU problems?Performance/CPU problems generally manifest themselves in overusage of CPU or slow execution time. Start by understanding how much time various aspects of your application take (startup, modules, actions). Narrow your focus to the precise action causing the problem. Once this is done, look at data under the CPU node to isolate the actual class/method. Once that is done, solution will vary depending on your code. How do I detect memory leaks in my application?Memory leak typically refers to the JVM allocating memory for some object, and then failing to recover the memory after the class instance is destroyed. There are two ways to detect memory leaks:
The profiler is slow. How do I speed it up?AP JP performance is directly related to the amount of data it needs to process and the system resources available to it. If you are finding AP JP to be inordinately slow, here are a few things to try:
My app server is not listed as supported. Can I still use AP JP to profiler my app server?AP JP provides support for a number of popular Java app servers (WebLogic, WebSphere, Tomcat, JBoss, etc.) out of the box. However, if your app server is not listed, you can still use AP JP to profile your app server. When defining your server project, simply select "Others" as the app server name. You will be provided with instructions on how to modify your app server's startup file to enable profiling. Then use AP JP as your normally would. Why do I need to specify my application's source code location?Specify application source location is option in AP JP. If source location is specified, AP JP can trace back profiling data back to the actual source code line. What is a Heap SnapShot? How should I use it?A Heap Snapshot is a complete dump of the state of the JVM heap at a given point in time. You must manually trigger a heap snapshot. Depending on the size of the heap, this could be a time-consuming process. However, a heap snapshot problems very possible detail about your application's memory usage, including every reference in and out of every instance of every class in memory. Heap snapshots are almost always required to find memory leaks. What is a "thread monitor"? How should I use monitor data?Any system resource that is accessed by more than one thread is called a monitor. Said differently, a monitor is a shared resource. If you find a monitor with a large number of contentions, that may indicate performance problems. How should I use the Garbage Collection information?Understanding GC behavior helps you predict and control your application behavior. For example, if you are experiencing frequent GC calls, you should try to increase heap size. On the other hand, if GC calls are infrequent, but when they happen, it takes a very long time, you should try to reduce the heap size. JDK 1.4 and higher support various GC behavior. Make sure you use the right options for your application. How can I profile a JVM running in a production environment?AP JP supports profiling a JVM running a production environment. Profiling is typically a resource intensive task that impacts application performance. This is usually not acceptable in production environments. Further, shutting and re-starting of the JVM is also not possible. AP JP supports dynamically attaching to the JVM for profiling. Once profiling is over, AP JP will detach itself from the profiled JVM. Please refer to product documentation for more details. What are the differences between AP Pro vs. AP Std as far as the Java Profiler is concerned?Please visit AppPerfect to view the table of differences between the two versions. I'm getting an error again and again. I've tried everything, but I'm stuck. What should I do?
|
|
|
© 2002- 2007 AppPerfect Corporation |