220 likes | 413 Views
Tips and Tricks – Quest JProbe Profiler. Goals of our Session. Review the features of JProbe and how industry leading companies leverage them Allow you an opportunity to ask questions regarding Quest JProbe Profiler Help improve your productivity . Profilers.
E N D
Goals of our Session • Review the features of JProbe and how industry leading companies leverage them • Allow you an opportunity to ask questions regarding Quest JProbe Profiler • Help improve your productivity
Profilers • Allow you to measure time associated with the execution of specific code paths • Profilers are not benchmark tools – the time is relative to other method calls • Identify expensive methods • Measure the improvement your changes have made You need to: • Determine use cases to test • When and how you plan to use a profiler
JProbe The market-leading Performance tuning toolkit for Java application code. Includes: • JProbe Profiler • JProbe Memory Debugger • JProbe Threadalyzer • JProbe Coverage
Tip 1: When and Where to Profile • After memory leaks have been found and removed (Use Quest JProbe Memory Debugger) • At set milestones in your project • As you develop code, and also on the target deployment operating system • You must have performance goals to measure against
Tip 2: Remote Profiling • Do you want to profile an application on a remote server? • Use JProbe’s remote profiling capabilities instead of terminal emulation software – better performance and stability and no extra cost. • Do you have NFS or Samba?
Tip 3: The Power of Filters • By limiting the data shown, you are focused on key issues much more quickly • Always start investigation at a method level and then perform line level on expensive method • Filter order is important – watch out for red lines • Filter settings affect the speed at which JProbe Profiler runs
Tip 4: Reducing time required to Profile • Set up filters to focus only on your code of interest – encapsulate trusted methods • Start with Method level for first investigation, then line level on only suspect methods • Tracking Object Allocation can be expensive, only select it when you need to investigate • J2EE Tip: start profiling after your J2EE container has started up
Tip 5: Settings for Success • How do you want to test: local, remote, overnight? • Filters are key – get them right • Triggers can allow for automation of collection process
Tip 6: The Value of the Heap Graph in JProbe Profiler • Determine if initial heap size is a performance drain • Identify possible memory leak situations or object cycling situations – if found, use Memory Debugger to analyze and remove these situations
Tip 7: What to do When Your Code is Not the Issue • If GUI related, maybe add code to inform the user that things are actually happening (ex. Progress bars) • Can you use an alternative call, substitute another algorithm or component. Maybe reduce the frequency of calls to a method? • Are you using the framework correctly?
Tip 8: Proving how Good You are! • Snapshot differencing allows you to compare the snapshot before and after your code changes. • Generate a report to prove to management that the changes you made had a net positive impact on Use Case in question. • In fact, you could use snapshot difference to measure performance impact of code changes throughout the project lifecycle – create a baseline report
Tip 9: Automating the Collection Process • Triggers are a powerful and underused capability. • Triggers can be initiated based on entry and exit of methods. You can automate the start of collection of data, generation of a snapshot file and clearing of the data already collected. • They can be used along with interactive profiling sessions to just start collecting data when you enter your code (ex. J2EE projects) • You can also generate snapshot files based on timed events
Tip 10: Don’t Spend Weekends in the Office • Identify key performance use cases and test during development, don’t wait for calls from production support team • Look at automating the collection of performance snapshot information in the evening to save your day time hours for investigation and coding
Tip 11: Collaborative Performance analysis • Many investigations involve more than one person. • Share the snapshot file with others to get their opinion • Your call graph pruning and isolations are saved with the call graph • You can share the interactive user interface (heap graph) between users
Tip 12: Profiling for Everyone • All developers can profile, but not all might be able to determine the best changes to make • JProbe concurrent licensing model allows for greater occasional use for reduced cost compared to per developer licensing models • Save your expert time for the really hard issues
JProbe The market-leading Performance tuning toolkit for Java application code. Includes: • JProbe Profiler • JProbe Memory Debugger • JProbe Threadalyzer • JProbe Coverage
Complete Lifecycle Coverage 24x7 application monitoring and management • Our solution covers all phases of the custom application lifecycle • Benefits: • Accelerated diagnosis and root-cause resolution for production problems • Application confidence from testing early, testing often to production management with an integrated toolset. Application-level code assurance Certify applications before deployment JProbe PerformaSure Foglight JClass • Design and architecture • Code optimizations • Code enhancements • Model application load behavior for performance and scalability • Certify for SLA’s • Baselining / trend analysis • Real-time event management • SLA measurement • Problem management
PerformaSure- J2EE Diagnostics • What transactions are slow? • Where are my transactions spending their time? • Web server, App Server, Database?? • What was my system behavior at a particular point in time? • What component is the root-cause of the problem? PerformaSure provides a correlated transaction-centric analysis of the application across the J2EE stack. Works in production and pre-production environments.
Time View: Identify Slowest Requests Identify which transactions are the slowest • Where are my transactions spending their time? • Web server • App Server • Database??
Tag and Follow Reconstruction of the true transaction execution path
Next Tips and Tricks – Quest JProbe Memory Debugger Friday January 30th, 2004 11:00 am PST, 2 PM EST Any Questions?