Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Clojure High Performance Programming, Second Edition

You're reading from   Clojure High Performance Programming, Second Edition Become an expert at writing fast and high performant code in Clojure 1.7.0

Arrow left icon
Product type Paperback
Published in Sep 2015
Publisher
ISBN-13 9781785283642
Length 198 pages
Edition 2nd Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Shantanu Kumar Shantanu Kumar
Author Profile Icon Shantanu Kumar
Shantanu Kumar
Arrow right icon
View More author details
Toc

Table of Contents (10) Chapters Close

Preface 1. Performance by Design FREE CHAPTER 2. Clojure Abstractions 3. Leaning on Java 4. Host Performance 5. Concurrency 6. Measuring Performance 7. Performance Optimization 8. Application Performance Index

A structured approach to the performance

In practice, the performance of non-trivial applications is rarely a function of coincidence or prediction. For many projects, performance is not an option (it is rather a necessity), which is why this is even more important today. Capacity planning, determining performance objectives, performance modeling, measurement, and monitoring are key.

Tuning a poorly designed system to perform is significantly harder, if not practically impossible, than having a system well-designed from the start. In order to meet a performance goal, performance objectives should be known before the application is designed. The performance objectives are stated in terms of latency, throughput, resource utilization, and workload. These terms are discussed in the following section in this chapter.

The resource cost can be identified in terms of application scenarios, such as browsing of products, adding products to shopping cart, checkout, and more. Creating workload profiles that represent users performing various operations is usually helpful.

Performance modeling is a reality check for whether the application design will support the performance objectives. It includes performance objectives, application scenarios, constraints, measurements (benchmark results), workload objectives and if available, the performance baseline. It is not a replacement for measurement and load testing, rather, the model is validated using these. The performance model may include the performance test cases to assert the performance characteristics of the application scenarios.

Deploying an application to production almost always needs some form of capacity planning. It has to take into account the performance objectives for today and for the foreseeable future. It requires an idea of the application architecture, and an understanding of how the external factors translate into the internal workload. It also requires informed expectations about the responsiveness and the level of service to be provided by the system. Often, capacity planning is done early in a project to mitigate the risk of provisioning delays.

You have been reading a chapter from
Clojure High Performance Programming, Second Edition - Second Edition
Published in: Sep 2015
Publisher:
ISBN-13: 9781785283642
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime