Skip to main content

Conflicts and Trade-Offs between Software Performance and Maintainability

  • Chapter
  • First Online:
Performance Engineering (WOSP 2000, GWPESD 2000)

Abstract

This chapter presents experiences from five large performance-demanding industrial applications. Performance and maintainability are two prioritized qualities in all of these systems. We have identified a number of conflicts between performance and maintainability. We have also identified three major techniques for handling these conflicts. (1) By defining guidelines for obtaining acceptable performance without seriously degrading maintainability. (2) By developing implementation techniques that guarantee acceptable performance for programs that are designed for maximum maintainability. (3) By using modern execution platforms that guarantee acceptable performance without sacrificing the maintainability aspect. We conclude that the relevant performance question is not only if the system meets its performance requirements using a certain software design on a certain platform. An equally interesting question is if the system can be made more maintainable by changing the software architecture and compensating this with modern hardware and/or optimized resource allocation algorithms and techniques.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Addison-Wesley (1998)

    Google Scholar 

  2. Berger, E.D., Blumofe, R.D.: Hoard: A Fast Scalable, and Memory Efficient Allocator for Shared Memory Multiprocessors. http://www.hoard.org (site visited December 21 2000)

  3. Boehm, B., In, H.: Identifying Quality-Requirement Conflicts. IEEE Software, March (1996)

    Google Scholar 

  4. Diestelkamp, W., Lundberg, L.: Performance Evaluation of a Generic Database System. International Journal of Computers and Their Applications, ISSN 1076-5204, September, 7(2000)3

    Google Scholar 

  5. Gamma, E., Helm, R., Johnsson, R., Vilssides: Design Patterns. Addison-Wesley (1997)

    Google Scholar 

  6. Gloger, W.: ptmalloc homepage. http://www.malloc.de/en/index.html (site visited December 21 2000)

  7. Haggander, D., Lundberg, L.: Optimizing Dynamic Memory Management in a Multi-threaded Application Executing on a Multiprocessor. In: Proceedings of the 27th International Conference on Parallel Processing, Minneapolis, USA, August (1998)

    Google Scholar 

  8. Haggander, D., Lundberg, L.: Memory Allocation Prevented Telecommunication Application to be Parallelized for Better Database Utilization. In: Proceedings of the 6th International Australasian Conference on Parallel and Real-Time Systems, Melbourne Australia, November (1999)

    Google Scholar 

  9. Haggander, D., Bengtsson, P.O., Bosch, J., Lundberg, L.: Maintainability Myth Causes Performance Problems in SMP Applications. In: Proceedings of the 6th Asian-Pacific Conference on Software Engineering, Takamatsu, Japan, December (1999)

    Google Scholar 

  10. Haggander, D., Lundberg, L.: A Simple Process for Migrating Server Applications to SMPs. Journal of Systems and Software, to appear (2001)

    Google Scholar 

  11. Hennessy, J.: The Future of System Research. IEEE Computer, August (1999)

    Google Scholar 

  12. Hermansson, H., Johansson, M., Lundberg, L.: A Distributed Component Architecture for a Large Telecommunication Application. In: Proceedings of the 7th Asian-Pacific Conference on Software Engineering, Singapore, December (2000)

    Google Scholar 

  13. Jones, R., Lins, R.: Garbage Collection: Algorithms for automatic dynamic memory management. John Wiley & Sons (1998)

    Google Scholar 

  14. Kazman, R., Klein, M., Barbacci, M., Longstaff, T., Lipson, H., Carriere, J.: The Architecture Tradeoff Analysis Method. Tech. Report, CMU/SEI-98-TR-008

    Google Scholar 

  15. Microquill: SmartHeap for SMP. http://www.microquill.com/smp (site visited December 21 2000)

  16. Schmidt, D.: Douglas C. Schmidt homepage. http://www.cs.wustl.edu/~schmidt (site visited December 21 2000)

  17. Wilson, P., Johnstone, M., Neely, M., Boles, D.: Dynamic storage allocation: A survey and critical review. In: Proceedings of the 1995 International Workshop on Memory Management, Kinross, Scotland, Springer-Verlag (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Lundberg, L., Häggander, D., Diestelkamp, W. (2001). Conflicts and Trade-Offs between Software Performance and Maintainability. In: Dumke, R., Rautenstrauch, C., Scholz, A., Schmietendorf, A. (eds) Performance Engineering. WOSP GWPESD 2000 2000. Lecture Notes in Computer Science, vol 2047. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45156-0_4

Download citation

  • DOI: https://doi.org/10.1007/3-540-45156-0_4

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42145-0

  • Online ISBN: 978-3-540-45156-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics