C++ High Performance: Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition.
C++ High Performance, Second Edition enables you to measure and identify bottlenecks in the code and eradicate them to amplify your application's working speed without compromising the readability of your C++ codebase.
Gespeichert in:
1. Verfasser: | |
---|---|
Weitere Verfasser: | , |
Format: | Elektronisch E-Book |
Sprache: | English |
Veröffentlicht: |
Birmingham :
Packt Publishing, Limited,
2020.
|
Ausgabe: | 2nd ed. |
Schlagworte: | |
Online-Zugang: | DE-862 DE-863 |
Zusammenfassung: | C++ High Performance, Second Edition enables you to measure and identify bottlenecks in the code and eradicate them to amplify your application's working speed without compromising the readability of your C++ codebase. |
Beschreibung: | Description based upon print version of record. |
Beschreibung: | 1 online resource (541 p.) |
ISBN: | 9781839212581 1839212586 |
Internformat
MARC
LEADER | 00000cam a2200000Mu 4500 | ||
---|---|---|---|
001 | ZDB-4-EBA-on1229927249 | ||
003 | OCoLC | ||
005 | 20241004212047.0 | ||
006 | m o d | ||
007 | cr ||||||||||| | ||
008 | 210109s2020 xx o ||| 0 eng d | ||
040 | |a EBLCP |b eng |c EBLCP |d EBLCP |d NLW |d YDX |d N$T |d OCLCF |d OCLCO |d OCLCQ |d GBVCP |d OCLCQ |d OCLCO |d OCLCL |d TMA |d OCLCQ | ||
019 | |a 1228885098 |a 1291710449 | ||
020 | |a 9781839212581 | ||
020 | |a 1839212586 | ||
035 | |a (OCoLC)1229927249 |z (OCoLC)1228885098 |z (OCoLC)1291710449 | ||
050 | 4 | |a QA76.76.A65 | |
082 | 7 | |a 005.1 |2 23 | |
049 | |a MAIN | ||
100 | 1 | |a Andrist, Bjö. | |
245 | 1 | 0 | |a C++ High Performance |h [electronic resource] : |b Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition. |
250 | |a 2nd ed. | ||
260 | |a Birmingham : |b Packt Publishing, Limited, |c 2020. | ||
300 | |a 1 online resource (541 p.) | ||
336 | |a text |b txt |2 rdacontent | ||
337 | |a computer |b c |2 rdamedia | ||
338 | |a online resource |b cr |2 rdacarrier | ||
500 | |a Description based upon print version of record. | ||
520 | |a C++ High Performance, Second Edition enables you to measure and identify bottlenecks in the code and eradicate them to amplify your application's working speed without compromising the readability of your C++ codebase. | ||
505 | 0 | |a Intro -- Copyright -- Packt Page -- Contributors -- Table of Contents -- Preface -- Chapter 1: A Brief Introduction to C++ -- Why C++? -- Zero-cost abstractions -- Programming languages and machine code abstractions -- Abstractions in other languages -- The zero-overhead principle -- Portability -- Robustness -- C++ of today -- C++ compared with other languages -- Competing languages and performance -- Non-performance-related C++ language features -- Value semantics -- Const correctness -- Object ownership -- Deterministic destruction in C++ -- Avoiding null objects using C++ references | |
505 | 8 | |a Drawbacks of C++ -- Libraries and compilers used in this book -- Summary -- Chapter 2: Essential C++ Techniques -- Automatic type deduction with the auto keyword -- Using auto in function signatures -- Forwarding the return type using decltype(auto) -- Using auto for variables -- A const reference -- A mutable reference -- A forwarding reference -- Practices for ease of use -- Const propagation for pointers -- Move semantics explained -- Copy-construction, swap, and move -- Copy-constructing an object -- Resource acquisition and the rule of five -- Named variables and rvalues | |
505 | 8 | |a Default move semantics and the rule of zero -- Rule of zero in a real code base -- A common pitfall -- moving non-resources -- Applying the && modifier to class member functions -- Don't move when copies are elided anyway -- Pass by value when applicable -- Cases where pass-by-value is not applicable -- Moving constructor parameters -- Designing interfaces with error handling -- Contracts -- Class invariants -- Maintaining contracts -- Error handling -- Programming error or runtime error? -- Programming errors (bugs) -- Recoverable runtime errors -- Function objects and lambda expressions | |
505 | 8 | |a The basic syntax of a C++ lambda -- The capture clause -- Capture by reference versus capture by value -- Similarities between a lambda and a class -- Initializing variables in capture -- Mutating lambda member variables -- Capture all -- Assigning C function pointers to lambdas -- Lambda types -- Lambdas and std::function -- Implementing a simple Button class with std::function -- Performance consideration of std::function -- Generic lambdas -- Summary -- Chapter 3: Analyzing and Measuring Performance -- Asymptotic complexity and big O notation -- Growth rates -- Amortized time complexity | |
505 | 8 | |a What to measure and how? -- Performance properties -- Speedup of execution time -- Performance counters -- Performance testing -- best practices -- Knowing your code and hot spots -- Instrumentation profilers -- Sampling profilers -- Microbenchmarking -- Amdahl's law -- Pitfalls of microbenchmarking -- A microbenchmark example -- Summary -- Chapter 4: Data Structures -- The properties of computer memory -- The standard library containers -- Sequence containers -- Vectors and arrays -- Deque -- List and forward_list -- The basic_string -- Associative containers -- Ordered sets and maps | |
650 | 0 | |a Application software |x Development. |0 http://id.loc.gov/authorities/subjects/sh95009362 | |
650 | 0 | |a C++ (Computer program language) |0 http://id.loc.gov/authorities/subjects/sh87007505 | |
650 | 6 | |a Logiciels d'application |x Développement. | |
650 | 6 | |a C++ (Langage de programmation) | |
650 | 7 | |a Algorithms & data structures. |2 bicssc | |
650 | 7 | |a Programming & scripting languages: general. |2 bicssc | |
650 | 7 | |a Parallel processing. |2 bicssc | |
650 | 7 | |a Computers |x Programming Languages |x C. |2 bisacsh | |
650 | 7 | |a Computers |x Programming |x Parallel. |2 bisacsh | |
650 | 7 | |a Computers |x Programming |x Algorithms. |2 bisacsh | |
650 | 7 | |a Application software |x Development |2 fast | |
650 | 7 | |a C++ (Computer program language) |2 fast | |
700 | 1 | |a Sehr, Viktor. | |
700 | 1 | |a Garney, Ben. | |
776 | 0 | 8 | |i Print version: |a Andrist, Bjö |t C++ High Performance |d Birmingham : Packt Publishing, Limited,c2020 |
966 | 4 | 0 | |l DE-862 |p ZDB-4-EBA |q FWS_PDA_EBA |u https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=2717490 |3 Volltext |
966 | 4 | 0 | |l DE-863 |p ZDB-4-EBA |q FWS_PDA_EBA |u https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=2717490 |3 Volltext |
938 | |a ProQuest Ebook Central |b EBLB |n EBL6449745 | ||
938 | |a YBP Library Services |b YANK |n 301834212 | ||
938 | |a EBSCOhost |b EBSC |n 2717490 | ||
994 | |a 92 |b GEBAY | ||
912 | |a ZDB-4-EBA | ||
049 | |a DE-862 | ||
049 | |a DE-863 |
Datensatz im Suchindex
DE-BY-FWS_katkey | ZDB-4-EBA-on1229927249 |
---|---|
_version_ | 1826942329592741888 |
adam_text | |
any_adam_object | |
author | Andrist, Bjö |
author2 | Sehr, Viktor Garney, Ben |
author2_role | |
author2_variant | v s vs b g bg |
author_facet | Andrist, Bjö Sehr, Viktor Garney, Ben |
author_role | |
author_sort | Andrist, Bjö |
author_variant | b a ba |
building | Verbundindex |
bvnumber | localFWS |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.A65 |
callnumber-search | QA76.76.A65 |
callnumber-sort | QA 276.76 A65 |
callnumber-subject | QA - Mathematics |
collection | ZDB-4-EBA |
contents | Intro -- Copyright -- Packt Page -- Contributors -- Table of Contents -- Preface -- Chapter 1: A Brief Introduction to C++ -- Why C++? -- Zero-cost abstractions -- Programming languages and machine code abstractions -- Abstractions in other languages -- The zero-overhead principle -- Portability -- Robustness -- C++ of today -- C++ compared with other languages -- Competing languages and performance -- Non-performance-related C++ language features -- Value semantics -- Const correctness -- Object ownership -- Deterministic destruction in C++ -- Avoiding null objects using C++ references Drawbacks of C++ -- Libraries and compilers used in this book -- Summary -- Chapter 2: Essential C++ Techniques -- Automatic type deduction with the auto keyword -- Using auto in function signatures -- Forwarding the return type using decltype(auto) -- Using auto for variables -- A const reference -- A mutable reference -- A forwarding reference -- Practices for ease of use -- Const propagation for pointers -- Move semantics explained -- Copy-construction, swap, and move -- Copy-constructing an object -- Resource acquisition and the rule of five -- Named variables and rvalues Default move semantics and the rule of zero -- Rule of zero in a real code base -- A common pitfall -- moving non-resources -- Applying the && modifier to class member functions -- Don't move when copies are elided anyway -- Pass by value when applicable -- Cases where pass-by-value is not applicable -- Moving constructor parameters -- Designing interfaces with error handling -- Contracts -- Class invariants -- Maintaining contracts -- Error handling -- Programming error or runtime error? -- Programming errors (bugs) -- Recoverable runtime errors -- Function objects and lambda expressions The basic syntax of a C++ lambda -- The capture clause -- Capture by reference versus capture by value -- Similarities between a lambda and a class -- Initializing variables in capture -- Mutating lambda member variables -- Capture all -- Assigning C function pointers to lambdas -- Lambda types -- Lambdas and std::function -- Implementing a simple Button class with std::function -- Performance consideration of std::function -- Generic lambdas -- Summary -- Chapter 3: Analyzing and Measuring Performance -- Asymptotic complexity and big O notation -- Growth rates -- Amortized time complexity What to measure and how? -- Performance properties -- Speedup of execution time -- Performance counters -- Performance testing -- best practices -- Knowing your code and hot spots -- Instrumentation profilers -- Sampling profilers -- Microbenchmarking -- Amdahl's law -- Pitfalls of microbenchmarking -- A microbenchmark example -- Summary -- Chapter 4: Data Structures -- The properties of computer memory -- The standard library containers -- Sequence containers -- Vectors and arrays -- Deque -- List and forward_list -- The basic_string -- Associative containers -- Ordered sets and maps |
ctrlnum | (OCoLC)1229927249 |
dewey-full | 005.1 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1 |
dewey-search | 005.1 |
dewey-sort | 15.1 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | 2nd ed. |
format | Electronic eBook |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>05552cam a2200613Mu 4500</leader><controlfield tag="001">ZDB-4-EBA-on1229927249</controlfield><controlfield tag="003">OCoLC</controlfield><controlfield tag="005">20241004212047.0</controlfield><controlfield tag="006">m o d </controlfield><controlfield tag="007">cr |||||||||||</controlfield><controlfield tag="008">210109s2020 xx o ||| 0 eng d</controlfield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">EBLCP</subfield><subfield code="b">eng</subfield><subfield code="c">EBLCP</subfield><subfield code="d">EBLCP</subfield><subfield code="d">NLW</subfield><subfield code="d">YDX</subfield><subfield code="d">N$T</subfield><subfield code="d">OCLCF</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">GBVCP</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCL</subfield><subfield code="d">TMA</subfield><subfield code="d">OCLCQ</subfield></datafield><datafield tag="019" ind1=" " ind2=" "><subfield code="a">1228885098</subfield><subfield code="a">1291710449</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781839212581</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1839212586</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1229927249</subfield><subfield code="z">(OCoLC)1228885098</subfield><subfield code="z">(OCoLC)1291710449</subfield></datafield><datafield tag="050" ind1=" " ind2="4"><subfield code="a">QA76.76.A65</subfield></datafield><datafield tag="082" ind1="7" ind2=" "><subfield code="a">005.1</subfield><subfield code="2">23</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">MAIN</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Andrist, Bjö.</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">C++ High Performance</subfield><subfield code="h">[electronic resource] :</subfield><subfield code="b">Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition.</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2nd ed.</subfield></datafield><datafield tag="260" ind1=" " ind2=" "><subfield code="a">Birmingham :</subfield><subfield code="b">Packt Publishing, Limited,</subfield><subfield code="c">2020.</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 online resource (541 p.)</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="a">text</subfield><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="a">computer</subfield><subfield code="b">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="a">online resource</subfield><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Description based upon print version of record.</subfield></datafield><datafield tag="520" ind1=" " ind2=" "><subfield code="a">C++ High Performance, Second Edition enables you to measure and identify bottlenecks in the code and eradicate them to amplify your application's working speed without compromising the readability of your C++ codebase.</subfield></datafield><datafield tag="505" ind1="0" ind2=" "><subfield code="a">Intro -- Copyright -- Packt Page -- Contributors -- Table of Contents -- Preface -- Chapter 1: A Brief Introduction to C++ -- Why C++? -- Zero-cost abstractions -- Programming languages and machine code abstractions -- Abstractions in other languages -- The zero-overhead principle -- Portability -- Robustness -- C++ of today -- C++ compared with other languages -- Competing languages and performance -- Non-performance-related C++ language features -- Value semantics -- Const correctness -- Object ownership -- Deterministic destruction in C++ -- Avoiding null objects using C++ references</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Drawbacks of C++ -- Libraries and compilers used in this book -- Summary -- Chapter 2: Essential C++ Techniques -- Automatic type deduction with the auto keyword -- Using auto in function signatures -- Forwarding the return type using decltype(auto) -- Using auto for variables -- A const reference -- A mutable reference -- A forwarding reference -- Practices for ease of use -- Const propagation for pointers -- Move semantics explained -- Copy-construction, swap, and move -- Copy-constructing an object -- Resource acquisition and the rule of five -- Named variables and rvalues</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Default move semantics and the rule of zero -- Rule of zero in a real code base -- A common pitfall -- moving non-resources -- Applying the && modifier to class member functions -- Don't move when copies are elided anyway -- Pass by value when applicable -- Cases where pass-by-value is not applicable -- Moving constructor parameters -- Designing interfaces with error handling -- Contracts -- Class invariants -- Maintaining contracts -- Error handling -- Programming error or runtime error? -- Programming errors (bugs) -- Recoverable runtime errors -- Function objects and lambda expressions</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">The basic syntax of a C++ lambda -- The capture clause -- Capture by reference versus capture by value -- Similarities between a lambda and a class -- Initializing variables in capture -- Mutating lambda member variables -- Capture all -- Assigning C function pointers to lambdas -- Lambda types -- Lambdas and std::function -- Implementing a simple Button class with std::function -- Performance consideration of std::function -- Generic lambdas -- Summary -- Chapter 3: Analyzing and Measuring Performance -- Asymptotic complexity and big O notation -- Growth rates -- Amortized time complexity</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">What to measure and how? -- Performance properties -- Speedup of execution time -- Performance counters -- Performance testing -- best practices -- Knowing your code and hot spots -- Instrumentation profilers -- Sampling profilers -- Microbenchmarking -- Amdahl's law -- Pitfalls of microbenchmarking -- A microbenchmark example -- Summary -- Chapter 4: Data Structures -- The properties of computer memory -- The standard library containers -- Sequence containers -- Vectors and arrays -- Deque -- List and forward_list -- The basic_string -- Associative containers -- Ordered sets and maps</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Application software</subfield><subfield code="x">Development.</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh95009362</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">C++ (Computer program language)</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh87007505</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Logiciels d'application</subfield><subfield code="x">Développement.</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">C++ (Langage de programmation)</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Algorithms & data structures.</subfield><subfield code="2">bicssc</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Programming & scripting languages: general.</subfield><subfield code="2">bicssc</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Parallel processing.</subfield><subfield code="2">bicssc</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Computers</subfield><subfield code="x">Programming Languages</subfield><subfield code="x">C.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Computers</subfield><subfield code="x">Programming</subfield><subfield code="x">Parallel.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Computers</subfield><subfield code="x">Programming</subfield><subfield code="x">Algorithms.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Application software</subfield><subfield code="x">Development</subfield><subfield code="2">fast</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">C++ (Computer program language)</subfield><subfield code="2">fast</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Sehr, Viktor.</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Garney, Ben.</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Print version:</subfield><subfield code="a">Andrist, Bjö</subfield><subfield code="t">C++ High Performance</subfield><subfield code="d">Birmingham : Packt Publishing, Limited,c2020</subfield></datafield><datafield tag="966" ind1="4" ind2="0"><subfield code="l">DE-862</subfield><subfield code="p">ZDB-4-EBA</subfield><subfield code="q">FWS_PDA_EBA</subfield><subfield code="u">https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=2717490</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="966" ind1="4" ind2="0"><subfield code="l">DE-863</subfield><subfield code="p">ZDB-4-EBA</subfield><subfield code="q">FWS_PDA_EBA</subfield><subfield code="u">https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=2717490</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">ProQuest Ebook Central</subfield><subfield code="b">EBLB</subfield><subfield code="n">EBL6449745</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">YBP Library Services</subfield><subfield code="b">YANK</subfield><subfield code="n">301834212</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">EBSCOhost</subfield><subfield code="b">EBSC</subfield><subfield code="n">2717490</subfield></datafield><datafield tag="994" ind1=" " ind2=" "><subfield code="a">92</subfield><subfield code="b">GEBAY</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-4-EBA</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-862</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-863</subfield></datafield></record></collection> |
id | ZDB-4-EBA-on1229927249 |
illustrated | Not Illustrated |
indexdate | 2025-03-18T14:26:17Z |
institution | BVB |
isbn | 9781839212581 1839212586 |
language | English |
oclc_num | 1229927249 |
open_access_boolean | |
owner | MAIN DE-862 DE-BY-FWS DE-863 DE-BY-FWS |
owner_facet | MAIN DE-862 DE-BY-FWS DE-863 DE-BY-FWS |
physical | 1 online resource (541 p.) |
psigel | ZDB-4-EBA FWS_PDA_EBA ZDB-4-EBA |
publishDate | 2020 |
publishDateSearch | 2020 |
publishDateSort | 2020 |
publisher | Packt Publishing, Limited, |
record_format | marc |
spelling | Andrist, Bjö. C++ High Performance [electronic resource] : Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition. 2nd ed. Birmingham : Packt Publishing, Limited, 2020. 1 online resource (541 p.) text txt rdacontent computer c rdamedia online resource cr rdacarrier Description based upon print version of record. C++ High Performance, Second Edition enables you to measure and identify bottlenecks in the code and eradicate them to amplify your application's working speed without compromising the readability of your C++ codebase. Intro -- Copyright -- Packt Page -- Contributors -- Table of Contents -- Preface -- Chapter 1: A Brief Introduction to C++ -- Why C++? -- Zero-cost abstractions -- Programming languages and machine code abstractions -- Abstractions in other languages -- The zero-overhead principle -- Portability -- Robustness -- C++ of today -- C++ compared with other languages -- Competing languages and performance -- Non-performance-related C++ language features -- Value semantics -- Const correctness -- Object ownership -- Deterministic destruction in C++ -- Avoiding null objects using C++ references Drawbacks of C++ -- Libraries and compilers used in this book -- Summary -- Chapter 2: Essential C++ Techniques -- Automatic type deduction with the auto keyword -- Using auto in function signatures -- Forwarding the return type using decltype(auto) -- Using auto for variables -- A const reference -- A mutable reference -- A forwarding reference -- Practices for ease of use -- Const propagation for pointers -- Move semantics explained -- Copy-construction, swap, and move -- Copy-constructing an object -- Resource acquisition and the rule of five -- Named variables and rvalues Default move semantics and the rule of zero -- Rule of zero in a real code base -- A common pitfall -- moving non-resources -- Applying the && modifier to class member functions -- Don't move when copies are elided anyway -- Pass by value when applicable -- Cases where pass-by-value is not applicable -- Moving constructor parameters -- Designing interfaces with error handling -- Contracts -- Class invariants -- Maintaining contracts -- Error handling -- Programming error or runtime error? -- Programming errors (bugs) -- Recoverable runtime errors -- Function objects and lambda expressions The basic syntax of a C++ lambda -- The capture clause -- Capture by reference versus capture by value -- Similarities between a lambda and a class -- Initializing variables in capture -- Mutating lambda member variables -- Capture all -- Assigning C function pointers to lambdas -- Lambda types -- Lambdas and std::function -- Implementing a simple Button class with std::function -- Performance consideration of std::function -- Generic lambdas -- Summary -- Chapter 3: Analyzing and Measuring Performance -- Asymptotic complexity and big O notation -- Growth rates -- Amortized time complexity What to measure and how? -- Performance properties -- Speedup of execution time -- Performance counters -- Performance testing -- best practices -- Knowing your code and hot spots -- Instrumentation profilers -- Sampling profilers -- Microbenchmarking -- Amdahl's law -- Pitfalls of microbenchmarking -- A microbenchmark example -- Summary -- Chapter 4: Data Structures -- The properties of computer memory -- The standard library containers -- Sequence containers -- Vectors and arrays -- Deque -- List and forward_list -- The basic_string -- Associative containers -- Ordered sets and maps Application software Development. http://id.loc.gov/authorities/subjects/sh95009362 C++ (Computer program language) http://id.loc.gov/authorities/subjects/sh87007505 Logiciels d'application Développement. C++ (Langage de programmation) Algorithms & data structures. bicssc Programming & scripting languages: general. bicssc Parallel processing. bicssc Computers Programming Languages C. bisacsh Computers Programming Parallel. bisacsh Computers Programming Algorithms. bisacsh Application software Development fast C++ (Computer program language) fast Sehr, Viktor. Garney, Ben. Print version: Andrist, Bjö C++ High Performance Birmingham : Packt Publishing, Limited,c2020 |
spellingShingle | Andrist, Bjö C++ High Performance Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition. Intro -- Copyright -- Packt Page -- Contributors -- Table of Contents -- Preface -- Chapter 1: A Brief Introduction to C++ -- Why C++? -- Zero-cost abstractions -- Programming languages and machine code abstractions -- Abstractions in other languages -- The zero-overhead principle -- Portability -- Robustness -- C++ of today -- C++ compared with other languages -- Competing languages and performance -- Non-performance-related C++ language features -- Value semantics -- Const correctness -- Object ownership -- Deterministic destruction in C++ -- Avoiding null objects using C++ references Drawbacks of C++ -- Libraries and compilers used in this book -- Summary -- Chapter 2: Essential C++ Techniques -- Automatic type deduction with the auto keyword -- Using auto in function signatures -- Forwarding the return type using decltype(auto) -- Using auto for variables -- A const reference -- A mutable reference -- A forwarding reference -- Practices for ease of use -- Const propagation for pointers -- Move semantics explained -- Copy-construction, swap, and move -- Copy-constructing an object -- Resource acquisition and the rule of five -- Named variables and rvalues Default move semantics and the rule of zero -- Rule of zero in a real code base -- A common pitfall -- moving non-resources -- Applying the && modifier to class member functions -- Don't move when copies are elided anyway -- Pass by value when applicable -- Cases where pass-by-value is not applicable -- Moving constructor parameters -- Designing interfaces with error handling -- Contracts -- Class invariants -- Maintaining contracts -- Error handling -- Programming error or runtime error? -- Programming errors (bugs) -- Recoverable runtime errors -- Function objects and lambda expressions The basic syntax of a C++ lambda -- The capture clause -- Capture by reference versus capture by value -- Similarities between a lambda and a class -- Initializing variables in capture -- Mutating lambda member variables -- Capture all -- Assigning C function pointers to lambdas -- Lambda types -- Lambdas and std::function -- Implementing a simple Button class with std::function -- Performance consideration of std::function -- Generic lambdas -- Summary -- Chapter 3: Analyzing and Measuring Performance -- Asymptotic complexity and big O notation -- Growth rates -- Amortized time complexity What to measure and how? -- Performance properties -- Speedup of execution time -- Performance counters -- Performance testing -- best practices -- Knowing your code and hot spots -- Instrumentation profilers -- Sampling profilers -- Microbenchmarking -- Amdahl's law -- Pitfalls of microbenchmarking -- A microbenchmark example -- Summary -- Chapter 4: Data Structures -- The properties of computer memory -- The standard library containers -- Sequence containers -- Vectors and arrays -- Deque -- List and forward_list -- The basic_string -- Associative containers -- Ordered sets and maps Application software Development. http://id.loc.gov/authorities/subjects/sh95009362 C++ (Computer program language) http://id.loc.gov/authorities/subjects/sh87007505 Logiciels d'application Développement. C++ (Langage de programmation) Algorithms & data structures. bicssc Programming & scripting languages: general. bicssc Parallel processing. bicssc Computers Programming Languages C. bisacsh Computers Programming Parallel. bisacsh Computers Programming Algorithms. bisacsh Application software Development fast C++ (Computer program language) fast |
subject_GND | http://id.loc.gov/authorities/subjects/sh95009362 http://id.loc.gov/authorities/subjects/sh87007505 |
title | C++ High Performance Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition. |
title_auth | C++ High Performance Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition. |
title_exact_search | C++ High Performance Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition. |
title_full | C++ High Performance [electronic resource] : Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition. |
title_fullStr | C++ High Performance [electronic resource] : Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition. |
title_full_unstemmed | C++ High Performance [electronic resource] : Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition. |
title_short | C++ High Performance |
title_sort | c high performance master the art of optimizing the functioning of your c code 2nd edition |
title_sub | Master the Art of Optimizing the Functioning of Your C++ Code, 2nd Edition. |
topic | Application software Development. http://id.loc.gov/authorities/subjects/sh95009362 C++ (Computer program language) http://id.loc.gov/authorities/subjects/sh87007505 Logiciels d'application Développement. C++ (Langage de programmation) Algorithms & data structures. bicssc Programming & scripting languages: general. bicssc Parallel processing. bicssc Computers Programming Languages C. bisacsh Computers Programming Parallel. bisacsh Computers Programming Algorithms. bisacsh Application software Development fast C++ (Computer program language) fast |
topic_facet | Application software Development. C++ (Computer program language) Logiciels d'application Développement. C++ (Langage de programmation) Algorithms & data structures. Programming & scripting languages: general. Parallel processing. Computers Programming Languages C. Computers Programming Parallel. Computers Programming Algorithms. Application software Development |
work_keys_str_mv | AT andristbjo chighperformancemastertheartofoptimizingthefunctioningofyourccode2ndedition AT sehrviktor chighperformancemastertheartofoptimizingthefunctioningofyourccode2ndedition AT garneyben chighperformancemastertheartofoptimizingthefunctioningofyourccode2ndedition |