目錄(142章)
倒序
- coverpage
- Title Page
- Packt Upsell
- Why subscribe?
- PacktPub.com
- Contributors
- About the author
- About the reviewers
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Conventions used
- Get in touch
- Reviews
- 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
- Fixing the Algorithm
- Responsive user interfaces
- Updating a progress bar
- Bulk updates
- Virtual display
- Caching
- Dynamic cache
- Speeding up SlowCode
- Summary
- 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
- 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
- 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
- Working with Parallel Tools
- TThread
- Advanced TThread
- Setting up a communication channel
- Sending messages from a thread
- Implementing a timer
- Summary
- 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
- Using External Libraries
- Using object files
- Object file formats
- Object file linking in practice
- Using C++ libraries
- Using a proxy DLL in Delphi
- Summary
- 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
- Leave a review - let other readers know what you think 更新時間:2021-06-24 19:23:19
推薦閱讀
- GitHub Essentials
- LibGDX Game Development Essentials
- 數據挖掘原理與實踐
- Mastering Ninject for Dependency Injection
- Developing Mobile Games with Moai SDK
- 復雜性思考:復雜性科學和計算模型(原書第2版)
- Effective Amazon Machine Learning
- 虛擬化與云計算
- 基于OPAC日志的高校圖書館用戶信息需求與檢索行為研究
- 金融商業算法建模:基于Python和SAS
- gnuplot Cookbook
- 數據科學工程實踐:用戶行為分析與建模、A/B實驗、SQLFlow
- 智慧的云計算
- Augmented Reality using Appcelerator Titanium Starter
- 數據修復技術與典型實例實戰詳解(第2版)
- 計算機視覺
- 算法設計與分析
- 數據中心經營之道
- AndEngine for Android Game Development Cookbook
- 深入理解Flink:實時大數據處理實踐
- 精通Neo4j
- Oracle數據庫性能優化的藝術
- 云原生數據庫:原理與實踐
- Feature Engineering Made Easy
- Practical Data Analysis Using Jupyter Notebook
- Python:Advanced Predictive Analytics
- ORACLE RAC日記
- Box2D for Flash Games
- 劍指MySQL 8.0:入門、精練與實戰
- 計算機導論(第2版)