3 ms·
That Proebsting's law link is of course dead, and redirects to the main page of Microsoft Research. In my experience, it's the natural state of links to Microso
by yakubin 4y ago
That Proebsting's law link is of course dead, and redirects to the main page of Microsoft Research. In my experience, it's the natural state of links to Microsoft Research pages. What's up with that?
- float4 4y agoCan't answer your question, but here's the law (I was curious myself): > I claim the following simple experiment supports this depressing claim. Run your favorite set of benchmarks with your favorite state-of-the-art optimizing compiler. Run the benchmarks both with and without optimizations enabled. The ratio of of those numbers represents the entirety of the contribution of compiler optimizations to speeding up those benchmarks. Let's assume that this ratio is about 4X for typical real-world applications, and let's further assume that compiler optimization work has been going on for about 36 years. These assumptions lead to the conclusion that compiler optimization advances double computing power every 18 years. QED. > This means that while hardware computing horsepower increases at roughly 60%/year, compiler optimizations contribute only 4%. Basically, compiler optimization work makes only marginal contributions. > Perhaps this means Programming Language Research should be concentrating on something other than optimizations. Perhaps programmer productivity is a more fruitful arena. https://proebsting.cs.arizona.edu/law.html https://proebsting.cs.arizona.edu/law.html
- Waterluvian 4y agoI find that code performance optimization is not worthwhile a lot of the time. But developer performance optimization is almost always worthwhile. One might argue that cheap overseas development labour makes it a commodity, but I care more for being humane towards humans than CPUs.
- yakubin 4y agoA lot of times code compiled with no optimisations (-O0) is unusable. Specifically, in video some software compiled without optimisations won't push frames on time and instead will just keep dropping frames. There was a post a couple days ago about it being problematic in the games industry where a game compiled without optimisations is unplayable, while higher optimisation levels are hard to inspect in a debugger, due to the myth of "zero-cost-abstractions" in C++. Also to put it on its head a bit, when a compiler isn't fast enough (read not enough work was put into performance of the compiler itself, mostly on the design level, not on the microoptimisation level really), the feedback loop is so long, that developers stop testing out hypotheses and instead try to do as much as possible in their heads, without verifying, only to avoid the cost of recompiling a project. Another instance: when a photo-editing application can't quickly give me a preview of the photo I'm editing, I'm going to test fewer possible edits and probably get a worse photo as a result. With websites, if an action doesn't happen within a couple seconds of me clicking I often assume the website doesn't work and just close it, even though I know there are a lot of crappy websites out there that are just this slow. Doesn't matter. The waiting usually isn't worth my time and frustration.
- oriolid 4y ago> One might argue that cheap overseas development labour makes it a commodity It was already argued in 90s, and several companies bet on outsourcing to India. It wasn't a success for everyone.
- necubi 4y agoCompiler optimizations can actually improve developer productivity, because they allow developers to write clean but inefficient code that can be rewritten to near optimal form. For example, in Rust iterators are a very convenient and clear interface that are generally zero cost (sometimes even more efficient) compared to a manual loop implementation. But without optimization, they would be many times slower.
- bombcar 4y agoSome of that computer horsepower increase is due to chips learning how compilers create code and optimizing for compiled code.
- bombcar 4y agoMicrosoft seems to do a massive restructuring of their website every few years and they break all links in the process. Raymond’s blog has suffered this a few times.
- brent_noorda 4y agoYou should make a law about Microsoft research pages and name it after yourself.
- svat 4y agoThe earliest Wayback Machine archive of that link is from August 2000: https://web.archive.org/web/20000824013718/http://research.microsoft.com/~toddpro/papers/law.htm https://web.archive.org/web/20000824013718/http://research.m... Looks like in December 2008 (between https://web.archive.org/web/20081204015038/http://research.microsoft.com/~toddpro/papers/law.htm https://web.archive.org/web/20081204015038/http://research.m... which works, and the next snapshot on Dec 30) it started redirecting to a new URL (https://web.archive.org/web/20090224224249/http://research.microsoft.com/en-us/um/people/toddpro/papers/law.htm https://web.archive.org/web/20090224224249/http://research.m...) which was still working as of 2012-03 (https://web.archive.org/web/20120307142916/http://research.microsoft.com/en-us/um/people/toddpro/papers/law.htm https://web.archive.org/web/20120307142916/http://research.m...). Meanwhile, https://proebsting.cs.arizona.edu/ https://proebsting.cs.arizona.edu/ says that Todd Proebsting joined the University of Arizona in August 2012 after leaving Microsoft, so presumably that's when the link stopped working. He still has it up at his new site: https://proebsting.cs.arizona.edu/law.html https://proebsting.cs.arizona.edu/law.html