{"id":19926,"date":"2023-01-19T07:20:25","date_gmt":"2023-01-19T07:20:25","guid":{"rendered":"https:\/\/www.booksofall.com\/pl\/?post_type=product&#038;p=19926"},"modified":"2023-01-19T07:20:25","modified_gmt":"2023-01-19T07:20:25","slug":"optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms","status":"publish","type":"product","link":"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/","title":{"rendered":"Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms"},"content":{"rendered":"<p>This manual is for advanced programmers and software developers who want to make their software faster. It is assumed that the reader has a good knowledge of the C++ programming language and a basic understanding of how compilers work. The C++ language is chosen as the basis for this manual for reasons explained on page 8 below.<\/p>\n<p><b>C++<\/b>\u00a0(pronounced &#8220;C plus plus&#8221;) is a\u00a0<a title=\"High-level programming language\" href=\"https:\/\/en.wikipedia.org\/wiki\/High-level_programming_language\">high-level<\/a>\u00a0<a title=\"General-purpose programming language\" href=\"https:\/\/en.wikipedia.org\/wiki\/General-purpose_programming_language\">general-purpose programming language<\/a>\u00a0created by Danish computer scientist\u00a0<a title=\"Bjarne Stroustrup\" href=\"https:\/\/en.wikipedia.org\/wiki\/Bjarne_Stroustrup\">Bjarne Stroustrup<\/a>\u00a0as an extension of the\u00a0<a title=\"C (programming language)\" href=\"https:\/\/en.wikipedia.org\/wiki\/C_(programming_language)\">C programming language<\/a>, or &#8220;C with\u00a0Classes&#8221;. The language has expanded significantly over time, and modern C++ now has\u00a0object-oriented,\u00a0generic, and\u00a0functional\u00a0features in addition to facilities for\u00a0low-level\u00a0memory\u00a0manipulation. It is almost always implemented as a\u00a0compiled language, and many vendors provide\u00a0<a title=\"List of compilers\" href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_compilers#C.2B.2B_compilers\">C++ compilers<\/a>, including the\u00a0<a title=\"Free Software Foundation\" href=\"https:\/\/en.wikipedia.org\/wiki\/Free_Software_Foundation\">Free Software Foundation<\/a>,\u00a0<a title=\"LLVM\" href=\"https:\/\/en.wikipedia.org\/wiki\/LLVM\">LLVM<\/a>,\u00a0<a title=\"Microsoft\" href=\"https:\/\/en.wikipedia.org\/wiki\/Microsoft\">Microsoft<\/a>,\u00a0<a title=\"Intel\" href=\"https:\/\/en.wikipedia.org\/wiki\/Intel\">Intel<\/a>,\u00a0<a title=\"Embarcadero Technologies\" href=\"https:\/\/en.wikipedia.org\/wiki\/Embarcadero_Technologies\">Embarcadero<\/a>,\u00a0<a title=\"Oracle Developer Studio\" href=\"https:\/\/en.wikipedia.org\/wiki\/Oracle_Developer_Studio\">Oracle<\/a>, and\u00a0<a title=\"IBM\" href=\"https:\/\/en.wikipedia.org\/wiki\/IBM\">IBM<\/a>, so it is available on many platforms.<\/p>\n<p>This manual is based mainly on my study of how compilers and microprocessors work. The recommendations are based on the x86 family of microprocessors from Intel, AMD, and VIA including the 64-bit versions. The x86 processors are used in the most common platforms with Windows, Linux, BSD, and Mac OS X operating systems, though these operating systems can also be used with other microprocessors and instruction sets. Much of the advices may apply to other platforms and other compiled programming languages as well.<\/p>\n<p>This is the first in a series of five manuals: 1. Optimizing software in C++: An optimization guide for Windows, Linux, and Mac platforms. 2. Optimizing subroutines in assembly language: An optimization guide for x86 platforms. 4 3. The microarchitecture of Intel, AMD, and VIA CPUs: An optimization guide for assembly programmers and compiler makers. 4. Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD, and VIA CPUs. 5. Calling conventions for different C++ compilers and operating systems.<\/p>\n<p>The latest versions of these manuals are always available from www.agner.org\/optimize. Copyright conditions are listed on page 180 below.<\/p>\n<p>Programmers who are satisfied with making software in a high-level language need only read this first manual. The subsequent manuals are for those who want to go deeper into the technical details of instruction timing, assembly language programming, compiler technology, and microprocessor microarchitecture.<\/p>\n<p>Please note that my optimization manuals are used by thousands of people around the world. I simply do not have the time to answer questions from everybody. So please do not send your programming questions to me. You will not get any answer. Beginners are advised to seek information elsewhere and get a good deal of programming experience before trying the techniques in the present manual. There are various discussion forums on the Internet where you can get answers to your programming questions if you cannot find the answers in the relevant books and manuals.<\/p>\n<p>I want to thank the many people who have sent me corrections and suggestions for my optimization manuals. I am always happy to receive new relevant information.<\/p>\n<p id=\"VCQjCCo\">\n","protected":false},"excerpt":{"rendered":"<p><iframe style=\"width: 100%; height: 700px; border: none;\" src=\"https:\/\/online.visual-paradigm.com\/share\/book\/optimizing-software-in-c--188pcv45ra?enforceShowPromotionBar=true&amp;p=1\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"featured_media":19933,"template":"","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":""},"product_brand":[],"product_cat":[268],"product_tag":[],"class_list":{"0":"post-19926","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-assembly-language","8":"first","9":"instock","10":"shipping-taxable","11":"product-type-simple"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms - BooksOfAll Polish<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms - BooksOfAll Polish\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/\" \/>\n<meta property=\"og:site_name\" content=\"BooksOfAll Polish\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/01\/img_63c8eeaf4d069.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/01\/img_63c8eeaf4d069.png\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minuty\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/\",\"url\":\"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/\",\"name\":\"Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms - BooksOfAll Polish\",\"isPartOf\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/01\/img_63c8eeaf4d069.png\",\"datePublished\":\"2023-01-19T07:20:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/#primaryimage\",\"url\":\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/01\/img_63c8eeaf4d069.png\",\"contentUrl\":\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/01\/img_63c8eeaf4d069.png\",\"width\":\"697\",\"height\":\"836\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.booksofall.com\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Categories\",\"item\":\"https:\/\/www.booksofall.com\/pl\/categories\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/#website\",\"url\":\"https:\/\/www.booksofall.com\/pl\/\",\"name\":\"BooksOfAll Polish\",\"description\":\"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.\",\"publisher\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.booksofall.com\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/#organization\",\"name\":\"BooksOfAll Polish\",\"url\":\"https:\/\/www.booksofall.com\/pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.booksofall.com\/pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2022\/06\/booksofall-logo-2.png\",\"contentUrl\":\"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2022\/06\/booksofall-logo-2.png\",\"width\":166,\"height\":30,\"caption\":\"BooksOfAll Polish\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/pl\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms - BooksOfAll Polish","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/","og_locale":"pl_PL","og_type":"article","og_title":"Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms - BooksOfAll Polish","og_url":"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/","og_site_name":"BooksOfAll Polish","og_image":[{"url":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/01\/img_63c8eeaf4d069.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/01\/img_63c8eeaf4d069.png","twitter_misc":{"Szacowany czas czytania":"2 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/","url":"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/","name":"Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms - BooksOfAll Polish","isPartOf":{"@id":"https:\/\/www.booksofall.com\/pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/#primaryimage"},"image":{"@id":"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/#primaryimage"},"thumbnailUrl":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/01\/img_63c8eeaf4d069.png","datePublished":"2023-01-19T07:20:25+00:00","breadcrumb":{"@id":"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/#primaryimage","url":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/01\/img_63c8eeaf4d069.png","contentUrl":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2023\/01\/img_63c8eeaf4d069.png","width":"697","height":"836"},{"@type":"BreadcrumbList","@id":"https:\/\/www.booksofall.com\/pl\/optimizing-software-in-c-an-optimization-guide-for-windows-linux-and-mac-platforms\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.booksofall.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Categories","item":"https:\/\/www.booksofall.com\/pl\/categories\/"},{"@type":"ListItem","position":3,"name":"Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms"}]},{"@type":"WebSite","@id":"https:\/\/www.booksofall.com\/pl\/#website","url":"https:\/\/www.booksofall.com\/pl\/","name":"BooksOfAll Polish","description":"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.","publisher":{"@id":"https:\/\/www.booksofall.com\/pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.booksofall.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/www.booksofall.com\/pl\/#organization","name":"BooksOfAll Polish","url":"https:\/\/www.booksofall.com\/pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.booksofall.com\/pl\/#\/schema\/logo\/image\/","url":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2022\/06\/booksofall-logo-2.png","contentUrl":"https:\/\/www.booksofall.com\/pl\/wp-content\/uploads\/sites\/11\/2022\/06\/booksofall-logo-2.png","width":166,"height":30,"caption":"BooksOfAll Polish"},"image":{"@id":"https:\/\/www.booksofall.com\/pl\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/product\/19926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/types\/product"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/media\/19933"}],"wp:attachment":[{"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/media?parent=19926"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/product_brand?post=19926"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/product_cat?post=19926"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/www.booksofall.com\/pl\/wp-json\/wp\/v2\/product_tag?post=19926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}