Clojure high performance programming : become an expert at writing fast and high performant code in Clojure 1.7.0
Saved in:
Main Author: | |
---|---|
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). |
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 |