• Complain

Kurt Guntheroth - Optimized C++: Proven Techniques for Heightened Performance

Here you can read online Kurt Guntheroth - Optimized C++: Proven Techniques for Heightened Performance full text of the book (entire story) in english for free. Download pdf and epub, get meaning, cover and reviews about this ebook. year: 2016, publisher: O’Reilly Media, genre: Computer. Description of the work, (preface) as well as reviews are available. Best literature library LitArk.com created for fans of good reading and offers a wide selection of genres:

Romance novel Science fiction Adventure Detective Science History Home and family Prose Art Politics Computer Non-fiction Religion Business Children Humor

Choose a favorite category and find really read worthwhile books. Enjoy immersion in the world of imagination, feel the emotions of the characters or learn something new for yourself, make an fascinating discovery.

Kurt Guntheroth Optimized C++: Proven Techniques for Heightened Performance
  • Book:
    Optimized C++: Proven Techniques for Heightened Performance
  • Author:
  • Publisher:
    O’Reilly Media
  • Genre:
  • Year:
    2016
  • Rating:
    5 / 5
  • Favourites:
    Add to favourites
  • Your mark:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Optimized C++: Proven Techniques for Heightened Performance: summary, description and annotation

We offer to read an annotation, description, summary or preface (depends on what the author of the book "Optimized C++: Proven Techniques for Heightened Performance" wrote himself). If you haven't found the necessary information about the book — write in the comments, we will try to find it.

In todays fast and competitive world, a programs performance is just as important to customers as the features it provides. This practical guide teaches developers performance-tuning principles that enable optimization in C++. Youll learn how to make code that already embodies best practices of C++ design run faster and consume fewer resources on any computerwhether its a watch, phone, workstation, supercomputer, or globe-spanning network of servers.

Author Kurt Guntheroth provides several running examples that demonstrate how to apply these principles incrementally to improve existing code so it meets customer requirements for responsiveness and throughput. The advice in this book will prove itself the first time you hear a colleague exclaim, Wow, that was fast. Who fixed something?

  • Locate performance hot spots using the profiler and software timers
  • Learn to perform repeatable experiments to measure performance of code changes
  • Optimize use of dynamically allocated variables
  • Improve performance of hot loops and functions
  • Speed up string handling functions
  • Recognize efficient algorithms and optimization patterns
  • Learn the strengthsand weaknessesof C++ container classes
  • View searching and sorting through an optimizers eye
  • Make efficient use of C++ streaming I/O functions
  • Use C++ thread-based concurrency features effectively

Kurt Guntheroth: author's other books


Who wrote Optimized C++: Proven Techniques for Heightened Performance? Find out the surname, the name of the author of the book and a list of all author's works by series.

Optimized C++: Proven Techniques for Heightened Performance — read online for free the complete book (whole text) full work

Below is the text of the book, divided by pages. System saving the place of the last page read, allows you to conveniently read the book "Optimized C++: Proven Techniques for Heightened Performance" online for free, without having to search again every time where you left off. Put a bookmark, and you can go to the page where you finished reading at any time.

Light

Font size:

Reset

Interval:

Bookmark:

Make
Optimized C++

by Kurt Guntheroth

Copyright 2016 Kurt Guntheroth. All rights reserved.

Printed in the United States of America.

Published by OReilly Media, Inc. , 1005 Gravenstein Highway North, Sebastopol, CA 95472.

OReilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://safaribooksonline.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or corporate@oreilly.com .

  • Editors: Meghan Blanchette and Andy Oram
  • Acquisition Editor: Meghan Blanchette
  • Production Editor: Nicole Shelby
  • Copyeditor: Rachel Head
  • Proofreader: Jasmine Kwityn
  • Indexer: Judy McConville
  • Interior Designer: David Futato
  • Cover Designer: Randy Comer
  • Illustrator: Rebecca Demarest
  • April 2016: First Edition
Revision History for the First Edition
  • 2016-04-27: First Release

See http://oreilly.com/catalog/errata.csp?isbn=9781491922064 for release details.

The OReilly logo is a registered trademark of OReilly Media, Inc. Optimized C++, the cover image, and related trade dress are trademarks of OReilly Media, Inc.

While the publisher and the author have used good faith efforts to ensure that the information and instructions contained in this work are accurate, the publisher and the author disclaim all responsibility for errors or omissions, including without limitation responsibility for damages resulting from the use of or reliance on this work. Use of the information and instructions contained in this work is at your own risk. If any code samples or other technology this work contains or describes is subject to open source licenses or the intellectual property rights of others, it is your responsibility to ensure that your use thereof complies with such licenses and/or rights.

978-1-491-92206-4

[LSI]

Dedication

Everyone thanks their spouse for helping make a book possible. Its trite, I know. My wife Renee Ostler made this book possible by giving me permission to take months off work, by giving me time and space to focus on writing, and by staying up late asking me questions about optimizing C++ code, even though she wasnt particularly engaged by the topic, just to show her support. She made this project important to her because it was important to me. No author could ask for more.

