Rational purifyplus for windows authorized user




















Maybe you recently ditched Purify for something else and are happier than before? It turned out that directly contacting the company and asking for a quotation finally led to a result. Future readers: UNICOM does not appear to attach great value to the smaller client audiences small business or single developers : There is a minimum number of licenses a customer is required to purchase.

Stack Overflow for Teams — Collaborate and share knowledge with a private group. Create a free Team What is Teams?

Collectives on Stack Overflow. Learn more. Rational PurifyPlus: where to buy? Any experience with alternatives? Ask Question. Asked 6 years, 1 month ago. Active 4 years, 9 months ago. Viewed 1k times. Attempts to gain information by using the company's contact form remained unanswered. You can choose to display more or less data as you proceed with your analysis.

Tip : You can also use Quantify's command line interface to incorporate it into your test scripts, makefiles, and batch files for automated testing. For instructions, look up scripts in the Quantify online Help index.

For more information, look up the following topics in the Quantify online Help index:. When you exit the program for which Quantify has been collecting data, it displays the Call Graph window, which graphically depicts the calling structure and performance of the functions, procedures, or methods collectively referred to here as functions in the program.

Quantify's results include virtually no overhead from the profiling process itself. The numbers you see are the time your program would take without Quantify. The call graph also highlights the most expensive path; thicker lines indicate more expensive paths. You can highlight other functions based on various criteria, including performance, calling relationships, and possible causes for bottlenecks. You can also show additional functions, hide functions, and move functions around to help with interpreting the call graph.

You can use Quantify's other data analysis windows for further examination of the program's performance. To review all functions in the current dataset, and to sort them by various criteria, use the Function List window. To display tabular and graphical data for a specific function, including data about its callers and descendants, use the Function Detail Window.

If debug data was available when you ran the program and you measured functions at line level, you can also use the Annotated Source window to analyze a specific function's performance line by line. This information can help you narrow the performance bottleneck down to an individual line of code Figure 9.

In Java and. NET managed code, it is not possible to make runtime memory errors such as out of bounds reads and writes and free memory reads and writes, because the automatic memory management in the runtime subsystem prevents developers from directly accessing allocated memory.

However, this automated memory management doesn't prevent programmers from forgetting references to the objects' allocated memory. As long as there is a reference to such dynamically allocated objects somewhere in the code, they will stay in memory and will not be cleaned by the automatic memory management garbage collector. By doing a runtime analysis with Purify, however, you can pinpoint the exact line of code where the reference to the object in question has been created Figure Figure Purify object and reference graph for a Java application.

Yet another way to leverage runtime analysis is by documenting the application's runtime behavior for future use. This helps you assess the overall quality of the project and measure the influence of newly introduced features and code changes on overall application performance, reliability, and test harness completeness.

This advanced way of practicing runtime analysis involves collecting runtime data for each iteration of the component or application under development and analyzing the data at different stages in the project lifecycle. This information can help in determining overall project quality as well as the effect of new feature additions and bug fixes on overall quality.

Advanced runtime analysis tools such as PurifyPlus provide features to analyze multiple test runs by, for example, allowing the user to merge code coverage data from various tests or test harnesses, or to create separate data sets for comparisons of consecutive iterations of test measurements, as shown in Figure In Figure 11, Quantify compares two data sets and highlights chains of calls where performance has improved green line and chains of calls where performance has dropped red line.

The calculated data is available in both the Call Graph view and in the more detailed Function List view. Even if you are not in a position to create an automated test environment, you can still automate data analysis by taking advantage of runtime analysis data saved as ASCII files. Figure 12 shows an example of a performance profile imported into Microsoft Excel. You can easily automate data analysis in Excel by creating simple Visual Basic applications, or with any of the popular scripting languages: Perl, WSH, JavaScript, and so on.

PurifyPlus for UNIX comes with a set of scripts that can help you manage and analyze data collected from various tests. Figure Quantify compare runs report. Figure Quantify performance report imported into Excel. These are the reasons that powerful runtime analysis tools like PurifyPlus were created. What is PurifyPlus?

PurifyPlus is a runtime analysis tool suite that monitors your program as it runs and reports on key aspects of its behavior: How much memory does it use? Does it leak memory? Does it contain memory access errors? How long does it take to run; where are the bottlenecks?

How much of the source code is actually running? The major components of PurifyPlus are: Purify for memory usage tracking and memory error detection Quantify for performance analysis, code flow, and thread visualization PureCoverage for source code coverage analysis Runtime analysis in the program development cycle Runtime analysis has a place during the interactive compile-edit-debug development cycle and also in the automated builds and tests that are a key part of any project's quality plan.

Basic PurifyPlus capabilities As noted above, PurifyPlus has three major components: Purify for memory analysis, Quantify for performance analysis, and PureCoverage for code coverage analysis. Advanced memory debugging: Locates the cause of memory corruption errors and provides detailed information, such as the error location function call stack and the size of the affected memory.

Memory leak protection: Improves memory utilization and speeds debugging time. Application performance profiling: Highlights application performance bottlenecks and improves application understanding with a graphical representation of function calls.

Code coverage analysis: Identifies untested code with line-level precision. Binary instrumentation technology: Allows integration with third-party libraries and does not require access to source code. Hover on an operating system to view system requirements. Examples of runtime analysis with PurifyPlus The major goals of debugging are to find the root cause of defects and understand application behavior. Runtime analysis provides additional capabilities that supplement traditional debugging: Visualization of application execution.

Measurement of vital runtime parameters, including memory usage, performance, and code coverage. Error detection in user code. Documentation of runtime behavior. As Figure 1 shows, the user can see code coverage and the execution path for this test case. Visualization example 2: Threads A runtime analysis tool such as Quantify included in PurifyPlus provides thread visualization, which can assist in detecting multithreading problems by marking the state of each of the threads while debugging.

Visualization example 3: Call graph Runtime analysis tools can also detect and display performance bottlenecks. Visualization example 4: Memory usage The first step in handling memory leaks is to detect them. For that purpose, runtime analysis should be based on exact measurements of parameters vital for the application's execution: Runtime performance Memory usage Code coverage Again, we will look at examples to understand this runtime analysis capability.



0コメント

  • 1000 / 1000