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...
Gespeichert in:
1. Verfasser: | |
---|---|
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 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV045449524 | ||
003 | DE-604 | ||
005 | 20190527 | ||
007 | t | ||
008 | 190207s2018 a||| |||| 00||| eng d | ||
020 | |a 9781788996648 |9 978-1-78899-664-8 | ||
035 | |a (OCoLC)1103480511 | ||
035 | |a (DE-599)BVBBV045449524 | ||
040 | |a DE-604 |b ger |e rda | ||
041 | 0 | |a eng | |
049 | |a DE-11 | ||
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
100 | 1 | |a Kucherenko, Igor |e Verfasser |4 aut | |
245 | 1 | 0 | |a Mastering high performance with Kotlin |b overcome performance difficulties in Kotlin with a range of exciting techniques and solutions |c Igor Kucherenko |
264 | 1 | |a Birmingham ; Mumbai |b Packt Publishing |c 2018 | |
300 | |a V, 308 Seiten |b Illustrationen | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
520 | 3 | |a 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 | |
520 | 3 | |a 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 | |
520 | 3 | |a 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 | |
650 | 0 | 7 | |a Kotlin |g Programmiersprache |0 (DE-588)1136341129 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Kotlin |g Programmiersprache |0 (DE-588)1136341129 |D s |
689 | 0 | |8 1\p |5 DE-604 | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe |z 978-1-78899-835-2 |
999 | |a oai:aleph.bib-bvb.de:BVB01-030834938 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk |
Datensatz im Suchindex
_version_ | 1804179346524471296 |
---|---|
any_adam_object | |
author | Kucherenko, Igor |
author_facet | Kucherenko, Igor |
author_role | aut |
author_sort | Kucherenko, Igor |
author_variant | i k ik |
building | Verbundindex |
bvnumber | BV045449524 |
classification_rvk | ST 250 |
ctrlnum | (OCoLC)1103480511 (DE-599)BVBBV045449524 |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>05435nam a2200361 c 4500</leader><controlfield tag="001">BV045449524</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20190527 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">190207s2018 a||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781788996648</subfield><subfield code="9">978-1-78899-664-8</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1103480511</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV045449524</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rda</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-11</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Kucherenko, Igor</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Mastering high performance with Kotlin</subfield><subfield code="b">overcome performance difficulties in Kotlin with a range of exciting techniques and solutions</subfield><subfield code="c">Igor Kucherenko</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Birmingham ; Mumbai</subfield><subfield code="b">Packt Publishing</subfield><subfield code="c">2018</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">V, 308 Seiten</subfield><subfield code="b">Illustrationen</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="520" ind1="3" ind2=" "><subfield code="a">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</subfield></datafield><datafield tag="520" ind1="3" ind2=" "><subfield code="a">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</subfield></datafield><datafield tag="520" ind1="3" ind2=" "><subfield code="a">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</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Kotlin</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)1136341129</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Kotlin</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)1136341129</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe</subfield><subfield code="z">978-1-78899-835-2</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-030834938</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield></record></collection> |
id | DE-604.BV045449524 |
illustrated | Illustrated |
indexdate | 2024-07-10T08:18:24Z |
institution | BVB |
isbn | 9781788996648 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-030834938 |
oclc_num | 1103480511 |
open_access_boolean | |
owner | DE-11 |
owner_facet | DE-11 |
physical | V, 308 Seiten Illustrationen |
publishDate | 2018 |
publishDateSearch | 2018 |
publishDateSort | 2018 |
publisher | Packt Publishing |
record_format | marc |
spelling | Kucherenko, Igor Verfasser aut Mastering high performance with Kotlin overcome performance difficulties in Kotlin with a range of exciting techniques and solutions Igor Kucherenko Birmingham ; Mumbai Packt Publishing 2018 V, 308 Seiten Illustrationen txt rdacontent n rdamedia nc rdacarrier 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 Kotlin Programmiersprache (DE-588)1136341129 gnd rswk-swf Kotlin Programmiersprache (DE-588)1136341129 s 1\p DE-604 Erscheint auch als Online-Ausgabe 978-1-78899-835-2 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Kucherenko, Igor Mastering high performance with Kotlin overcome performance difficulties in Kotlin with a range of exciting techniques and solutions Kotlin Programmiersprache (DE-588)1136341129 gnd |
subject_GND | (DE-588)1136341129 |
title | Mastering high performance with Kotlin overcome performance difficulties in Kotlin with a range of exciting techniques and solutions |
title_auth | Mastering high performance with Kotlin overcome performance difficulties in Kotlin with a range of exciting techniques and solutions |
title_exact_search | Mastering high performance with Kotlin overcome performance difficulties in Kotlin with a range of exciting techniques and solutions |
title_full | Mastering high performance with Kotlin overcome performance difficulties in Kotlin with a range of exciting techniques and solutions Igor Kucherenko |
title_fullStr | Mastering high performance with Kotlin overcome performance difficulties in Kotlin with a range of exciting techniques and solutions Igor Kucherenko |
title_full_unstemmed | Mastering high performance with Kotlin overcome performance difficulties in Kotlin with a range of exciting techniques and solutions Igor Kucherenko |
title_short | Mastering high performance with Kotlin |
title_sort | mastering high performance with kotlin overcome performance difficulties in kotlin with a range of exciting techniques and solutions |
title_sub | overcome performance difficulties in Kotlin with a range of exciting techniques and solutions |
topic | Kotlin Programmiersprache (DE-588)1136341129 gnd |
topic_facet | Kotlin Programmiersprache |
work_keys_str_mv | AT kucherenkoigor masteringhighperformancewithkotlinovercomeperformancedifficultiesinkotlinwitharangeofexcitingtechniquesandsolutions |