Delphi high performance build fast Delphi applications using concurrency, parallel programming and memory management

Build fast, scalable, and high performing applications with Delphi About This Book Build efficient and concurrent applications in Delphi with focused examples Identify performance bottlenecks and apply the correct algorithm to increase the performance of applications. Delve into parallel programming...

Descripción completa

Detalles Bibliográficos
Otros Autores: Gabrijelccicc Primoz, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, [England] ; Mumbai, [India] : Packt 2018.
Edición:First edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009631635406719
Tabla de Contenidos:
  • Cover
  • Copyright and Credits
  • Packt Upsell
  • Contributors
  • Table of Contents
  • Preface
  • Chapter 1: About Performance
  • What is performance?
  • Different types of speed
  • Algorithm complexity
  • Big O and Delphi data structures
  • Data structures in practice
  • Mr. Smith's first program
  • Looking at code through the Big O eyes
  • Don't guess, measure!
  • Profiling with TStopwatch
  • Profilers
  • AsmProfiler
  • Sampling Profiler
  • AQTime
  • Nexus Quality Suite
  • Summary
  • Chapter 2: Fixing the Algorithm
  • Responsive user interfaces
  • Updating a progress bar
  • Bulk updates
  • Virtual display
  • Caching
  • Dynamic cache
  • Speeding up SlowCode
  • Summary
  • Chapter 3: Fine-Tuning the Code
  • Delphi compiler settings
  • Code inlining control
  • Optimization
  • Record field alignment
  • Assertions
  • Overflow checking
  • Range checking
  • Extracting common expressions
  • The helpful CPU window
  • Behind the scenes
  • A plethora of types
  • Simple types
  • Strings
  • Arrays
  • Records
  • Classes
  • Interfaces
  • Optimizing method calls
  • Parameter passing
  • Method inlining
  • The magic of pointers
  • Going the assembler way
  • Returning to SlowCode
  • Summary
  • Chapter 4: Memory Management
  • Optimizing strings and array allocations
  • Memory management functions
  • Dynamic record allocation
  • FastMM internals
  • Memory allocation in a parallel world
  • Replacing the default memory manager
  • ScaleMM
  • TBBMalloc
  • Fine-tuning SlowCode
  • Summary
  • Chapter 5: Getting Started with the Parallel World
  • Processes and threads
  • When to parallelize the code?
  • Most common problems
  • Never access UI from a background thread
  • Simultaneous reading and writing
  • Sharing a variable
  • Synchronization
  • Critical sections
  • Other locking mechanisms
  • A short note on coding style
  • Shared data with built-in locking.
  • Interlocked operations
  • Object life cycle
  • Communication
  • Windows messages
  • Synchronize and Queue
  • Polling
  • Performance
  • Third-party libraries
  • Summary
  • Chapter 6: Working with Parallel Tools
  • TThread
  • Advanced TThread
  • Setting up a communication channel
  • Sending messages from a thread
  • Implementing a timer
  • Summary
  • Chapter 7: Exploring Parallel Practices
  • Tasks and patterns
  • Variable capturing
  • Tasks
  • Exceptions in tasks
  • Parallelizing a loop
  • Thread pooling
  • Async/Await
  • Join
  • Join/Await
  • Future
  • Parallel for
  • Pipelines
  • Creating the pipeline
  • Stages
  • Displaying the result and shutting down
  • Summary
  • Chapter 8: Using External Libraries
  • Using object files
  • Object file formats
  • Object file linking in practice
  • Using C++ libraries
  • Using a proxy DLL in Delphi
  • Summary
  • Chapter 9: Best Practices
  • About performance
  • Fixing the algorithm
  • Fine-tuning the code
  • Memory management
  • Getting started with the parallel world
  • Working with parallel tools
  • Exploring parallel practices
  • Using external libraries
  • Final words
  • Other Books You May Enjoy
  • Index.