<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vitiral</id>
		<title>explain xkcd - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Vitiral"/>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php/Special:Contributions/Vitiral"/>
		<updated>2026-05-15T18:27:14Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1691:_Optimization&amp;diff=121566</id>
		<title>1691: Optimization</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1691:_Optimization&amp;diff=121566"/>
				<updated>2016-06-08T15:16:02Z</updated>
		
		<summary type="html">&lt;p&gt;Vitiral: the flowchart **itself** has clearly been optimized, adding an additional layer to the joke&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1691&lt;br /&gt;
| date      = June 8, 2016&lt;br /&gt;
| title     = Optimization&lt;br /&gt;
| image     = optimization.png&lt;br /&gt;
| titletext = Premature optimization is the root of all evil, so to start this project I'd better come up with a system that can determine whether a possible optimization is premature or not.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
This comic is a flowchart making fun of the difference between prematurely optimizing and just doing things right. Since you're consulting a flowchart to find the answer, you're prematurely optimizing.&lt;br /&gt;
&lt;br /&gt;
Apart from this main point - do not optimize prematurely - the flowchart in it self is a joke as the question in the first box only result in one arrow, with no options/labels, and by reaching the next box there can only be one answer to that question as you have to be consulting this flowchart to get to that question. The conclusion is that anyone actually trying to find out if they are using ''premature optimization'' are already ''prematurely optimizing''!&lt;br /&gt;
&lt;br /&gt;
In addition, the minimalism of the flowchart suggests that the the flowchart ''itself'' has been highly (prematurely?) optimized adding extra layers to the joke.&lt;br /&gt;
&lt;br /&gt;
The title text's ''root of all evil'' refers to {{w|Donald Knuth}}'s paper &amp;quot;Structured Programming with Goto statements&amp;quot; (1974) in which he wrote:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;quot;There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: '''premature optimization is the root of all evil'''. Yet we should not pass up our opportunities in that critical 3%.&amp;quot;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*Source: http://web.archive.org/web/20130731202547/http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf (Computing Surveys, Vol 6, No 4, December 1974) &lt;br /&gt;
&lt;br /&gt;
The title text then just takes the problem one step further back, by spending time trying to determine when you are too soon out for optimization, which is actually just another way of making premature optimization. This time-wasting behavior is common in obsessively perfectionist coders: developing tools to analyze aspects, such as performance, of the software actually required. In some fields, such as compilers or database design for instance, such tools are useful and productive (the 3% mentioned by Knuth?), but the usage suggested here is more appropriately covered by instinct and common sense.&lt;br /&gt;
&lt;br /&gt;
Flowcharts are [[:Category:Flowcharts|often used in xkcd]] and this was the second Wednesday in a row that a flow chart comic was released albeit the previous chart, [[1688: Map Age Guide]], where one of the most elaborate flowcharts so far released and it was actually about 70% serious and could be of some use...&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
:[A flow chart is shown with three boxes connected with two arrows. The first box is rectangular:] &lt;br /&gt;
:Are you '''''prematurely optimizing''''' or just '''''taking time to do things right?'''''&lt;br /&gt;
&lt;br /&gt;
:[From the first box there is a short arrow straight down to a diamond shaped box:]&lt;br /&gt;
:Are you consulting a flowchart to answer this question?&lt;br /&gt;
&lt;br /&gt;
:[A labeled arrow continues down.]&lt;br /&gt;
:Yes&lt;br /&gt;
&lt;br /&gt;
:[The arrow connects to the final rectangular box.]&lt;br /&gt;
:You are prematurely optimizing&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Flowcharts]]&lt;/div&gt;</summary>
		<author><name>Vitiral</name></author>	</entry>

	</feed>