Customer Reviews


16 Reviews
5 star:
 (5)
4 star:
 (7)
3 star:
 (2)
2 star:
 (1)
1 star:
 (1)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 
Only search this product's reviews

The most helpful favorable review
The most helpful critical review


28 of 29 people found the following review helpful:
4.0 out of 5 stars Keys to acceptable C++ performance
The authors are developers of network and web server software for IBM. They specifically target performance issues related to C++ programming. The primary topics of discussion are constructors & destructors, virtual functions, return value optimization, temporary objects, inlining, memory managers, and reference counting. Learn how to create efficient constructor...
Published on January 4, 2001 by Daniel Mall

versus
3 of 3 people found the following review helpful:
3.0 out of 5 stars Last section: System Architecture Dependencies, is the gold...
Most of the book is similar to Meyers books. The last chapter is great. I don't know of any other book that presents this information, and this is what programmers screw up most when trying to write high performance code. This chapter discusses how to write extremely tight code considering the actual hardware you're running on (a lot of this is generalizable, since a...
Published 23 months ago by wintermute


‹ Previous | 1 2 | Next ›
Most Helpful First | Newest First

28 of 29 people found the following review helpful:
4.0 out of 5 stars Keys to acceptable C++ performance, January 4, 2001
By 
Daniel Mall (San Gabriel, CA United States) - See all my reviews
(REAL NAME)   
This review is from: Efficient C++: Performance Programming Techniques (Paperback)
The authors are developers of network and web server software for IBM. They specifically target performance issues related to C++ programming. The primary topics of discussion are constructors & destructors, virtual functions, return value optimization, temporary objects, inlining, memory managers, and reference counting. Learn how to create efficient constructor functions. Learn how to avoid the costly construction of temporary objects. The authors promote "lazy evaluation" and nail "useless computations" and "obsolete code." Algorithm and data structure discussions are referred to other standard references, however there is coverage of the STL structures (insertion, deletion, traversal, and find operations). An additional bonus is the excellent coverage of multithreading issues.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


21 of 22 people found the following review helpful:
4.0 out of 5 stars Recommended, with reservations, June 16, 2000
By 
George V. Reilly (Seattle, Wash, USA) - See all my reviews
(REAL NAME)   
This review is from: Efficient C++: Performance Programming Techniques (Paperback)
I thought the book a useful compendium of performance information, as far as it went: temporaries, constructors and destructors, virtual functions, inlining, reference counting, some STL, multiprocessor scalability, and system architecture dependencies. My reservations are the number of omissions (most of the Standard Library, space efficiency, exceptions, performance measurement, etc.) and the number of typos.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


15 of 16 people found the following review helpful:
5.0 out of 5 stars Informative through painful personal experiences, February 25, 2000
By 
Robert A. Gibson "softwareengineer" (Research Triangle Park, NC - USA) - See all my reviews
(REAL NAME)   
This review is from: Efficient C++: Performance Programming Techniques (Paperback)

To start, I have to say that this book is well written. By using examples from personal experience, they also keep you very involved. So far, I have been forced to put the book down, in order to test the examples they describe.

I was astonished with their first example, where a poorly thought out Trace class caused performance to drop 80%.

Talk about bang for the buck! By reading this book, I expect to give a great deal more thought to the performance implications from the start.

Good job guys!

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


12 of 13 people found the following review helpful:
4.0 out of 5 stars Good coverage of inline., November 30, 1999
By A Customer
This review is from: Efficient C++: Performance Programming Techniques (Paperback)
Useful and Important. Three good chapters on use of the keyword inline. It covers specifics on when the current crop of compilers can and cannot satisfy requests to inline function calls. Some potential workarounds are covered in detail. Includes some hints on when a compiler might actually be able to inline a virtual function call - something I've hoped for, but have been disappointed by in the past.

Read it, weep, and then write a letter to your compiler vendor asking them to improve the state of the art in compilers. (I'm most familiar with VC6. Your mileage may vary.)

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 6 people found the following review helpful:
4.0 out of 5 stars Valuable information, but far from complete, July 7, 2004
By 
David Elder "elddm" (Boston, Ma United States) - See all my reviews
(REAL NAME)   
This review is from: Efficient C++: Performance Programming Techniques (Paperback)
Bulka and Mayhew's "Efficient C++" is an enjoyable and useful book, filled with helpful information that can be immediately applied to C++ programming. Its coverage of techniques for inlining, achieving the return value optimization, and avoiding temporary object creation is quite good. I also found the second chapter, which presents a case study about writing a tracer class, to be informative and a tidy overview of efficiency methods. There are also chapters discussing virtual functions, memory pooling, STL, and efficiency at the implementation and design levels. One helpful feature of this book is its presentation of a number of bar graphs illustrating the runtimes of actual test code. This helps to hammer home just how efficient or costly various techniques actually are.

Unfortunately, there are a number of topics which are not discussed or are only briefly discussed. The chapter on the STL, while accurate, is very incomplete. I would recommend bolstering this information with Meyers' "Effective STL". Also, different compilers implement different optimizations. It would have been nice to see a discussion of the optimizations provided by the most popular compilers, as well as tips on how to use these features effectively. The C++ standard allows compiler implementers to ignore certain keywords (register and inline) and to provide optimizations such as the return value optimization. I would have liked to have seen a discussion of the optimizations actually provided by various compilers as well as how they relate to the C++ standard. In addition, there are some advanced techniques, such as the Barton-Nackman trick, for avoiding the cost of virtual functions. Unfortunately, this and other comparable methods are not discussed.

On the whole, this book provides a lot of valuable information, but it could have been much more complete.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


16 of 20 people found the following review helpful:
5.0 out of 5 stars How to Make C++ Programs Run Faster and Cleaner, February 11, 2000
This review is from: Efficient C++: Performance Programming Techniques (Paperback)
There are two different categories of efficiency considerations: those that you do because they are necessary and those done only when necessary. The first category consists of those changes that make the code run faster and cleaner, whether it be on a silicon or carbon based CPU. The second category becomes significant when, no matter how clean your design and completion of the first category, the hard requirements are such that the executable just does not perform to the velocity specifications. This second category is where the danger lies, because changes here often are at the expense of portability, readability or maintainability. The first category are all no-brainers, while the second will often cause headaches, either now or in the future.
Both categories are fully represented in this book, and even in the age of gigaflop desktop devices, the first should be implemented with all the due regard of a religion. For many of them save more than just clock cycles. In so many cases, the result is code that is much more elegant and easier to read, which translates into long-term savings. C++ is a very flexible, powerful language, but it does have some significant inherent performance hazards. Constructor calls are automatically generated by C++ compilers in many places where you would not on first pass suspect them. I have been teaching and writing C++ code for almost a decade and there were some that I had not thought about. However, once noted, they are relatively easy to avoid, a point where the authors are very clear. This feature alone is enough for managers to buy copies for all C++ developers and use the examples in this book to construct company wide coding guidelines.
The second category is of course more problematic, but we all know that it happens. If you are ever in the situation where you must optimize further, even at the cost of portability and future maintenance, then you will appreciate the strategies enunciated in this book.
Of the many C++ books that I have read in the many years that I have been working and reviewing, I firmly believe that this one may be the most valuable. Efficient code is still very important and in less than three hundred pages, the authors give you a plan that may save you precious body parts.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


7 of 8 people found the following review helpful:
4.0 out of 5 stars important information for any serious C++ developer, January 6, 2003
By 
uniq "uniq" (El Dorado Hills, CA United States) - See all my reviews
(VINE VOICE)   
This review is from: Efficient C++: Performance Programming Techniques (Paperback)
Few C++ books talk about such important aspects of programming like design and development for performance, as well as performance tuning. Even smaller number of them support their arguments with the actual test numbers. This book is different: on many occasions the authors show quantitative difference between techniques, which is very useful for understanding the trade-offs and is much more convincing than simply referring to common sense or authors' past experience.

This book is a well-written overview of the C++ performance programming techniques. It looks into a broad spectrum of the issues, some of them are examined in a great detail, like C++ inlining. Most often there is no free lunch in software development, and the book does a good job of showing the trade-offs of performance techniques, keeps a good balance of not advocating extra efforts simply for the sake of having faster programs.

The book has many coding examples that show "side-by-side" performance of different code snippets trying to achieve the same computational goal. The examples are very simple and are independent off each other, so one does not have to read all the previous chapters to understand a point made in the middle of the book.

Elegance usually goes hand-in-hand with good performance, so if you are just a beginner in C++, this book will help you to polish the patterns of your programming style. I think that this book will be helpful to any C++ programmer, especially to one who is writing real-time or performance intensive applications. I wish the management could read and understand it too: hopefully then it wouldn't assume that "performance profiling" is just an afterthought and is not a necessary entry in the schedule for every serious product.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


9 of 11 people found the following review helpful:
5.0 out of 5 stars When efficiency matters, which is always, read this book, March 16, 2000
This review is from: Efficient C++: Performance Programming Techniques (Paperback)
There are two different categories of efficiency considerations: those that you do because they are necessary and those done only when necessary. The first category consists of those changes that make the code run faster and cleaner, whether it be on a silicon or carbon based CPU. The second category becomes significant when, no matter how clean your design and completion of the first category, the hard requirements are such that the executable just does not perform to the velocity specifications. This second category is where the danger lies, because changes here often are at the expense of portability, readability or maintainability. The first category are all no-brainers, while the second will often cause headaches, either now or in the future.
Both categories are fully represented in this book, and even in the age of gigaflop desktop devices, the first should be implemented with all the due regard of a religion. For many of them save more than just clock cycles. In so many cases, the result is code that is much more elegant and easier to read, which translates into long-term savings. C++ is a very flexible, powerful language, but it does have some significant inherent performance hazards. Constructor calls are automatically generated by C++ compilers in many places where you would not on first pass suspect them. I have been teaching and writing C++ code for almost a decade and there were some that I had not thought about. However, once noted, they are relatively easy to avoid, a point where the authors are very clear. This feature alone is enough for managers to buy copies for all C++ developers and use the examples in this book to construct company wide coding guidelines.
The second category is of course more problematic, but we all know that it happens. If you are ever in the situation where you must optimize further, even at the cost of portability and future maintenance, then you will appreciate the strategies enunciated in this book.
Of the many C++ books that I have read in the many years that I have been working and reviewing, I firmly believe that this one may be the most valuable. Efficient code is still very important and in less than three hundred pages, the authors give you a plan that may save you precious body parts.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 7 people found the following review helpful:
4.0 out of 5 stars Very Helpful Overview of Performance Issues, June 2, 2000
By 
Brent Fulgham (Ventura, CA United States) - See all my reviews
(REAL NAME)   
This review is from: Efficient C++: Performance Programming Techniques (Paperback)
I found this book to be quite helpful as a guide to areas in which C++ performance may be an issue. I was surprised by the vast difference in speeds caused by choice of allocation method, or how drastically the use of a C++ string object in a simple profiling class changed its performance (for the worse) compared to a character pointer.

No book is perfect, but I think the prior reviewer's 1-star rating is overly harsh. I use C++ professionally every day, and have read many of the canonical books on the topic. I still found several items worth learning from this book.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


3 of 3 people found the following review helpful:
3.0 out of 5 stars Last section: System Architecture Dependencies, is the gold..., February 9, 2010
By 
This review is from: Efficient C++: Performance Programming Techniques (Paperback)
Most of the book is similar to Meyers books. The last chapter is great. I don't know of any other book that presents this information, and this is what programmers screw up most when trying to write high performance code. This chapter discusses how to write extremely tight code considering the actual hardware you're running on (a lot of this is generalizable, since a lot of hardware is similar enough.). Things like writing code to avoid cache misses. Code that pipelines well. Replacing conditionals with small non-conditional code (avoid the branch). Context switching performance, etc.. Basically, this section is what gets you to actually think about the system you're writing software for. The real world, practical reality.

This topic is a must have, especially if you're writing a game engine or physics engine. Anything that needs to be as fast as possible, or faster than the competition... handling loads of data in real time.

I gave the book 3 stars, because I really want a full book on this, not just a short chapter at the end as an afterthought. The authors however do cite 2 other books that they used to write this section, and I'm going to go check them out. As an introduction to hardware-minded performance optimization, this chapter is pretty cool.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


‹ Previous | 1 2 | Next ›
Most Helpful First | Newest First

This product

Efficient C++: Performance Programming Techniques
Efficient C++: Performance Programming Techniques by Dov Bulka (Paperback - November 13, 1999)
$39.99 $29.29
In Stock
Add to cart Add to wishlist