▶Book Description
Achieving efficient code through performance tuning is one of the key challenges faced by many programmers. This book looks at Qt programming from a performance perspective. You'll explore the performance problems encountered when using the Qt framework and means and ways to resolve them and optimize performance.
The book highlights performance improvements and new features released in Qt 5.9, Qt 5.11, and 5.12 (LTE). You'll master general computer performance best practices and tools, which can help you identify the reasons behind low performance, and the most common performance pitfalls experienced when using the Qt framework. In the following chapters, you'll explore multithreading and asynchronous programming with C++ and Qt and learn the importance and efficient use of data structures. You'll also get the opportunity to work through techniques such as memory management and design guidelines, which are essential to improve application performance. Comprehensive sections that cover all these concepts will prepare you for gaining hands-on experience of some of Qt's most exciting application fields - the mobile and embedded development domains.
By the end of this book, you'll be ready to build Qt applications that are more efficient, concurrent, and performance-oriented in nature
▶What You Will Learn
⦁ Understand classic performance best practices
⦁ Get to grips with modern hardware architecture and its performance impact
⦁ Implement tools and procedures used in performance optimization
⦁ Grasp Qt-specific work techniques for graphical user interface (GUI) and platform programming
⦁ Make Transmission Control Protocol (TCP) and Hypertext Transfer Protocol (HTTP) performant and use the relevant Qt classes
⦁ Discover the improvements Qt 5.9 (and the upcoming versions) holds in store
⦁ Explore Qt's graphic engine architecture, strengths, and weaknesses
▶Key Features
⦁ Build efficient and concurrent applications in Qt to create cross-platform applications
⦁ Identify performance bottlenecks and apply the correct algorithm to improve application performance
⦁ Delve into parallel programming and memory management to optimize your code
▶Who This Book Is For
This book is designed for Qt developers who wish to build highly performance applications for desktop and embedded devices. Programming Experience with C++ is required.
▶What this book covers
⦁ Chapter 1, Understanding Performant Programs, introduces you to the world of performance, discusses modern processor architectures, and recounts some traditional performance wisdom.
⦁ Chapter 2, Profiling to Find Bottlenecks, looks at the tooling we use to diagnose performance problems, concentrating specifically on the tools available on Windows.
⦁ Chapter 3, Deep Dive into C++ and Performance, takes a closer look at the C++ 11 language, its general performance, the performance of its numerous features, and the role of compilers and linkers in the performance game.
⦁ Chapter 4, Using Data Structures and Algorithms Efficiently, discusses the performance impact of data structures and algorithms and then takes a closer look at the data structures used by Qt in its API and the associated performance gotchas.
⦁ Chapter 5, An In-Depth Guide to Concurrency and Multithreading, describes multithreading concepts, Qt multithreading classes and techniques, explains the multithreading is hard mantra, and offers some techniques for minimizing multithreading costs and pitfalls.
⦁ Chapter 6, Performance Fails and How to Overcome Them, looks back at some performance challenges I encountered during my work.
⦁ Chapter 7, Understanding I/O Performance and Overcoming Related Problems, turns our attention to the unglamorous theme of reading, writing, and parsing files, as well as unexpected interactions with a number of OS mechanisms.
⦁ Chapter 8, Optimizing Graphical Performance, looks at the main usage scenario of Qt—writing graphical UIs. We will learn about GPUs, and their performance and usage in Qt. Later, we will have a look at the main classes of Qt Widgets and Qt Quick and will discuss what their performance depends upon.
⦁ Chapter 9, Optimizing Network Performance, introduces basic networking concepts, the TCP and HTTP protocols, the Qt classes supporting them, and the network optimization techniques available in Qt.
⦁ Chapter 10, Qt Performance on Embedded and Mobile Platforms, looks at mobile and embedded usage of Qt. It builds on the knowledge we acquired in the previous chapters to examine the specific performance challenges faced by Qt on those platforms.
⦁ Chapter 11, Testing and Deploying Qt Applications, ends this book with a discussion of testing and deployment tools and techniques.