{"id":6247,"date":"2021-11-07T14:13:19","date_gmt":"2021-11-07T14:13:19","guid":{"rendered":"https:\/\/www.modernescpp.com\/index.php\/five-voucher-for-fedor-g-pikus-book-the-art-of-writing-efficient-programms\/"},"modified":"2021-11-07T14:13:19","modified_gmt":"2021-11-07T14:13:19","slug":"five-voucher-for-fedor-g-pikus-book-the-art-of-writing-efficient-programms","status":"publish","type":"post","link":"https:\/\/www.modernescpp.com\/index.php\/five-voucher-for-fedor-g-pikus-book-the-art-of-writing-efficient-programms\/","title":{"rendered":"Seven Voucher for Fedor G. Pikus Book &#8220;The Art of Writing Efficient Programs&#8221;"},"content":{"rendered":"<p>I&#8217;m happy to announce that I have to offer five vouchers for a digital and two vouchers for a printed issue of Fedor G. Pikus book &#8220;<a href=\"https:\/\/www.packtpub.com\/product\/the-art-of-writing-efficient-programs\/9781800208117\">The Art of Writing Efficient Programs<\/a>&#8220;. The sponsor of these coupons is <a href=\"https:\/\/www.packtpub.com\/\">Packt<\/a>.<\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" size-full wp-image-6246\" src=\"https:\/\/www.modernescpp.com\/wp-content\/uploads\/2021\/11\/big.jpg\" alt=\"smaller\" width=\"400\" height=\"494\" style=\"display: block; margin-left: auto; margin-right: auto;\" srcset=\"https:\/\/www.modernescpp.com\/wp-content\/uploads\/2021\/11\/big.jpg 400w, https:\/\/www.modernescpp.com\/wp-content\/uploads\/2021\/11\/big-243x300.jpg 243w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/p>\n<p>Before I write about how you can get this book, I have to say: You must have this book if you are an experienced C++ programmer and care about performance-critical programs.<\/p>\n<p>I&#8217;m a pretty experienced C++ programmer who learned a lot from Fedor&#8217;s book to make it short. Honestly, the book is not easy to read. You have to study variations of program snippets and often compare the performance characteristics of these short program snippets that are part of the available full programs. You will learn at least one highly critical lesson &#8220;<em>move design for performance from the realm of guesswork to the foundation of sound measurement-driven decisions<\/em>.&#8221; (Fedor G. Pikus)<\/p>\n<h2>A Short Overview<\/h2>\n<p>Let me give you a short overview of Fedor&#8217;s book. The book consists of three sections having the names &#8220;Performance Fundamentals&#8221;, &#8220;Advanced Concurrency&#8221;, and &#8220;Design and Coding High-Performance Programs&#8221;. Each section builds on the previous one.<\/p>\n<p>The section &#8220;Performance Fundamentals&#8221; introduces the tools to measure the performance of your program but also dedicated chapters to the CPU architecture, memory architecture, and concurrency.<\/p>\n<p>The second section about &#8220;Advanced Concurrency&#8221; is probably the most challenging and most interesting to read. Besides general thoughts about synchronization primitives such as locks or atomics, the author writes about basic building blocks of concurrent programs such as a counter or publish protocols. The section ends with an entire chapter about concurrent data structures based on locks or atomics.<\/p>\n<p>The final section &#8220;Designing and Coding High-Performance Programs&#8221;, applies the knowledge from the previous sections to get high-performant programs. Fedor writes in the four chapters about unnecessary copying, inefficient memory management, compiler optimization, and undefined behavior. The last chapter about &#8220;Design for Performance&#8221; is special because it broadens the focus of this book by also writing about the interaction of design and performance.<\/p>\n<h2>How Can You Win One of the Seven Vouchers for the Book?<\/h2>\n<p><span data-preserver-spaces=\"true\">To get the book is pretty simple. Just answer the following questions and send your answers to me. The answer to the second question is optional but improves your chance to win one of the coupons. <br \/><\/span><\/p>\n<ol>\n<li>What is your favorite tool to measure the performance of your program, and why?<\/li>\n<li>Tell me how your favorite tool helped you find the performance bottleneck.<\/li>\n<\/ol>\n<p>The two best answers will get the coupons for the printed books, and the coupons for the digital books go to the five next best answers.<\/p>\n<p><span data-preserver-spaces=\"true\">Please send your answer in English <strong>until Sunday, the 21\/11\/2021<\/strong>, to&nbsp;<\/span><a href=\"mailto:rainer.grimm@ModernesCpp.de\" target=\"_blank\" class=\"editor-rtfLink\" rel=\"noopener\"><\/a><span id=\"cloaka09f9e48f16e1cda1a9ab2b8c8183312\"><a href=\"mailto:rainer.grimm@ModernesCpp.de\">rainer.grimm@ModernesCpp.de<\/a><\/span><span data-preserver-spaces=\"true\">. I publish the winners, including their answers, in a separate post. If you don&#8217;t like that I use your name, write it explicitly. <br \/><\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m happy to announce that I have to offer five vouchers for a digital and two vouchers for a printed issue of Fedor G. Pikus book &#8220;The Art of Writing Efficient Programs&#8220;. The sponsor of these coupons is Packt.<\/p>\n","protected":false},"author":21,"featured_media":6246,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[360],"tags":[],"class_list":["post-6247","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts\/6247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/comments?post=6247"}],"version-history":[{"count":0,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/posts\/6247\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/media\/6246"}],"wp:attachment":[{"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/media?parent=6247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/categories?post=6247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.modernescpp.com\/index.php\/wp-json\/wp\/v2\/tags?post=6247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}