<?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: Virtual functions &#8211; an experiment</title>
	<atom:link href="http://msinilo.pl/blog/?feed=rss2&#038;p=401" rel="self" type="application/rss+xml" />
	<link>http://msinilo.pl/blog/?p=401</link>
	<description>Random gamedev ramblings</description>
	<lastBuildDate>Sun, 05 Sep 2010 06:59:46 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: getw</title>
		<link>http://msinilo.pl/blog/?p=401&#038;cpage=1#comment-19807</link>
		<dc:creator>getw</dc:creator>
		<pubDate>Sat, 06 Mar 2010 22:37:49 +0000</pubDate>
		<guid isPermaLink="false">http://msinilo.pl/blog/?p=401#comment-19807</guid>
		<description>[...] getz geta getq getw gete getd ge6s ge5s gers gefs gegs geys ggets geets getts getss g ets ge ...Virtual functions an experiment &#124; .mischief.mayhem.soap.Some months ago I&#039;ve read this article by Elan Ruskin, when he measures the overhead of virtual [...]</description>
		<content:encoded><![CDATA[<p>[...] getz geta getq getw gete getd ge6s ge5s gers gefs gegs geys ggets geets getts getss g ets ge &#8230;Virtual functions an experiment | .mischief.mayhem.soap.Some months ago I&#39;ve read this article by Elan Ruskin, when he measures the overhead of virtual [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://msinilo.pl/blog/?p=401&#038;cpage=1#comment-12168</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Tue, 16 Jun 2009 17:50:08 +0000</pubDate>
		<guid isPermaLink="false">http://msinilo.pl/blog/?p=401#comment-12168</guid>
		<description>ed: good points. 
On PC virtual functions usually will not be a problem anyway :)</description>
		<content:encoded><![CDATA[<p>ed: good points.<br />
On PC virtual functions usually will not be a problem anyway :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://msinilo.pl/blog/?p=401&#038;cpage=1#comment-12167</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Tue, 16 Jun 2009 16:53:51 +0000</pubDate>
		<guid isPermaLink="false">http://msinilo.pl/blog/?p=401#comment-12167</guid>
		<description>Also be aware that most modern compilers will inline indirect function calls (and virtual function calls) if they can determine the target statically.</description>
		<content:encoded><![CDATA[<p>Also be aware that most modern compilers will inline indirect function calls (and virtual function calls) if they can determine the target statically.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ed</title>
		<link>http://msinilo.pl/blog/?p=401&#038;cpage=1#comment-12163</link>
		<dc:creator>ed</dc:creator>
		<pubDate>Tue, 16 Jun 2009 12:05:18 +0000</pubDate>
		<guid isPermaLink="false">http://msinilo.pl/blog/?p=401#comment-12163</guid>
		<description>You missed one factor in the testing. You had 1024 elements of the same object so vtable was cached in L1/L2. The question is of course how you&#039;ll use objects and how many vtables will be involved. In real life app difference between vtable and direct should be much bigger. Storing pointer in object may have advantage as it will be read along with object but still, it will not be as fast as direct.

The biggest performance problem is that virtual functions are not inlined and pushing input parameters through stack (at least on PC) will have much bigger impact than calling function from vtable.</description>
		<content:encoded><![CDATA[<p>You missed one factor in the testing. You had 1024 elements of the same object so vtable was cached in L1/L2. The question is of course how you&#8217;ll use objects and how many vtables will be involved. In real life app difference between vtable and direct should be much bigger. Storing pointer in object may have advantage as it will be read along with object but still, it will not be as fast as direct.</p>
<p>The biggest performance problem is that virtual functions are not inlined and pushing input parameters through stack (at least on PC) will have much bigger impact than calling function from vtable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: J</title>
		<link>http://msinilo.pl/blog/?p=401&#038;cpage=1#comment-12151</link>
		<dc:creator>J</dc:creator>
		<pubDate>Mon, 15 Jun 2009 04:28:15 +0000</pubDate>
		<guid isPermaLink="false">http://msinilo.pl/blog/?p=401#comment-12151</guid>
		<description>I suggest that you convert the tics into something more human readable. In this incarnation, it&#039;s difficult to even see how their orders of magnitude compare.</description>
		<content:encoded><![CDATA[<p>I suggest that you convert the tics into something more human readable. In this incarnation, it&#8217;s difficult to even see how their orders of magnitude compare.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
