Automated Testing, Analysis, Performance and Monitoring Solutions 

  Home Products Services Download Purchase Support About Us
 
Enterprise Server
Requirements Manager
License Manager
Test Manager
Issues/Defects Manager
Test Studio
Load Tester
Functional Tester for Windows
Functional Tester for Web
DevTest4J
Java Code Analyzer
Java Unit Tester
Java/J2EE Profiler
PDF Data Sheet
Overview
Key Features
Screenshots
Online Demos
Tutorials
Documentation
FAQs
Agentless Monitor
Monitor Server
 

Resources:
Tutorials
Online Demos
Discussion Forum
 

AppPerfect Java/J2EE Profiler > FAQs

  1. What are the various kinds of profiling supported by AP JP?
  2. What kinds of applications can be profiled using AP JP?
  3. What is remote profiling ? When should it be used?
  4. What versions of the JDK are supported?
  5. What is Dynamic Instrumentation?
  6. How should I diagnose memory/heap problems?
  7. How should I diagnose performance/CPU problems?
  8. How do I detect memory leaks in my application?
  9. The profiler is slow. How do I speed it up?
  10. My app server is not listed as supported. Can I still use AP JP to profiler my app server?
  11. Why do I need to specify my application's source code location?
  12. What is a Heap SnapShot? How should I use it?
  13. What is a "thread monitor"? How should I use monitor data?
  14. How should I use the Garbage Collection information?
  15. How can I profile a JVM running in a production environment?
  16. What are the differences between AP Pro vs. AP Std as far as the Java Profiler is concerned?
  17. I'm getting an error again and again. I've tried everything, but I'm stuck. What should I do?

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:
1. JVM Heap/Memory Profiling: Analyze the memory usage of your JVM (called Heap memory)
2. JVM CPU/Performance Profiling: Analyze how much time your application takes to execute
3. Thread Profiling: Analyze how the various threads created in your application interact with each other and impact your application

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:
1. Your target application is large (typically running inside an app servers) and your local machine does not have necessary system resource
2. Your target application must run in an OS different than the your current OS where AP JP is installed

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:

  1. Heap Snapshot: 
  2. Scenarios:

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:

  1. Move your target application to a remote machine and profile remotely
  2. Specify class filters to classes you profiler rather than profiling all classes in your system
  3. Increase the screen refresh interval from default 1 second to 10 or more seconds
  4. Make sure you are using Dynamic Instrumentation rather than JVMPI
  5. Increase your system resources (more memory, etc.)

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?

  • Close the currently opened project if it is open. Stop and close the application if it is running.
  • Go to Tools ->Options-> Log Settings. Make sure the settings selected for all the products is: Debug (not Fatal).
  • Open the project. Perform the operations that are giving you the error. The moment you get the error, stop all operations and send us the following files:
    1. All files present in <DevTest_Home>\logs folder.
    2. Project file i.e. *.adt file of that project.
    3. Build number of the application. (Help->About AppPerfect...)
 

© 2002- 2007 AppPerfect Corporation
AppPerfect is a trademark of AppPerfect Corporation.
Terms of Use | Privacy Statement