Clojure High Performance Programming

Written for intermediate Clojure developers, this compact guide will raise your expertise several notches. It tackles all the fundamentals of analyzing and optimizing performance in clear, logical chapters.
Preview in Mapt
Code Files

Clojure High Performance Programming

Shantanu Kumar

Written for intermediate Clojure developers, this compact guide will raise your expertise several notches. It tackles all the fundamentals of analyzing and optimizing performance in clear, logical chapters.
Mapt Subscription
FREE
$29.99/m after trial
eBook
$14.70
RRP $20.99
Save 29%
Print + eBook
$34.99
RRP $34.99
What do I get with a Mapt Pro subscription?
  • Unlimited access to all Packt’s 5,000+ eBooks and Videos
  • Early Access content, Progress Tracking, and Assessments
  • 1 Free eBook or Video to download and keep every month after trial
What do I get with an eBook?
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with Print & eBook?
  • Get a paperback copy of the book delivered to you
  • Download this book in EPUB, PDF, MOBI formats
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
What do I get with a Video?
  • Download this Video course in MP4 format
  • DRM FREE - read and interact with your content when you want, where you want, and how you want
  • Access this title in the Mapt reader
$0.00
$14.70
$34.99
$29.99p/m after trial
RRP $20.99
RRP $34.99
Subscription
eBook
Print + eBook
Start 30 Day Trial

Frequently bought together


Clojure High Performance Programming Book Cover
Clojure High Performance Programming
$ 20.99
$ 14.70
Clojure: High Performance JVM Programming Book Cover
Clojure: High Performance JVM Programming
$ 63.99
$ 44.80
Buy 2 for $32.20
Save $52.78
Add to Cart
Subscribe and access every Packt eBook & Video.
 
  • 5,000+ eBooks & Videos
  • 50+ New titles a month
  • 1 Free eBook/Video to keep every month
Start Free Trial
 

Book Details

ISBN 139781782165606
Paperback152 pages

Book Description

Clojure is a young, dynamic, functional programming language that runs on the Java Virtual Machine. It is built with performance, pragmatism, and simplicity in mind. Like most general purpose languages, Clojure’s features have different performance characteristics that one should know in order to write high performance code.

Clojure High Performance Programming is a practical, to-the-point guide that shows you how to evaluate the performance implications of different Clojure abstractions, learn about their underpinnings, and apply the right approach for optimum performance in real-world programs.

This book discusses the Clojure language in the light of performance factors that you can exploit in your own code.

You will also learn about hardware and JVM internals that also impact Clojure’s performance. Key features include performance vocabulary, performance analysis, optimization techniques, and how to apply these to your programs. You will also find detailed information on Clojure's concurrency, state-management, and parallelization primitives.

This book is your key to writing high performance Clojure code using the right abstraction, in the right place, using the right technique.

Table of Contents

Chapter 1: Performance by Design
Use case classification
Performance vocabulary
Latency numbers every programmer should know
Summary
Chapter 2: Clojure Abstractions
Non-numeric scalars and interning
Identity, value, and epochal time model
Persistent data structures
Sequences and laziness
Transients
Performance miscellanea
Summary
Chapter 3: Leaning on Java
Inspect the equivalent Java source for Clojure code
Numerics, boxing, and primitives
Arrays
Reflection and type hints
Using array/numeric libraries for efficiency
Resorting to Java and native code
Summary
Chapter 4: Host Performance
The hardware
The Java Virtual Machine
Measuring latency with Criterium
Summary
Chapter 5: Concurrency
Low-level concurrency
Atomic updates and state
Asynchronous agents and state
Coordinated transactional ref and state
Dynamic var binding and state
Validating and watching the reference types
Java concurrent data structures
Concurrency with threads

Clojure parallelization and the JVM
Parallelism with reducers
Summary
Chapter 6: Optimizing Performance
A tiny statistics terminology primer
Performance testing
Performance monitoring
Profiling
Performance tuning
Summary
Chapter 7: Application Performance
Data sizing
Resource pooling
I/O batching and throttling
Precomputing and caching
Concurrent pipelines
Applying back pressure
Performance and queuing theory
Summary

What You Will Learn

  • Learn techniques for achieving numerical performance in Clojure
  • Use Java features in Clojure code for performance
  • Avoid reflection and boxing with type hints
  • Analyze latency using the Criterium library
  • Understand Clojure's concurrency and state-management primitives in depth
  • Explore how to design Clojure applications for better performance

Authors

Table of Contents

Chapter 1: Performance by Design
Use case classification
Performance vocabulary
Latency numbers every programmer should know
Summary
Chapter 2: Clojure Abstractions
Non-numeric scalars and interning
Identity, value, and epochal time model
Persistent data structures
Sequences and laziness
Transients
Performance miscellanea
Summary
Chapter 3: Leaning on Java
Inspect the equivalent Java source for Clojure code
Numerics, boxing, and primitives
Arrays
Reflection and type hints
Using array/numeric libraries for efficiency
Resorting to Java and native code
Summary
Chapter 4: Host Performance
The hardware
The Java Virtual Machine
Measuring latency with Criterium
Summary
Chapter 5: Concurrency
Low-level concurrency
Atomic updates and state
Asynchronous agents and state
Coordinated transactional ref and state
Dynamic var binding and state
Validating and watching the reference types
Java concurrent data structures
Concurrency with threads

Clojure parallelization and the JVM
Parallelism with reducers
Summary
Chapter 6: Optimizing Performance
A tiny statistics terminology primer
Performance testing
Performance monitoring
Profiling
Performance tuning
Summary
Chapter 7: Application Performance
Data sizing
Resource pooling
I/O batching and throttling
Precomputing and caching
Concurrent pipelines
Applying back pressure
Performance and queuing theory
Summary

Book Details

ISBN 139781782165606
Paperback152 pages
Read More

Read More Reviews

Recommended for You

Clojure for Machine Learning Book Cover
Clojure for Machine Learning
$ 29.99
$ 21.00
Clojure Data Analysis Cookbook Book Cover
Clojure Data Analysis Cookbook
$ 32.99
$ 23.10
Clojure for Domain-specific Languages Book Cover
Clojure for Domain-specific Languages
$ 32.99
$ 23.10
Clojure Reactive Programming Book Cover
Clojure Reactive Programming
$ 35.99
$ 25.20
Mastering Clojure Data Analysis Book Cover
Mastering Clojure Data Analysis
$ 35.99
$ 25.20
Mastering Web Application Development with AngularJS Book Cover
Mastering Web Application Development with AngularJS
$ 26.99
$ 5.40