My Account Log in

3 options

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

EBSCOhost Academic eBook Collection (North America) Available online

View online

Ebook Central Academic Complete Available online

View online

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
Format:
Book
Author/Creator:
Kucherenko, Igor, author.
Language:
English
Subjects (All):
Android (Electronic resource).
High performance computing.
Physical Description:
1 online resource (308 pages)
Edition:
1st edition
Place of Publication:
Birmingham ; Mumbai : Packt Publishing, 2018.
System Details:
text file
Summary:
Find out how to write Kotlin code without overhead and how to use different profiling tools and bytecode viewer to inspect expressions of Kotlin language. About This Book Apply modern Kotlin features to speed up processing and implement highly efficient and reliable codes. Learn memory optimization, concurrency, multi-threading, scaling, and caching techniques to achieve high performance. Learn how to prevent unnecessary overhead and use profiling tools to detect performance issues. Who This Book Is For This book is for Kotlin developers who would like to build reliable and high-performance applications. Prior Kotlin programming knowledge is assumed. What You Will Learn Understand the importance of high performance Learn performance metrics Learn popular design patterns currently being used in Kotlin Understand how to apply modern Kotlin features to data processing Learn how to use profling tools Discover how to read bytecode Learn to perform memory optimizations Uncover approaches to the multithreading environment In Detail The ease with which we write applications has been increasing, but with it comes the need to address their performance. A balancing act between easily implementing complex applications and keeping their performance optimal is a present-day requirement In this book, we explore how to achieve this crucial balance, while developing and deploying applications with Kotlin. The book starts by analyzing various Kotlin specifcations to identify those that have a potentially adverse effect on performance. Then, we move on to monitor techniques that enable us to identify performance bottlenecks and optimize performance metrics. Next, we look at techniques that help to us achieve high performance: memory optimization, concurrency, multi threading, scaling, and caching. We also look at fault tolerance solutions and the importance of logging. We'll also cover best practices of Kotlin programming that will help you to improve the quality of your code base. By the end of the book, you will have gained some insight into various techniques and solutions that will help to create high-performance applications in the Kotlin environment Style and approach This book guides you through how to use profiling tools to detect performance issues and build high-performance applications in the Kotlin environment.
Contents:
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
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
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
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
Chapter 6: Optimizing Access to Properties
Fields and properties
Backing fields
Backing properties
@JvmField annotation
Compile-time constants
Inner classes
lateinit
Companion objects
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
Chapter 8: Ranges and Identifying Performance Issues
Ranges in Kotlin
Utility functions
Range benchmarking
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
Chapter 10: Best Practices
The disposable pattern
Data classes
The String pool
StringBuilder
Inline functions
Capturing lambdas
Collections
Properties
Top-level members
The lateinit modifier
Delegation
Singleton delegate object
The lazy funcation with unsafe thread mode
Delegate object with generic
Ranges
Other Books You May Enjoy
Index.
Notes:
Includes index.
Description based on print version record.
ISBN:
9781788998352
1788998359
OCLC:
1042318317

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account