Profiling your code can help you deliver a better quality product to your customers. Learn how to do it easily in the Progress Developer Studio for OpenEdge.
How many times have you heard from your customer that your application is responding slowly? How many hours have you spent tracking the whole issue? What if we can find these performance issues during the development phase? Imagine the number of hours saved and not hearing those disgruntled customers.
With OpenEdge 11.6, you can use the ABL Profiler within Progress Developer Studio to profile your code and find any performance issues. So, let’s talk about exactly what Profiling is and what the ABL Profiler provides for you.
In short, we can define profiling as “the process of systematically examining program execution times to learn the bottlenecks.”
Using Profiler, we can profile a particular execution flow or a particular module. A profiler generally provides timing information and call-tree information. With that, an engineer can analyze where their program is spending most of its time and what part of the application is calling what other part of the application. The main intention of profiling is to find any performance issues and to optimize the code.
An ABL Profiler has long existed through which you can profile the ABL code. What was missing was tighter integration with the Progress Developer Studio for OpenEdge (PDS OE), which most ABL developers use for their coding.
ABL Profiler is now integrated with Progress Developer Studio for OpenEdge. Users can now profile the code from within Developer Studio and can view the profiled data with a viewer in a very impressive format.
The PDS OE Profiler helps you by:
A new tab called “Profiler” was introduced in Run Configurations. Once you are done with coding, if you want to profile your application, all you need to do is to launch “Run Configurations” and run the application by choosing the “Enable profiling” check box. This will generate a .prof file which will be opened in the “Profiler Viewer” as soon the execution of the ABL program is done. This profiler viewer is a multi-tabbed viewer which displays the profiled data.
The first tab in the view “Module Details” will provide high level information on the execution time of the modules along with the details on number of times they were called, the average time and the line summary. Also there are details on Calling and Called modules for each module.
Now that we have information on the modules that consume higher time, the next step is look at the hierarchy of the whole Call tree execution and the execution path taken by your application. This is what will be provided in the next tab, “Call Tree.” This tab will display the order of the calls along with other information to evaluate the calls that take more time. The information in the “Call Tree” tab is only available when the User selects the “Enable Tracing” option from Run Configurations.
The third tab is “AVM Information” tab. It hosts the session and the database related information.
In short, the ABL Profiler from PDS OE will help you detect performance and scalability issues early in the cycle, will provide complete details on the code that’s causing the issues, thus making it easy to fix the problem. Just as with fully integrated unit testing, when we find performance issues during coding and fix them, we will in fact be delivering better quality products to our customers.
Ramadevi is a Sr. Engineer at Progress. She has experience with different Progress products and has been working with Progress Developer Studio for OpenEdge (PDS OE) for the last 5 years. She has strong knowledge of PDS OE, hands-on experience with REST development, web technologies and WebSpeed and Kendo UI integrations.
Subscribe to get all the news, info and tutorials you need to build better business apps and sites
Copyright © 2019 Progress Software Corporation and/or its subsidiaries or affiliates.All Rights Reserved.
Progress, Telerik, Ipswitch, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.