Parasoft Optimizes Dynamic Memory Allocation for Developers

Modern programming techniques require applications to dynamically allocate memory space or memory. But such dynamic allocation often carries a price. Applications engineered to dynamically allocate memory are complex and sometimes unwieldy or unstable. With the introduction of a standalone version of its Inuse product, Parasoft Corp. (Monrovia, Calif., hopes to provide a tool that aids in the development of code that dynamically allocates memory in an efficient manner.

Inuse is a graphical tool that can help developers avoid memory allocation problems by displaying and animating in real time the memory allocations performed by an application. Originally available as part of Parasoft’s Insure++ runtime error detection tool, the new standalone version can provide developers with information specific to how much memory an application uses, as well as the extent to which memory addresses are fragmented within an application. Parasoft says Inuse can also identify additional memory problems, such as blowout, overuse and bottlenecks.

Dynamic memory allocation is a problem because Microsoft Corp.’s APIs are inconsistent in the manner in which they provide for the dynamic allocation of code, says Norman Covington, a Los Angeles-based developer and president of his own software consulting firm, doubleM Software (Huntington Beach, Calif.). "If the coder is careful, [dynamic memory allocation efficiency] might not be an issue," he says. "But the problem is compounded because Microsoft has this type of issue [problematical dynamic memory allocation] in many of their APIs, such as the Data Access Objects API of their Jet Engine Database."

Consequently, the market for dynamic memory allocation optimization solutions is a rich one. Many developers come to rely on such tools to facilitate the development process.

In addition to Parasoft, code-tuning solutions are available for Windows NT from Compuware Numega Corp. (Nashua, N.H.,, publisher of Bounds Checker, and Rational Software Corp. (Cupertino, Calif.,, publisher of Purify for Windows NT. Both Bounds Checker and Purify for Windows NT claim to provide the same service that Inuse also purports to provide -- the tweaking or tuning of code to ensure efficient and robust dynamic allocation of memory space.

Although acknowledging the availability of similar solutions, Jim Clune, a programmer with the Inuse development team, says that Inuse is a utility designed by developers for developers. "We designed Inuse to give developers a precise, thorough, and easy way to optimize dynamic memory usage, " Clune explains.

Problematic APIs aside, Covington explains that programmers are bound to make mistakes because of the complexity of contemporary software development, regardless of how careful they are. Consequently, a tool such as Inuse can make a difference when optimizing an application for robust and stable memory allocation. "Checking dynamic memory allocation is important because, due to today's complexity of software, it is not difficult to leave a ‘dangling’ pointer [for example], which can cause run away memory usages," Covington explains.

Even though solutions already exist from both Compuware Numega and Rational Software, Covington believes Inuse will find a niche in the developer community. "A new product would be welcomed into the development arena because there’s plenty of room for healthy competition in this specific aspect of application testing," Covington contends.