Tracking down an elusive memory leak
Project: NERC (New En Route Centre) is a major new Air Traffic System
for National Air Traffic Services in Hampshire, England. NERC provides
en route air traffic control for all aircraft in UK airspace: a system
that demands the utmost in reliability and response time.
Problem: NERC purchased a commercial X server to support its
workstations. But its performance seemed sluggish. The X-server vendor
blamed the center's in-house applications for poor code. Caught in a
classic finger-pointing scenario, the developers needed to pinpoint the
actual cause of the slowdown.
Solution: NERC's developers
used Aprobe to verify how well the X server was operating. Their probes
quickly revealed that the X server was spending 90 per cent of its time
in an inefficient buffer allocate and de-allocate routine. Further
probes showed that the buffers maintained by the vendor's X server were
OC Systems consultants wrote probes
to replace the vendor's faulty buffer routine with a much cleaner one.
CPU usage went down dramatically: the problem was fixed. NERC supplied
the X-server vendor with indisputable evidence of the problem and the
code to fix it. The vendor was able to repair the problem and
incorporate the fix into their next build.
NERC's developers left the probes in their system to fix the problem
until they installed the new X server. Aprobe helped them move beyond
finger pointing to identifying and resolving the actual problem. Without
access to source code, they were able to track down and fix a serious
issue in a piece of commercial off-the-shelf software.