In: Computer Science
Xcode’s instruments suite of tools provides a wide range of introspection into the behavior and performance of your code. What other tools in other languages are you familiar with for profiling? Compare and contrast the features of the toolkits.
profiling ("program profiling", "software profiling") is a form of dynamic program analysis that measures, for example, the space (memory) or time complexity of a program, the usage of particular instructions, or the frequency and duration of function calls. Most commonly, profiling information serves to aid program optimization.
Profiling is achieved by instrumenting either the program source code or its binary executable form using a tool called a profiler (or code profiler). Profilers may use a number of different techniques, such as event-based, statistical, instrumented, and simulation methods.
The following tools work for multiple languages or binaries:-
AQtime: SmartBear’s Profiling Optimization Solution:-
AQtime is SmartBear’s award-winning performance profiling and memory and resource debugging toolset for Microsoft, Borland, Java, Intel, Compaq and GNU compilers. AQtime includes dozens of productivity tools that help users easily isolate and eliminate performance, memory and resource issues within their code.
AQtime is built with one key objective - to help users completely understand how their programs perform during execution. Using its integrated set of performance and debugging profilers, AQtime collects crucial performance and memory/resource allocation information at runtime. It then delivers its profilers’ results both in summarized and detailed forms. In short, AQtime provides you with all of the tools you need to begin the optimization process, and provides the following advantages:
Easy to Use Interface: Developers don’t need to learn complex shell commands or proprietary programming languages to profile code with AQtime
Easy to Understand Reports: Once a profiling session is complete, AQtime displays a summary report of its findings.
Support for a Multitude of Environments:- AQtime supports a wide range of Windows versions including Windows 98, ME, 2000, NT 4.0, XP, Windows 2003 Server and Vista. Additionally, AQtime supports 32 and 64-bit chipsets from both AMD and Intel.
Support for a Wide Array of Languages
AQtime can profile code written in a wide variety of languages, including:
GlowCode:-
GlowCode is used by software developers to analyze and optimize application performance, speed and resource use. GlowCode capabilities include detection of performance bottlenecks and memory leaks.
While the profiled application runs, GlowCode shows the duration, frequency and use of function calls, and identifies which functions play the most significant role in time-intensive tasks, which execution nodes are the source of multiple memory leaks, and which allocations are the source of excessive consumption of memory and resources. GlowCode also identifies problems specific to managed code, including boxing errors, and hyperactive and loitering objects.
GlowCode profiles:
Arm MAP:-
Arm MAP, is an application profiler produced by Allinea Software now part of Arm. of Warwick, United Kingdom, for profiling the performance of C, C++, Fortran 90 and Python software. It is widely used for its multithreaded and multiprocess capabilities such as profiling parallel Message Passing Interface (MPI) or OpenMP applications, including those running on clusters of Linux machines, and for scalar (sequential) code.
It is one of the first profilers able to both analyze and visually display the performance when running at high scales (including many thousands of cores). Arm MAP is also being used to examine applications that are preparing to scale to 1 ExaFLOP/s
The profiler uses adaptive sampling methods to identify process counters and activities and combines data from multiple processes that may be running on multiple compute server nodes. It analyzes performance and causes of bottlenecks including:
This enables developers to identify hotspots and areas of potential improvement.
The tool is scalable - and merges performance data using the scalable architecture first used in Arm DDT to debug Petascale (typically over 100,000 processes). Arm MAP shares a common user interface with Arm DDT which together makes the Arm Forge tool suite. This is widely used by research scientists and developers of parallel scientific applications.
The Arm MAP profiler is used on large supercomputers and also smaller clusters or workstations.
Dynatrace:-
Dynatrace is a software intelligence company providing application performance management (APM), artificial intelligence for operations (AIOps), cloud infrastructure monitoring, and digital experience management (DEM), with products for the information technology departments and digital business owners of medium and large businesses. The company's services include performance management software for programs running on-premises and in the cloud. This software manages the availability and performance of software applications and the impact on user experience in the form of deep transaction tracing, synthetic monitoring, real user monitoring, and network monitoring. The company separated from Compuware in December 2014 after being sold into private equity firm Thoma Bravo establishing it as a standalone company.
Offered services: