Mastering high performance with Kotlin: overcome performance difficulties in Kotlin with a range of exciting techniques and solutions

Cover -- Title Page -- Copyright and Credits -- Packt Upsell -- Contributors -- Table of Contents -- Preface -- Chapter 1: Identifying Performance Bottlenecks -- Reasons for performance issues -- Memory management -- Garbage collection -- Working principles of the garbage collector -- Impacts of gar...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
1. Verfasser: Kucherenko, Igor (VerfasserIn)
Format: Buch
Sprache:English
Veröffentlicht: Birmingham ; Mumbai Packt Publishing 2018
Schlagworte:
Zusammenfassung:Cover -- Title Page -- Copyright and Credits -- Packt Upsell -- Contributors -- Table of Contents -- Preface -- Chapter 1: Identifying Performance Bottlenecks -- Reasons for performance issues -- Memory management -- Garbage collection -- Working principles of the garbage collector -- Impacts of garbage collection -- Heap fragmentation -- Finalization -- Resource leaks -- Memory leaks -- String pool -- Memory model -- The problem of concurrency and parallelism -- Java Memory Model (JMM) -- Synchronization -- Slow rendering -- Device refresh rate -- Frame rate -- Summary -- Chapter 2: Identifying Indicators of Performance Issues -- Benchmarking -- Microbenchmarks -- Java Microbenchmark Harness (JMH) -- Benchmark modes -- Benchmark time units -- Benchmark state -- State scope -- Fixture methods -- Levels of fixture methods -- Writing good benchmarks -- The pitfalls of loops -- Dead Code Elimination -- Using black holes -- Constant folding -- Kotlin benchmarks -- IDEA JMH plugin -- General performance metrics -- Types of performance testing -- Performance testing process -- Overview of performance testing tools -- JMeter -- Fabric -- Summary -- Chapter 3: Learning How to Use Profiling Tools -- Memory profiling -- Memory Viewer -- HProf -- Eclipse Memory Analyzer Tool -- Histogram -- Shallow and Retained Heap -- Dominator Tree -- Top Consumers -- Analyzing class loaders -- Android Studio Memory Profiler -- Memory categories -- Recording memory allocation -- Threads profiling -- Threads viewer -- Frames pane -- The Threads pane -- Thread profiling in the MAT -- Threads Overview -- Thread Details -- CPU Profiler in Android Studio -- Call Chart and Flame Chart tabs -- Top Down and Bottom Up tabs -- Summary -- Chapter 4: Functional Approach -- Functional programming -- Declarative versus imperative -- Pure functions -- First-class functions
Higher-order functions -- Function composition -- Lambdas -- Closures -- Typeclasses -- Arrow library -- Functor -- Monad -- Immutability -- Inspecting functional features -- Inline versus non-inline -- Capturing and non-capturing lambdas -- Summary -- Chapter 5: Enhancing the Performance of Collections -- Data structures -- Arrays -- Linked lists -- Stacks -- Queues -- Sets -- Maps -- Hash tables -- Binary search trees -- Tries -- Binary heaps -- Graphs -- Time complexity -- Calculating time complexity -- Time complexity of lists -- Time complexity of sets -- Time complexity of queues -- Time complexity of maps -- Collections in Kotlin -- Sequences in Kotlin -- Summary -- Chapter 6: Optimizing Access to Properties -- Fields and properties -- Backing fields -- Backing properties -- @JvmField annotation -- Compile-time constants -- Inner classes -- lateinit -- Companion objects -- Summary -- Chapter 7: Preventing Unnecessary Overhead Using Delegates -- Types of delegation -- Explicit delegation -- Implicit delegation -- Class delegation -- Delegated properties -- Lazy -- Creating a delegated property -- Inspecting the lazy function -- Observable delegates -- Summary -- Chapter 8: Ranges and Identifying Performance Issues -- Ranges in Kotlin -- Utility functions -- Range benchmarking -- Summary -- Chapter 9: Multithreading and Reactive Programming -- Concurrency and parallelism -- Reactive programming -- Coroutines -- Setting up a project -- The launch function -- The async function -- The buildSequence function -- The suspendingSequence function -- The produce function -- Coroutines with reactive programming -- Summary -- Chapter 10: Best Practices -- The disposable pattern -- Immutability -- Data classes -- The String pool -- StringBuilder -- Functional programming -- Declarative versus imperative -- Pure functions -- First-class functions
Higher-order functions -- Inline functions -- Function composition -- Capturing lambdas -- Collections -- Properties -- Backing properties -- @JvmField annotation -- Top-level members -- Compile-time constants -- The lateinit modifier -- Delegation -- Singleton delegate object -- The lazy funcation with unsafe thread mode -- Delegate object with generic -- Ranges -- Concurrency and parallelism -- Summary -- Other Books You May Enjoy -- Index
Beschreibung:V, 308 Seiten Illustrationen
ISBN:9781788996648

Es ist kein Print-Exemplar vorhanden.

Fernleihe Bestellen Achtung: Nicht im THWS-Bestand!