Abstract

Software metrics typically are used to determine the complexity of code, the cost of software development, the effort required to develop software, or the probability of software errors. As programs increase in size and complexity, more of the limited CPU resource is consumed during compilation. In an effort to reduce the overall time for compilation of large (in excess of 1,000,000 lines of code) embedded Ada programs, a distributed Ada compilation system implemented on a network of computers has been developed. Tests of this system, using small to medium size (1,000 to 50,000 lines of code) Ada programs, have shown various levels of performance improvement over sequential compiles. The level of improvement, however, has not been consistent. At times, when the system is executing multiple concurrent compiles, there is a significant loss of efficiency. There has been relatively little work done on compilation time metrics [1,2]; and even less work done on distributed compilation time metrics which could be used to predict these major reductions in compilation performance.Our research presents two models for predicting compilation time for large Ada programs in a distributed environment. The first model involves the application of several standard metrics (lines of code, data structures, i/o intensity) and some non-standard metrics for compilation time. The weaknesses discovered in this model for a distributed environment are discussed. The second model combines some standard metrics with a scheduling algorithm to both predict distributed compilation time and determine an allocation of packages among distributed processors to optimize compilation time.We present tests of both of these models using modified PIWG Z tests. Compilation time predictions from these models are also shown for larger programs. Problems with an approach based on compilation time efficiency and recommendations for continued research in compilation metrics are discussed.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call