What Is Dynamic Analysis?
Code debugging can be a time-consuming process — especially in high-performance computing (HPC) environments. That's why developers use dynamic analysis to deliver safe, robust applications.
What Is Dynamic Analysis?
Dynamic analysis is the process of testing and evaluating a program — while software is running. Also referred to as dynamic code scanning, dynamic analysis improves the diagnosis and correction of bugs, memory issues, and crashes of an application during its execution.
The alternative is static code analysis, which occurs offline or before executing the code.
Back to topWhat Is Dynamic Code Analysis?
Back to topDynamic code analysis is the process of testing and evaluating code — while software is running. Dynamic code analysis can be used interchangeably with dynamic analysis.
Why Is Dynamic Analysis Needed?
In HPC environments, supercomputers are running complex applications built from different programming languages, platforms, and technologies with thousands of threads and processes at the same time. Just examining the code alone for problems is not enough to identify and isolate faulty issues and performance problems that will show up during execution.
Developers are under tremendous pressure to deliver clean applications faster. Dynamic code analysis tools can help them achieve this with easy debugging of running threads and processes. Dynamic analysis tools also help illuminate performance problems and memory usage issues and memory leaks. Dynamic analysis testing will indicate whether an application works well; conversely, it will reveal errors indicating that an application doesn’t work as intended.
Back to topDynamic Code Analysis in Action
See how TotalView works as a dynamic code analysis tool. Begin a free trial to test it out yourself!
Why Dynamic Code Analysis Tools Are Important
Dynamic code analysis tools simplify the process of understanding how your complex application runs in order to troubleshoot problems, isolating memory and performance issues, and debug your live application. They allow you to analyze and identify potential issues that arise during the actual execution of the application and impact the reliability of the application.
Dynamic analysis tools often are built to focus on one specific task and developers of complex applications need to research if the tools are up to the demands that complex applications will place on them. More robust tools are built for complex applications utilizing advanced technologies such as GPUs and many threads and processes to accomplish their task. Some can even handle applications constructed with multiple.
The best dynamic code analysis tools and robust enough for complex applications and are easy to use within the development environments. They offer an easy-to-use graphical user interface (GUI) that makes it easy to control examine the information gathered and presented during a dynamic analysis of the application.
Back to topWhy Choose TotalView for Your Dynamic Analysis Tool?
Running an HPC environment? There are a variety of dynamic analysis tools to help you analyze and improve your application but when it comes to debugging, TotalView is the de facto standard for run-time analysis and debugging of complex applications. It is a source code debugger for understanding how your multithreaded and multiprocess application runs and troubleshooting complex programs.
TotalView's easy-to-use GUI gives developers the tools they need to easily understand the state of their processes and threads and powerful features to control execution in order to analyze execution logic and data. TotalView provides developers the tools they need to dynamically analyze code running on CPUs and GPUs, examine the data their program generates, and understand the program's use of the heap memory and if any leaks are generated.
Developers utilizing Python with their C++ applications can easily understand the execution flow between languages and analyze the data used by either language. TotalView provides the advanced dynamic analysis capabilities for developers to understand how their complex applications are running and the data their generating.
TotalView is built for:
- Multicore and parallel computing on C, C++, Fortran, and Python.
- NVIDIA GPUs and CUDA.
- Mixed-language Python and C/C++ applications.
- Linux, UNIX, and macOS platforms.