<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Performance Measurement (I)</title>
	<atom:link href="http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/</link>
	<description>Just another GNOME Blogs weblog</description>
	<lastBuildDate>Tue, 20 Oct 2009 09:03:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Emanuele Aina</title>
		<link>http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/comment-page-1/#comment-1</link>
		<dc:creator>Emanuele Aina</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/#comment-1</guid>
		<description>Maybe you already know, but the current cairo tessellator is reconverting the doubles to floats, so it may be a bottleneck. The new tessellator cworth is working on should avoid the problem using only fixed point math and be faster.</description>
		<content:encoded><![CDATA[<p>Maybe you already know, but the current cairo tessellator is reconverting the doubles to floats, so it may be a bottleneck. The new tessellator cworth is working on should avoid the problem using only fixed point math and be faster.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sean Kelley</title>
		<link>http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/comment-page-1/#comment-2</link>
		<dc:creator>Sean Kelley</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/#comment-2</guid>
		<description>Yes, I have heard that.  But the reality is that embedded development needs to use those patches sooner rather than later.  So it would be good to hear Carl comment on them.</description>
		<content:encoded><![CDATA[<p>Yes, I have heard that.  But the reality is that embedded development needs to use those patches sooner rather than later.  So it would be good to hear Carl comment on them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ross</title>
		<link>http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/comment-page-1/#comment-3</link>
		<dc:creator>Ross</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/#comment-3</guid>
		<description>W.T.F. happened in GTK+ 2.10 to GtkRadioButton.  Is this hitting a codepath in the gtk210-xft path that causes it to hit Cairo?</description>
		<content:encoded><![CDATA[<p>W.T.F. happened in GTK+ 2.10 to GtkRadioButton.  Is this hitting a codepath in the gtk210-xft path that causes it to hit Cairo?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Robinson</title>
		<link>http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/comment-page-1/#comment-4</link>
		<dc:creator>Peter Robinson</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/#comment-4</guid>
		<description>Carl posted some pretty details stuff about it to the cairo list here &lt;a href=&quot;http://lists.freedesktop.org/archives/cairo/2006-September/007882.html&quot;&gt;http://lists.freedesktop.org/archives/cairo/2006-September/007882.html&lt;/a&gt; so maybe you could try a fifth test with this branch of Cairo to see what if any difference it makes to the tests.</description>
		<content:encoded><![CDATA[<p>Carl posted some pretty details stuff about it to the cairo list here <a href="http://lists.freedesktop.org/archives/cairo/2006-September/007882.html">http://lists.freedesktop.org/archives/cairo/2006-September/007882.html</a> so maybe you could try a fifth test with this branch of Cairo to see what if any difference it makes to the tests.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff Schroeder</title>
		<link>http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/comment-page-1/#comment-5</link>
		<dc:creator>Jeff Schroeder</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/#comment-5</guid>
		<description>Can you please email jdub and get yourself on Planet gnome? (&lt;a href=&quot;http://planet.gnome.org&quot;&gt;http://planet.gnome.org&lt;/a&gt;)?&lt;p/&gt;Your work is amazing and I would love to see it in my normal p.g.o perusal. Thanks for what you are doing!</description>
		<content:encoded><![CDATA[<p>Can you please email jdub and get yourself on Planet gnome? (<a href="http://planet.gnome.org">http://planet.gnome.org</a>)?
<p />Your work is amazing and I would love to see it in my normal p.g.o perusal. Thanks for what you are doing!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Benjamin Otte</title>
		<link>http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/comment-page-1/#comment-6</link>
		<dc:creator>Benjamin Otte</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/#comment-6</guid>
		<description>Good job guys, if you continue your hard work, you might get the same conclusions at Christmas we got in August. (see &lt;a href=&quot;http://mail.gnome.org/archives/performance-list/2006-August/msg00065.html&quot;&gt;http://mail.gnome.org/archives/performance-list/2006-August/msg00065.html&lt;/a&gt; for the boring details) To name a few:&lt;br/&gt;- the theme torturer has some problems, especially the resize test (since that&#039;s not one test run multiple times, but multiple tests run one time) and not discarding wildly off measurements&lt;br/&gt;- it&#039;s not of much use to test whole widgets, since they are composed of lots of drawing operations and only one is slow. You should better test the drawing ops directly (and with representative sizes)&lt;br/&gt;- Theres a big bug in cairo when stroking that causes it to hit the slow path every time, which makes stroking a rectangle 5-10x slower on a desktop machine.&lt;p/&gt;But your graphing looks a lot nicer than mine. :)&lt;p/&gt;Company,&lt;br/&gt;who&#039;s a bit surprised to not have gotten much feedback for his benchmarks only to see someone repeating his work 3 months later - worse.&lt;p/&gt;</description>
		<content:encoded><![CDATA[<p>Good job guys, if you continue your hard work, you might get the same conclusions at Christmas we got in August. (see <a href="http://mail.gnome.org/archives/performance-list/2006-August/msg00065.html">http://mail.gnome.org/archives/performance-list/2006-August/msg00065.html</a> for the boring details) To name a few:<br />- the theme torturer has some problems, especially the resize test (since that&#8217;s not one test run multiple times, but multiple tests run one time) and not discarding wildly off measurements<br />- it&#8217;s not of much use to test whole widgets, since they are composed of lots of drawing operations and only one is slow. You should better test the drawing ops directly (and with representative sizes)<br />- Theres a big bug in cairo when stroking that causes it to hit the slow path every time, which makes stroking a rectangle 5-10x slower on a desktop machine.
<p />But your graphing looks a lot nicer than mine. <img src='http://blogs.gnome.org/xan/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' />
<p />Company,<br />who&#8217;s a bit surprised to not have gotten much feedback for his benchmarks only to see someone repeating his work 3 months later &#8211; worse.
<p />
]]></content:encoded>
	</item>
	<item>
		<title>By: Marius Gedminas</title>
		<link>http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/comment-page-1/#comment-7</link>
		<dc:creator>Marius Gedminas</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/#comment-7</guid>
		<description>Since you invited a rewrite for the Python script, I started doing some little touch-ups, and got somewhat carried away:&lt;p/&gt;  &lt;a href=&quot;http://mg.pov.lt/plot-torturer/&quot;&gt;http://mg.pov.lt/plot-torturer/&lt;/a&gt;&lt;p/&gt;It is also a Bzr (&lt;a href=&quot;http://bazaar-vcs.org/&quot;&gt;http://bazaar-vcs.org/&lt;/a&gt;) branch, if you want the full history in tiny incremental commits.  Highlights:&lt;p/&gt;  - conforms to the Python style guide (PEP-8)&lt;br/&gt;  - informative docstrings (try pydoc plot-torturer)&lt;br/&gt;  - comprehensible math for scale marks&lt;br/&gt;  - columns are sorted alphabetically, not randomly&lt;br/&gt;  - there are named constants instead of hardcoded numbers for almost all plot attributes (margins, spacings, etc.)&lt;p/&gt;What&#039;s missing:&lt;p/&gt;  - copyright notice&lt;br/&gt;  - unit tests&lt;br/&gt;</description>
		<content:encoded><![CDATA[<p>Since you invited a rewrite for the Python script, I started doing some little touch-ups, and got somewhat carried away:
<p />  <a href="http://mg.pov.lt/plot-torturer/">http://mg.pov.lt/plot-torturer/</a>
<p />It is also a Bzr (<a href="http://bazaar-vcs.org/">http://bazaar-vcs.org/</a>) branch, if you want the full history in tiny incremental commits.  Highlights:
<p />  &#8211; conforms to the Python style guide (PEP-8)<br />  &#8211; informative docstrings (try pydoc plot-torturer)<br />  &#8211; comprehensible math for scale marks<br />  &#8211; columns are sorted alphabetically, not randomly<br />  &#8211; there are named constants instead of hardcoded numbers for almost all plot attributes (margins, spacings, etc.)
<p />What&#8217;s missing:
<p />  &#8211; copyright notice<br />  &#8211; unit tests</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xan López</title>
		<link>http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/comment-page-1/#comment-8</link>
		<dc:creator>Xan López</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/#comment-8</guid>
		<description>Wow, thanks Marius! I wasn&#039; really expecting someone to step up and fix my crappy code, so I spent most of yesterday adding lots of features and basically rewriting a huge chunk of the script. Now it can: plot all the graphs using the same scale (&quot;normalize&quot;), group the timings by widget (as it was in the first version) or by &quot;property&quot; (expose, map, etc. Really useful IMHO), filter arbitrary widgets or properties from the graphs, so you can do stuff like: make a graph with boot::expose for GtkLabel, GtkButton and GtkRadioButton.&lt;br/&gt;I&#039;m going to do the following: I&#039;ll open a project in garage.maemo.org, merge my new version with yours and put a license on the damn thing. When it&#039;s done I&#039;ll make another post about it so you can go and fix all the broken stuff again if you feel like it.&lt;p/&gt;Benjamin: it&#039;s a pity that I didn&#039;t find your code earlier, but anyway it&#039;s not like I wasted my life doing a ~300 lines python script. The SQL thing is a very good idea though. And it&#039;s good to know that the resize thing is broken.</description>
		<content:encoded><![CDATA[<p>Wow, thanks Marius! I wasn&#8217; really expecting someone to step up and fix my crappy code, so I spent most of yesterday adding lots of features and basically rewriting a huge chunk of the script. Now it can: plot all the graphs using the same scale (&#8221;normalize&#8221;), group the timings by widget (as it was in the first version) or by &#8220;property&#8221; (expose, map, etc. Really useful IMHO), filter arbitrary widgets or properties from the graphs, so you can do stuff like: make a graph with boot::expose for GtkLabel, GtkButton and GtkRadioButton.<br />I&#8217;m going to do the following: I&#8217;ll open a project in garage.maemo.org, merge my new version with yours and put a license on the damn thing. When it&#8217;s done I&#8217;ll make another post about it so you can go and fix all the broken stuff again if you feel like it.
<p />Benjamin: it&#8217;s a pity that I didn&#8217;t find your code earlier, but anyway it&#8217;s not like I wasted my life doing a ~300 lines python script. The SQL thing is a very good idea though. And it&#8217;s good to know that the resize thing is broken.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marius Gedminas</title>
		<link>http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/comment-page-1/#comment-9</link>
		<dc:creator>Marius Gedminas</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/#comment-9</guid>
		<description>Xan: I somehow missed the &quot;plot-torturer on garage&quot; post.  Is your blog syndicated on Planet GNOME?&lt;p/&gt;Anyway, I took a peek, and it looks like you merged almost all of my changes.  I have only a few nitpicky stylistic suggestions:&lt;p/&gt;  - Mixing tabs and spaces in the indentation often causes trouble, or so I&#039;ve heard.  Some people have their editors assume a tab size of 4 spaces (heretics! burn!).&lt;p/&gt;  - &quot;merge_dict&quot; is a function that has a side effect (it modifieds its first argument and returns it).  The side-effect-y nature of it would be highlighted by making it not return anything.  That would also simplify your foo_merge(): master[k] = merge_dict(master[k], dict[k]) would become just merge_dict(master[k], dict[k])&lt;p/&gt;  - &quot;foo_merge&quot; is not a very clear function name.  Hm... &quot;merge_datasets&quot;?&lt;p/&gt;  - &quot;if condition: continue&quot; on one line is a bit hard to read when the condition is long.&lt;p/&gt;  - Inconsistent function call spacing (i.e. mixing both &quot;fn(args)&quot; and &quot;fn (args)&quot; in the same source file) is somewhat distracting.  PEP-8 recommends &quot;fn(args)&quot; with no space.&lt;p/&gt;  - I would find&lt;p/&gt;	parser = getattr(self, &quot;parse_%s&quot; % options.group)&lt;br/&gt;	result = [parser(file, options) for file in file_list]&lt;p/&gt;easier to read than&lt;p/&gt;	method_name = &quot;parse_%s&quot; % options.group&lt;br/&gt;	result = [getattr(self, method_name)(file, options) for file in file_list]&lt;p/&gt;Cheers!</description>
		<content:encoded><![CDATA[<p>Xan: I somehow missed the &#8220;plot-torturer on garage&#8221; post.  Is your blog syndicated on Planet GNOME?
<p />Anyway, I took a peek, and it looks like you merged almost all of my changes.  I have only a few nitpicky stylistic suggestions:
<p />  &#8211; Mixing tabs and spaces in the indentation often causes trouble, or so I&#8217;ve heard.  Some people have their editors assume a tab size of 4 spaces (heretics! burn!).
<p />  &#8211; &#8220;merge_dict&#8221; is a function that has a side effect (it modifieds its first argument and returns it).  The side-effect-y nature of it would be highlighted by making it not return anything.  That would also simplify your foo_merge(): master[k] = merge_dict(master[k], dict[k]) would become just merge_dict(master[k], dict[k])
<p />  &#8211; &#8220;foo_merge&#8221; is not a very clear function name.  Hm&#8230; &#8220;merge_datasets&#8221;?
<p />  &#8211; &#8220;if condition: continue&#8221; on one line is a bit hard to read when the condition is long.
<p />  &#8211; Inconsistent function call spacing (i.e. mixing both &#8220;fn(args)&#8221; and &#8220;fn (args)&#8221; in the same source file) is somewhat distracting.  PEP-8 recommends &#8220;fn(args)&#8221; with no space.
<p />  &#8211; I would find
<p />	parser = getattr(self, &#8220;parse_%s&#8221; % options.group)<br />	result = [parser(file, options) for file in file_list]
<p />easier to read than
<p />	method_name = &#8220;parse_%s&#8221; % options.group<br />	result = [getattr(self, method_name)(file, options) for file in file_list]
<p />Cheers!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xan</title>
		<link>http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/comment-page-1/#comment-10</link>
		<dc:creator>Xan</dc:creator>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/xan/2006/11/06/performance-measurement-i/#comment-10</guid>
		<description>Man, patches welcome! :)&lt;br/&gt;The most alarming thing is the tabs vs. spaces issue, has emacs betrayed me beyond all repair?&lt;br/&gt;All of them are sensible comments anyway (you don&#039;t like foo_merge!?), will fix them.</description>
		<content:encoded><![CDATA[<p>Man, patches welcome! <img src='http://blogs.gnome.org/xan/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':)' class='wp-smiley' /> <br />The most alarming thing is the tabs vs. spaces issue, has emacs betrayed me beyond all repair?<br />All of them are sensible comments anyway (you don&#8217;t like foo_merge!?), will fix them.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
