Index
A
- Abbrevia
- algorithm
- fixing / Fixing the algorithm
- algorithm complexity
- about / Algorithm complexity
- Big O / Big O and Delphi data structures
- data structures / Big O and Delphi data structures
- data structures, implementing / Data structures in practice
- programming / Mr. Smith's first program
- Big O, using / Looking at code through the Big O eyes
- Alpha / The magic of pointers
- AQTime / AQTime
- arrays
- static arrays / Arrays
- dynamic arrays / Arrays
- allocation, optimizing / Optimizing strings and array allocations
- AsmProfiler
- URL / AsmProfiler
- about / AsmProfiler
- assembler / Going the assembler way
- Async/Await / Async/Await
B
- background threads / Processes and threads, Getting started with the parallel world
- Big O notation
- about / Algorithm complexity
- using / Looking at code through the Big O eyes
- Blue-Green-Red (BGR) byte order / The magic of pointers
- built-in data types
- simple types / A plethora of types, Simple types
- about / A plethora of types
- pointer types / A plethora of types
- strings / A plethora of types, Strings
- structured types / A plethora of types
- arrays / Arrays
- records / Records
- classes / Classes
C
- C++ libraries
- using / Using C++ libraries
- proxy DLL, using / Using a proxy DLL in Delphi
- caching
- about / Caching
- dynamic cache / Dynamic cache
- classes / Classes
- code optimization / Fine-tuning the code
- code parallelization / When to parallelize the code?
- CodeWatch / Nexus Quality Suite
- Common Object File Format (COFF) / Object file formats
- communication
- about / Communication
- Windows messages, sending / Windows messages
- Synchronize / Synchronize and Queue
- Queue / Synchronize and Queue
- polling / Polling
- performance / Performance
- communication channel
- setting up / Setting up a communication channel
- messages, sending from thread / Sending messages from a thread
- timer, implementing / Implementing a timer
- compiler settings, Delphi
- about / Delphi compiler settings
- Code inlining control / Code inlining control
- Optimization / Optimization
- Record field alignment / Record field alignment
- Assertions / Assertions
- Overflow checking / Overflow checking
- Range checking / Range checking
- cooperative multitasking / Processes and threads
- copy-on-write / Strings
- Coverage Analyst / Nexus Quality Suite
- CPU window / The helpful CPU window
- critical sections / Critical sections, Getting started with the parallel world
D
- data structures
- about / Big O and Delphi data structures
- implementing / Data structures in practice
- data types
- reference / A plethora of types
- deadlocking
- about / Critical sections
- reference / Critical sections
- deemed re-entrant / Critical sections
- Delphi
- compiler settings / Delphi compiler settings
- dynamic arrays / Arrays
- dynamic cache / Dynamic cache
E
- Entire CPU / The helpful CPU window
- Executable and Linkable Format (ELF) / Object file formats
- external libraries
- using / Using external libraries
F
- FastMath library
- URL / Using object files
- FastMM
- Flow graph / Pipelines
- Future / Future
G
- GPU programming / Using external libraries
I
- instrumentation profilers / About performance
- Intel TBBMalloc Interfaces project
- URL / TBBMalloc
- interfaces / Interfaces
- interlocked operations / Interlocked operations
J
- Join
- about / Join
- Join/Await / Join/Await
L
- LibRBTree
- URL / About performance
- Line Timer / Nexus Quality Suite
- lock-free programming / Interlocked operations
- locking
- about / Synchronization, Getting started with the parallel world
- mechanisms / Other locking mechanisms
M
- main thread / Getting started with the parallel world
- Math Kernel Library
- URL / Using object files
- measuring / Different types of speed
- memory allocation
- with parallel programming / Memory allocation in a parallel world
- memory management
- interfaces / Interfaces
- functions / Memory management functions
- about / Memory management
- memory manager
- about / Behind the scenes
- replacing / Replacing the default memory manager
- ScaleMM / ScaleMM
- TBBMalloc / TBBMalloc
- method calls
- optimizing / Optimizing method calls
- parameters, passing / Parameter passing
- method inlining / Method inlining
- Method Timer / Nexus Quality Suite
- microlocking / Interlocked operations
- multitasking
- about / Processes and threads
- cooperative multitasking / Processes and threads
- pre-emptive multitasking / Processes and threads
- multithreaded programs, problems
- detecting / Most common problems
- user interface, manipulating from background thread / Never access UI from a background thread
- simultaneous read and write, avoiding / Simultaneous reading and writing
- variable, sharing / Sharing a variable
- multithreading / Processes and threads, Getting started with the parallel world
N
- Nexus Quality Suite (NQS) / Nexus Quality Suite
O
- object files
- using / Using object files
- formats / Object file formats
- linking / Object file linking in practice
- OmniThreadLibrary
- optimistic initialization / Object life cycle, Getting started with the parallel world
P
- Parallel for / Parallel for, Exploring parallel practices
- parallel programming
- exploring / Exploring parallel practices
- patterns / Tasks and patterns
- perceived speed / Different types of speed
- performance
- about / What is performance?, About performance
- speed, types / Different types of speed
- pipelines
- about / Pipelines
- creating / Creating the pipeline
- stages, implementing / Stages
- result, displaying / Displaying the result and shutting down
- shutting down / Displaying the result and shutting down
- pointers / The magic of pointers
- pointer types / A plethora of types
- polling / Polling
- power trendline / Profiling with TStopwatch
- pre-emptive multitasking / Processes and threads
- processes / Processes and threads
- ProDelphi
- URL / Profilers
- profiler
- about / Don't guess, measure!, Profilers, About performance
- sampling profilers / About performance
- instrumentation profilers / About performance
- profiling
- about / Don't guess, measure!
- with TStopwatch / Profiling with TStopwatch
- profilers / Profilers
- AsmProfiler / AsmProfiler
- Sampling Profiler / Sampling Profiler
- AQTime / AQTime
- Nexus Quality Suite (NQS) / Nexus Quality Suite
- progress bar
- updating / Updating a progress bar
- proxy DLL
- using / Using a proxy DLL in Delphi
Q
- Queue / Synchronize and Queue
R
- re-entrancy / Critical sections
- real speed / Different types of speed
- records
- about / Records
- dynamic allocation / Dynamic record allocation
- Red-Green-Blue (RGB) byte order / The magic of pointers
- release stack / Memory allocation in a parallel world
- Relocatable Object Module Format (OMF) / Object file formats
- responsive user interfaces
- about / Responsive user interfaces
- progress bar, updating / Updating a progress bar
- with bulk updates / Bulk updates
- with virtual display / Virtual display
- Run-Time Library (RTL) / Big O and Delphi data structures
S
- Sampling Profiler / Sampling Profiler
- ScaleMM
- URL / ScaleMM, Memory management
- about / ScaleMM
- Scatter Chart / Profiling with TStopwatch
- semaphore
- about / Other locking mechanisms
- URL / Other locking mechanisms
- simple types
- character types / A plethora of types
- boolean types / A plethora of types
- about / A plethora of types, Simple types
- integer types / A plethora of types
- real types / A plethora of types
- enumerated types / A plethora of types
- SlowCode example
- speeding up / Speeding up SlowCode
- optimizing, with Filter method / Returning to SlowCode
- optimizing, for memory allocation / Fine-tuning SlowCode
- space complexity / Algorithm complexity
- speed / Different types of speed
- spinlock / Other locking mechanisms
- Spring4D
- URL / Third-party libraries, About performance
- about / Third-party libraries
- static arrays / Arrays
- stress-testing / Getting started with the parallel world
- strings
- ansi strings / A plethora of types
- about / A plethora of types, Strings
- short strings / A plethora of types
- unicode strings / A plethora of types
- allocation, optimizing / Optimizing strings and array allocations
- structured types
- about / A plethora of types
- sets / A plethora of types
- arrays / A plethora of types
- records / A plethora of types
- interfaces / A plethora of types
- classes / A plethora of types
- synchronization
- about / Synchronization
- critical sections / Critical sections
- coding style / A short note on coding style
- shared data, with built-in locking / Shared data with built-in locking
- interlocked operations / Interlocked operations
- object, life cycle / Object life cycle
- Synchronize / Synchronize and Queue
T
- tasks
- comparing, with threads / Tasks and patterns
- about / Tasks
- exceptions, handling / Exceptions in tasks
- loop, parallelizing / Parallelizing a loop
- thread pool / Thread pooling
- TBBMalloc
- third-party libraries
- Spring4D / Third-party libraries
- OmniThreadLibrary / Third-party libraries
- thread pool / Thread pooling
- threads
- about / Processes and threads
- comparing, with tasks / Tasks and patterns
- time complexity / Algorithm complexity
- trees / About performance
- TStopwatch
- used, for profiling / Profiling with TStopwatch
- TThread
- about / TThread, Working with parallel tools
- advanced TThread / Advanced TThread
V
- variable
- capturing / Variable capturing
- Virtual TreeView component
- URL / Virtual display
- about / Virtual display
- VTune Amplifier
- URL / Profilers
W
- Windows messages
- sending / Windows messages
- Wolfram Alpha
- worker threads / Processes and threads