Warriors B2G1 Free
 
 

Special Offers see all

Enter to WIN a $100 Credit

Subscribe to PowellsBooks.news
for a chance to win.
Privacy Policy

Visit our stores


    Recently Viewed clear list


    Q&A | May 12, 2015

    Aleksandar Hemon: IMG Powell’s Q&A: Aleksandar Hemon



    Describe your latest book. The Making of Zombie Wars is a roller-coaster ride of violence and sex. The main character, Joshua Levin, is a modestly... Continue »
    1. $18.20 Sale Hardcover add to wish list

      The Making of Zombie Wars

      Aleksandar Hemon 9780374203412

    spacer
Qualifying orders ship free.
$45.50
New Trade Paper
Ships in 1 to 3 days
Add to Wishlist
available for shipping or prepaid pickup only
Available for In-store Pickup
in 7 to 12 days
Qty Store Section
1 Remote Warehouse Computer Languages- C++

Efficient C++: Performance Programming Techniques

by

Efficient C++: Performance Programming Techniques Cover

 

Synopses & Reviews

Publisher Comments:

Far too many programmers and software designers consider efficient C++ to be an oxymoron. They regard C++ as inherently slow and inappropriate for performance-critical applications. Consequently, C++ has had little success penetrating domains such as networking, operating system kernels, device drivers, and others.

Efficient C++ explodes that myth. Written by two authors with first-hand experience wringing the last ounce of performance from commercial C++ applications, this book demonstrates the potential of C++ to produce highly efficient programs. The book reveals practical, everyday object-oriented design principles and C++ coding techniques that can yield large performance improvements. It points out common pitfalls in both design and code that generate hidden operating costs.

This book focuses on combining C++'s power and flexibility with high performance and scalability, resulting in the best of both worlds. Specific topics include temporary objects, memory management, templates, inheritance, virtual functions, inlining, reference-counting, STL, and much more.

With this book, you will have a valuable compendium of the best performance techniques at your fingertips.

0201379503B04062001

Book News Annotation:

Rejecting the common perception of C++ as inherently slow and inappropriate for performance-critical applications, the authors<-- >who both hold doctorates in computer science—demonstrate the potential of the language to produce efficient programs with object- oriented design principles and coding techniques that can yield large performance improvements, such as inlining and reference counting.
Annotation c. Book News, Inc., Portland, OR (booknews.com)

Description:

Includes bibliographical references (p. 293-295) and index.

About the Author

Dov Bulka has spent fifteen years in the trenches of software development delivering large-scale software products to market. He was the performance architect of the IBM Domino-Go Web server that has powered some of the biggest Web sites ever hosted on the Internet, including that of the 1996 Atlanta Olympics. He received his Ph.D. in computer science from Duke University.

David Mayhew is Principal Architect of StarBridge Technologies, Inc., where he concentrates on interconnection fabrics, peer processing, and PCI bus evolution. Previously, he worked for IBM's Networking Software Division. He received his Ph.D. in computer science from Virginia Tech.

0201379503AB04062001

Table of Contents

(Each chapter concludes with Key Points.)

Preface.

Introduction.

Roots of Software Inefficiency.

Our Goal.

Software Efficiency: Does It Matter?

Terminology.

Organization of This Book.

1. The Tracing War Story.

Our Initial Trace Implementation.

What Went Wrong.

The Recovery Plan.

2. Constructors and Destructors.

Inheritance.

Composition.

Lazy Construction.

Redundant Construction.

Key Points.

3. Virtual Functions.

Virtual Function Mechanics.

Templates and Inheritance.

Hard Coding.

Inheritance.

Templates.

4. The Return Value Optimization.

The Mechanics of Return-by-Value.

The Return Value Optimization.

Computational Constructors.

5. Temporaries.

Object Definition.

Type Mismatch.

Pass by Value.

Return by Value.

Eliminate Temporaries with op=().

6. Single-Threaded Memory Pooling.

Version 0: The Global new() and delete().

Version 1: Specialized Rational Memory Manager.

Version 2: Fixed-Size Object Memory Pool.

