{"id":2127,"date":"2010-01-25T20:44:33","date_gmt":"2010-01-26T04:44:33","guid":{"rendered":"http:\/\/multimedia.cx\/eggs\/?p=2127"},"modified":"2010-06-21T10:35:05","modified_gmt":"2010-06-21T17:35:05","slug":"benchmark-bitch-no-more","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/benchmark-bitch-no-more\/","title":{"rendered":"Benchmark Bitch No More"},"content":{"rendered":"<p>You know what? I&#8217;m tired of being the <a href=\"http:\/\/multimedia.cx\/eggs\/compiler-smackdown-2010-1-64-bit\/\">benchmark bitch<\/a>.<\/p>\n<p>I have come to realize that benchmarks are exclusively the domain of people who have a vested interest in the results. I&#8217;m not financially or emotionally invested in the results of these compiler output performance comparisons; it was purely a matter of academic curiosity. As such, it&#8217;s hard to keep the proper motivation. No matter how carefully I set up a test and regardless of how many variables I control, the feedback is always the same: &#8220;Try tweaking this parameter! I&#8217;m sure that will make my favorite compiler clean up over all the other options!&#8221; &#8220;Your statistical methods are all wrong!&#8221; &#8220;Your graphs are fraudulently misleading.&#8221; Okay, I wholeheartedly agree with that last one, but blame OpenOffice for creating completely inept graphs by default.<\/p>\n<p>Look, people, compilers can&#8217;t work magic. Deal with it. &#8220;&#8211;tweak-optim-parm=62&#8221; isn&#8217;t going to net the 10% performance increase needed to make the ethically pure, free software compiler leapfrop over the evil, proprietary compiler (and don&#8217;t talk to me about profile-guided optimization; I&#8217;m pretty sure that&#8217;s an elaborate hoax and even if it&#8217;s not, the proprietary compilers also advertise the same feature). Don&#8217;t put your faith in the compiler to make your code suck less (<a href=\"http:\/\/multimedia.cx\/eggs\/one-gluttonous-if-statement\/\">don&#8217;t I know<\/a>). Investigate some actual computer science instead. It&#8217;s especially foolhardy to count on compiler optimizations in open source software. Not necessarily because of gcc&#8217;s quality (as you know, <a href=\"http:\/\/multimedia.cx\/eggs\/gcc-of-multimedia\/\">I think gcc does remarkably well considering its charter<\/a>), but because there are so many versions of compilers that are expected to compile Linux and open source software in general. The more pressing problem (addressed by <a href=\"http:\/\/fate.multimedia.cx\/\">FATE<\/a>) is making sure that a key piece of free software continues to compile and function correctly on a spectacular diversity of build and computing environments.<\/p>\n<p>If anyone else has a particular interest in controlled FFmpeg benchmarks, you may wish to start with <a href=\"http:\/\/multimedia.cx\/eggs\/icc-vs-gcc-smackdown-round-3\/\">my automated Python script in this blog post<\/a>. It&#8217;s the only thing that kept me sane when running these benchmarks up to this point.<\/p>\n<p>I should clarify that I am still interested in reorganizing FATE so that it will help us to systematically identify performance regressions in critical parts of the code. The performance comparison I care most about is whether today&#8217;s FFmpeg SVN copy is slower than yesterday&#8217;s SVN copy.<\/p>\n<p><strong>See Also:<\/strong><\/p>\n<ul>\n<li><a href=\"http:\/\/multimedia.cx\/eggs\/compiler-smackdown-2010-1-64-bit\/\">The final entry in the compiler smackdown series<\/a><\/li>\n<\/ul>\n<p><strong>Update:<\/strong> I have to state that I&#8217;m not especially hurt by any criticism of my methods (though the post may have made it seem that way). Mostly, I wanted to force myself to quit wasting time on these progressively more elaborate and time-consuming benchmarks when they&#8217;re really not terribly useful in the grand scheme of things. I found myself brainstorming some rather involved profiling projects and I had to smack myself. I have far more practical things I really should be using my free time for. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Won&#8217;t have Multimedia Mike to kick around no more<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2127","post","type-post","status-publish","format-standard","hentry","category-general"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/2127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=2127"}],"version-history":[{"count":8,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/2127\/revisions"}],"predecessor-version":[{"id":2574,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/2127\/revisions\/2574"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=2127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=2127"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=2127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}