Graphics Programming Black Book by Michael Abrash (2001)
1–10 of 85 posts
Re: Graphics Programming Black Book by Michael Abrash (2001)
#2Re: Graphics Programming Black Book by Michael Abrash (2001)
#3Re: Graphics Programming Black Book by Michael Abrash (2001)
#4This looked like a peculiar anachronism, as Markdown was created in 2004. But apparently this isn't the original source, but rather a scraped HTML[1] version converted to Markdown[2] in 2013.
1: https://github.com/jagregory/abrash-black-book/commit/b946ff...
2: https://github.com/jagregory/abrash-black-book/commit/5e1079...
Re: Graphics Programming Black Book by Michael Abrash (2001)
#5I can hardly remember from todays perspective how it was looking after some code snippets in books without google, github, stackoverflow, strg+f.
Re: Graphics Programming Black Book by Michael Abrash (2001)
#6> Markdown source (2001) This looked like a peculiar anachronism, as Markdown was created in 2004. But apparently this isn't the original source , but rather a scraped HTML[1] version converted to Markdown[2] in 2013. 1: https://github.com/jagregory/abrash-black-book/commit/b946ff... 2: https://github.com/jagregory/abrash-black-book/commit/5e1079...
Book released 1997, made available online in 2001, converted to Markdown/ePub/etc by me in 2013.
Re: Graphics Programming Black Book by Michael Abrash (2001)
#7> Markdown source (2001) This looked like a peculiar anachronism, as Markdown was created in 2004. But apparently this isn't the original source , but rather a scraped HTML[1] version converted to Markdown[2] in 2013. 1: https://github.com/jagregory/abrash-black-book/commit/b946ff... 2: https://github.com/jagregory/abrash-black-book/commit/5e1079...
Repo owner here. You are correct, not sure why this wasn’t made clearer by OP. Book released 1997, made available online in 2001, converted to Markdown/ePub/etc by me in 2013.
I trust there’s a way to get iBooks log files to fix issues...
Re: Graphics Programming Black Book by Michael Abrash (2001)
#8Re: Graphics Programming Black Book by Michael Abrash (2001)
#9Questions for experts: are part of this "timeless" and still relevant today, or is it mostly historical ? (Chapter titles like "Pushing the 286 and 386" are a bit scary :D)
Re: Graphics Programming Black Book by Michael Abrash (2001)
#10Questions for experts: are part of this "timeless" and still relevant today, or is it mostly historical ? (Chapter titles like "Pushing the 286 and 386" are a bit scary :D)
---
Understanding High Performance
Before we can create high-performance code, we must understand what high performance is. The objective (not always attained) in creating high-performance software is to make the software able to carry out its appointed tasks so rapidly that it responds instantaneously, as far as the user is concerned. In other words, high-performance code should ideally run so fast that any further improvement in the code would be pointless.
Notice that the above definition most emphatically does not say anything about making the software as fast as possible. It also does not say anything about using assembly language, or an optimizing compiler, or, for that matter, a compiler at all. It also doesn't say anything about how the code was designed and written. What it does say is that high-performance code shouldn't get in the user's way—and that's all.
That's an important distinction, because all too many programmers think that assembly language, or the right compiler, or a particular high-level language, or a certain design approach is the answer to creating high-performance code. They're not, any more than choosing a certain set of tools is the key to building a house. You do indeed need tools to build a house, but any of many sets of tools will do. You also need a blueprint, an understanding of everything that goes into a house, and the ability to use the tools.
Likewise, high-performance programming requires a clear understanding of the purpose of the software being built, an overall program design, algorithms for implementing particular tasks, an understanding of what the computer can do and of what all relevant software is doing—and solid programming skills, preferably using an optimizing compiler or assembly language. The optimization at the end is just the finishing touch, however.