My second book was also released these days. I wrote it for
Packt Publishing, a publishing house which has recently started printing Delphi titles. The first was
Delphi Cookbook by Daniele Teti, a very successful title that was followed by
Delphi Cookbook - Second Edition by the same author.
Last year they published
Expert Delphi by Pawel Glowacki, followed this year by my book and (as I have it on a good authority) at least one more. All books are available in electronic and printed formats. They also offer Delphi
video lectures.
Delphi High Performance is, as the name says, a book about writing Delphi applications that
perform well. That does not mean writing multithreaded applications - and I say this many times in the book. To write high performance applications you need to known much more. The book therefore starts with the basics - with the
algorithms, how we can classify them, how they behave and how can we pull the most from the built-in Delphi data structures. Then it moves to
profilers because you should
never guess what the slowest part of the code is. Always measure!
Writing a book that tells you "this is how you make your algorithm faster" is, sadly, impossible. That's why we consultants are for ;) In the book I only gave few advises (with lots of examples) about working with the
GUI and about caching results from calculations.
Only then do I go deep into Delphi. Writing fast applications means knowing how
built-in data types behave. I look into data life-cycle, what happens when a data of some type is modified and how it is passed in function calls. The life-cycle part cannot be explained without talking about memory which brings in a discussion of
memory managers in general and FastMM in specifics.
Only then does the book introduce
multithreading. Whole three chapters are dedicated to it and one of them is specifically written to show you why multithreading is hard, what you should never do when writing multithreaded code and why you shouldn't approach this topic with a preconception that it will automatically speed up your code. Only then do I introduce TThread and modern concepts such as
tasks, futures, parallel for and so on. Most of the time I stay with the Delphi
RTL and show how modern multithreading concepts can be neatly implemented on that basis. Only at the end I introduce OmniThreadLibrary's concept of a
pipeline.
At the end the book admits that sometimes you have to look around and find a prepackaged solution elsewhere. As this solution will be typically compiled for C or C++, the book shows how to link in C object files, how to write a proxy
DLL which allows you to use a C++ library and at least tries to introduce you to the world of pain related to all that. Reading this book will definitely
not give you enough information on the topic of linking, but at least it will give you a good starting point so that you can research further.
I really hope that you'll like this book. It was a great joy to write, but also lots of very hard work. At the end, all the hard work was immediately forgotten when Stefan Glienke (who very kindly reviewed the whole book and pointed out some glaring errors - Stefan, thanks!) said:
"This is the best Delphi book (for me personally) I've read since 'Delphi in a Nutshell'. It is 'must buy' for our department and mandatory that everyone reads it."
[SIZE=-2]--- Published under the
Creative Commons Attribution 3.0 license[/SIZE]
Weiterlesen...