Clojure high performance programming : become an expert at writing fast and high performant code in Clojure 1.7.0

Saved in:
Bibliographic Details
Main Author: Kumar, Shantanu.
Format: eBook
Language: English
Published: Birmingham : Packt Publishing, 2015.
Edition: Second edition.
Series: Community experience distilled.
Subjects:
ISBN: 9781785283642
1785283642
9781785287671
1785287672
Physical Description: 1 online resource (199 pages) : illustrations (some color).

Cover

Table of contents

LEADER 04785cam a2200481Mi 4500
001 kn-ocn942668934
003 OCoLC
005 20240717213016.0
006 m o d
007 cr cn|||||||||
008 160106s2015 enka o 000 0 eng d
040 |a VT2  |b eng  |e pn  |c VT2  |d OCLCQ  |d OCLCF  |d AZK  |d RDF  |d OCLCO  |d OCLCQ  |d OCLCO  |d OCLCL 
020 |a 9781785283642 
020 |a 1785283642 
020 |a 9781785287671  |q (e-book) 
020 |a 1785287672  |q (e-book) 
035 |a (OCoLC)942668934  |z (OCoLC)961514404 
100 1 |a Kumar, Shantanu. 
245 1 0 |a Clojure high performance programming :  |b become an expert at writing fast and high performant code in Clojure 1.7.0 /  |c Shantanu Kumar. 
250 |a Second edition. 
260 |a Birmingham :  |b Packt Publishing,  |c 2015. 
300 |a 1 online resource (199 pages) :  |b illustrations (some color). 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
490 1 |a Community experience distilled 
505 0 |a Cover; Copyright; Credits; About the Author; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Performance by Design; Use case classification; The user-facing software; Computational and data-processing tasks; A CPU bound computation; A memory bound task; A cache bound task; An input/output bound task; Online transaction processing; Online analytical processing; Batch processing; A structured approach to the performance; The performance vocabulary; Latency; Throughput; Bandwidth; Baseline and benchmark; Profiling; Performance optimization 
505 8 |a Concurrency and parallelismResource utilization; Workload; The latency numbers that every programmer should know; Summary; Chapter 2: Clojure Abstractions; Non-numeric scalars and interning; Identity, value, and epochal time model; Variables and mutation; Collection types; Persistent data structures; Constructing lesser-used data structures; Complexity guarantee; O(<7) implies near constant time; The concatenation of persistent data structures; Sequences and laziness; Laziness; Laziness in data structure operations; Constructing lazy sequences; Transducers; Performance characteristics 
505 8 |a TransientsFast repetition; Performance miscellanea; Disabling assertions in production; Destructuring; Recursion and tail-call optimization (TCO); Premature end of iteration; Multimethods versus protocols; Inlining; Summary; Chapter 3: Leaning on Java; Inspecting the equivalent Java source for Clojure code; Creating a new project; Compiling the Clojure sources into Java bytecode; Decompiling the .class files into Java source; Compiling the Clojure source without locals clearing; Numerics, boxing, and primitives; Arrays; Reflection and type hints; An array of primitives; Primitives 
505 8 |a Macros and metadataString concatenation; Miscellaneous; Using array/numeric libraries for efficiency; HipHip; primitive-math; Detecting boxed math; Resorting to Java and native code; Proteus -- mutable locals in Clojure; Summary; Chapter 4: Host Performance; The hardware; Processors; Branch prediction; Instruction scheduling; Threads and cores; Memory systems; Cache; Interconnect; Storage and networking; The Java Virtual Machine; The just-in-time compiler; Memory organization; HotSpot heap and garbage collection; Measuring memory (heap/stack) usage; Determining program workload type 
505 8 |a Tackling memory inefficiencyMeasuring latency with Criterium; Criterium and Leiningen; Summary; Chapter 5: Concurrency; Low-level concurrency; Hardware memory barrier (fence) instructions; Java support and the Clojure equivalent; Atomic updates and state; Atomic updates in Java; Clojure's support for atomic updates; Faster writes with atom striping; Asynchronous agents and state; Asynchrony, queueing, and error handling; Why you should use agents; Nesting; Coordinated transactional ref and state; Ref characteristics; Ref history and in-transaction deref operations 
506 |a Plný text je dostupný pouze z IP adres počítačů Univerzity Tomáše Bati ve Zlíně nebo vzdáleným přístupem pro zaměstnance a studenty 
590 |a Knovel  |b Knovel (All titles) 
650 0 |a Clojure (Computer program language) 
650 0 |a Application software  |x Development. 
650 0 |a Computer programming. 
650 0 |a JavaScript (Computer program language) 
650 0 |a Statistics  |x Data processing. 
650 0 |a Java (Computer program language) 
655 7 |a elektronické knihy  |7 fd186907  |2 czenas 
655 9 |a electronic books  |2 eczenas 
830 0 |a Community experience distilled. 
856 4 0 |u https://proxy.k.utb.cz/login?url=https://app.knovel.com/hotlink/toc/id:kpCHPPBC02/clojure-high-performance?kpromoter=marc  |y Full text