Version 3: Single-Threaded Variable-Size Memory Manager.

7. Multithreaded Memory Pooling.

Version 4: Implementation.

Version 5: Faster Locking.

8. Inlining Basics.

What Is Inlining?

Method Invocation Costs.

Why Inline?

Inlining Details.

Inlining Virtual Methods.

Performance Gains from Inlining.

9. Inlining—Performance Considerations.

Cross-Call Optimization.

Why Not Inline?

Development and Compile-Time Inlining

Considerations. Profile-Based

Inlining.

Inlining Rules.

Singletons.

Trivials.

10. Inlining Tricks.

Conditional Inlining.

Selective Inlining.

Recursive Inlining.

Inlining with Static Local Variables.

Architectural Caveat: Multiple Register Sets.

11. Standard Template Library.

Asymptotic Complexity.

Insertion.

Deletion.

Traversal.

Find.

Function Objects.

Better than STL?

12. Reference Counting

Implementation Details.

Preexisting Classes.

Concurrent Reference Counting.

13. Coding Optimizations.

Caching.

Precompute.

Reduce Flexibility.

80-20 Rule: Speed Up the Common Path.

Lazy Evaluation.

Useless Computations.

System Architecture.

Memory Management.

Library and System Calls.

Compiler Optimization.

14. Design Optimizations.

Design Flexibility.

Caching.

Web Server Timestamps.

Data Expansion.

The Common Code Trap.

Efficient Data Structures.

Lazy Evaluation.

getpeername().

Useless Computations.

Obsolete Code.

15. Scalability.

The SMP Architecture.

Amdahl’s Law.

Multithreaded and Synchronization Terminology.

Break Up a Task into Multiple Subtasks.

Cache Shared Data.

Share Nothing.

Partial Sharing.

Lock Granularity.

False Sharing.

Thundering Herd.

Reader/Writer Locks.

16. System Architecture Dependencies

Memory Hierarchies.

Registers: Kings of Memory.

Disk and Memory Structures.

Cache Effects.

Cache Thrash.

Avoid Branching.

Prefer Simple Calculations to Small Branches.

Threading Effects.

Context Switching.

Kernel Crossing.

Threading Choices.

Bibliography.

Index. 0201379503T04062001

Product Details

ISBN:
9780201379501
Author:
Bulka, Dov
Author:
Mayhew, David
Author:
Mayhew
Author:
David
Author:
W.
Author:
David Mayhe
Publisher:
Addison-Wesley Professional
Location:
Reading, Mass. :
Subject:
Programming Languages - C
Subject:
Programming Languages - General
Subject:
C (computer program language)
Subject:
Language, literature and biography
Subject:
C
Subject:
Computer Languages-C++
Copyright:
Edition Number:
1st
Edition Description:
Trade paper
Series Volume:
1770-2
Publication Date:
November 1999
Binding:
TRADE PAPER
Grade Level:
Professional and scholarly
Language:
English
Illustrations:
Yes
Pages:
336
Dimensions:
9 x 7.2 x 1 in 558 gr

Other books you might like

  1. C++ Programming Language 3RD Edition
    Used Trade Paper $49.00
  2. Generic Programming and the STL:...
    New Trade Paper $67.25
  3. C++ for Java Programmers (99 Edition) Used Trade Paper $87.50
  4. C++ for C Programmers 3RD Edition New Trade Paper $50.75
  5. C by Example (By Example) New Trade Paper $31.50
  6. Ruminations on C++: A Decade of... New Trade Paper $40.25

Related Subjects

Computers and Internet » Computer Languages » C++

Efficient C++: Performance Programming Techniques New Trade Paper
0 stars - 0 reviews
$45.50 In Stock
Product details 336 pages Addison-Wesley Professional - English 9780201379501 Reviews:
spacer
spacer
  • back to top

FOLLOW US ON...

     
Powell's City of Books is an independent bookstore in Portland, Oregon, that fills a whole city block with more than a million new, used, and out of print books. Shop those shelves — plus literally millions more books, DVDs, and gifts — here at Powells.com.