Performance Profiler
Stable Version 1.0 (OutSystems 8)
Published on 12 June 2014 by 
Created on 12 June 2014
Performance Profiler allows you to capture in-depth details of the performance of an Action, letting you find the exact places that need performance improvements.
Read More
Feature List
  • Allows precise, granular insight into performance.
  • Uses the .NET Stopwatch object to get high resolution ticks instead of the imprecise DateTime.Now() or OutSystems' CurrDateTime().

Main Benefits
  • It is much easier to make performance fixes when you know the exact causes of poor performance instead of wasting time guessing!
How To Use
  1. Make a call to GetNewProfileLog and set a local variable to the output.
  2. At the beginning of each step within the Action, call the Profile function, passing in a description of the step and "True" for "IsStart" and "False" for "IsEnd". Set the local variable to the output of this function.
  3. If a step has multiple sub-steps, you can call Profile with both IsStart and IsEnd to "False" to get a timestamp within the step, or you can call it with IsStart = True to get a sub-level of performance. You may nest "IsStart" as deep as you need to. Set the local variable to the output.
  4. At the end of the step, call Profile with IsStart = False and IsEnd = True. Set the local variable to the output.
  5. At the end of the Action itself, call RecordProfileLog and pass in the local variable, eSpaceId (I use GetOwnerEspaceIdentifier()), and optionally the TenantId and UserId. Also pass in a screen name and an ActionName, and any other details you wish.
  6. Publish and run!
The application (it uses the Users eSpace for authentication, feel free to change it!) will show a list of recorded profile logs. You can click on it to get details. Looking at the details will show you a nicely formatted, nested view of the individual steps and sub-steps that you profiled. The number displayed is the number of milliseconds since the previous entry.
Reviews (0)
Support Options
This component is not supported by OutSystems. You may use the discussion forums to leave suggestions or obtain best-effort support from the community, including from Conigent who created this component.
Performance Profiler has no dependencies.
Component Consumers
Performance Profiler has no consumers.
Weekly Downloads 
Related Components
Infrastructure Monitor
A LifeTime plugin to provide Developers and Operations a quick and simple infrastructure monitoring tool for the platform servers. It will help you keep your infrastructure in check by surfacing key performance metrics of your servers and alert you when these metrics reach thresholds that may compromise the performance or stability of your environments. Instructions here:
How To - Lazy load
Francisco Menezes
Learn how to handle heavy computation screens by quickly rendering the main content structure, while sub-content is progressively loaded 
Compressed Viewstate
Frederico Sousa
Monitoring the size of the viewstate is very important because the viewstate is sent to the server and client on every (ajax) request. This component calculates the size of the compressed viewstate of your page and displays the size of it. Just drag the widget to somewhere on your page, change the site property to true, and everytime you load your page you'll be able to quickly see on your screen the compressed viewstate size. In this new version the display of the size of the viewstate is automatically refreshed after every ajax request.
More from Conigent
Drag-n-drop Sortable List
Renato Pauleta
Allows to sort elements in list records or table records using drag-n-drop
Human Readable Change History
Nuno Mestre
Create human-readable audits by simply supplying the changed record(s). Example: Name changed from 'John' to 'Peter' Age defined to '32' Country changed from 'England' to Portugal' 
Social Network
Hélio Dolores
Social Network for OutSystems Environments