Preface

Hi. My name is Kurt, and Im a code-aholic.

I have been writing software for over 35 years. Ive never worked at Microsoft, or Google, Facebook, Apple, or anywhere else famous. But beyond a few short vacations, I have written code every day of that time. I have spent the last 20 years almost exclusively writing C++ and talking to other very bright developers about C++. This is my qualification to write a book about optimizing C++ code. I have also written a lot of English prose, including specifications, comments, manuals, notes, and blog posts. It has amazed me from time to time that only half of the bright, competent developers I have worked with can string two grammatical English sentences together.

One of my favorite quotes comes by way of a letter from Sir Isaac Newton, in which he writes, If I have seen farther, it is by standing on the shoulders of giants. I too have stood on the shoulders of giants, and particularly have read their book: elegant little books, like Brian Kernighan and Dennis Ritchies The C Programming Language; smart, ahead-of-the-curve books, like Scott Meyerss EffectiveC++ series; challenging, mind-expanding books, like Andrei Alexandrescus Modern C++ Design; careful, precise books, like Bjarne Stroustrup and Margaret Elliss The Annotated C++ Reference Manual. For most of my career, it never crossed my mind that I might someday write a book. Then one day, quite suddenly, I found I needed to write this one.

So why write a book about performance tuning in C++?

At the dawn of the 21st century, C++ was under assault. Fans of C pointed to C++ programs whose performance was inferior to supposedly equivalent code written in C. Famous corporations with big marketing budgets touted proprietary object-oriented languages, claiming C++ was too hard to use, and that their tools were the future. Universities settled on Java for teaching because it came with a free toolchain. As a result of all this buzz, big companies made big-money bets on coding websites and operating systems in Java or C# or PHP. C++ seemed to be on the wane. It was an uncomfortable time for anyone who believed C++ was a powerful, useful tool.

Then a funny thing happened. Processor cores stopped getting faster, but workloads kept growing. Those same companies began hiring C++ programmers to solve their scaling issues. The cost of rewriting code from scratch in C++ became less than the cost of the electricity going into their data centers. All of a sudden, C++ was popular again.

Uniquely among programming languages in wide use in early 2016, C++ offers developers a continuum of implementation choices, ranging from hands-off, automated support to fine manual control. C++ empowers developers to take control of performance trade-offs. This control makes optimization possible.

There are not many books on optimization of C++ code. One of the few is Bulka and Mayhews meticulously researched but now somewhat dated Optimizing C++. The authors appear to have had similar career experiences to mine, and discovered many of the same principles. For readers who are interested in another take on the issues in this book, their book is a good place to start. Also, Scott Meyers, among many others, covers avoiding copy construction extensively and well.

There are enough different things to know about optimization to fill 10 books. I have tried to pick and choose things that seemed to occur frequently in my own work, or that offered the biggest performance wins. To the many readers with their own performance tuning war stories who may wonder why Ive said nothing about strategies that worked miracles for them, all I can say is, so little time, so much to tell.

I welcome your errata, comments, and favorite optimization strategies at antelope_book@guntheroth.com .

I love the craft of software development. I enjoy endlessly practicing the kata of each new loop or interface. At the corner of Sonnet and Science, writing code is a skill so esoteric, an art form so internal, that almost nobody but another practitioner can appreciate it. There is beauty in an elegantly coded function, and wisdom in a powerful idiom well used. Sadly, though, for every epic software poem like Stepanovs Standard Template Library, there are 10,000 drab tomes of uninspired code.

The root purpose of this book is to give every reader permission to think a little harder about the beauty of well-tuned software. Take it and run with it. See farther!

Apology for the Code in This Book

Although I have been writing and optimizing C++ code for over 20 years, most of the code appearing in this book was developed specifically for this book. Like all new code, it surely contains defects. I offer my apologies.

I have developed for Windows, Linux, and various embedded systems over the years. The code presented in this book was developed on Windows. The code and the book no doubt show a Windows bias. The lessons of how to optimize C++ code that are illustrated using Visual Studio on Windows apply equally to Linux, Mac OS X, or any other C++ environment. However, the precise timings of different optimizations depend on the compiler and standard library implementation, and the processor on which the code is tested. Optimization is an experimental science. Taking optimization advice on faith is fraught with negative surprises.

Next page
Light

Font size:

Reset

Interval:

Bookmark:

Make

Similar books «Optimized C++: Proven Techniques for Heightened Performance»

Look at similar books to Optimized C++: Proven Techniques for Heightened Performance. We have selected literature similar in name and meaning in the hope of providing readers with more options to find new, interesting, not yet read works.


Reviews about «Optimized C++: Proven Techniques for Heightened Performance»

Discussion, reviews of the book Optimized C++: Proven Techniques for Heightened Performance and just readers' own opinions. Leave your comments, write what you think about the work, its meaning or the main characters. Specify what exactly you liked and what you didn't like, and why you think so.