<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: The Memory Barrier: Poll results, Comments, Solutions.</title>
	<atom:link href="http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/feed/" rel="self" type="application/rss+xml" />
	<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/</link>
	<description>...On the Wings of the Software Wind</description>
	<lastBuildDate>Mon, 15 Mar 2010 00:52:40 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Wings of Wind</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-1331</link>
		<dc:creator>Wings of Wind</dc:creator>
		<pubDate>Wed, 21 Oct 2009 07:54:11 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-1331</guid>
		<description>Good to hear!

Meanwhile Allen Bauer shared with us the information that the team works in parallel at 64bit as well as cross-platform.</description>
		<content:encoded><![CDATA[<p>Good to hear!</p>
<p>Meanwhile Allen Bauer shared with us the information that the team works in parallel at 64bit as well as cross-platform.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raymond Wilson</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-1323</link>
		<dc:creator>Raymond Wilson</dc:creator>
		<pubDate>Tue, 20 Oct 2009 18:43:03 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-1323</guid>
		<description>After some small amount of coding, I now have an L2 layer for our DB that utilises the &#039;temporary&#039; temp file approach mentioned above.

It isn&#039;t as nice as a proper 64 bit memory addressing solution, but will certainly improve things.</description>
		<content:encoded><![CDATA[<p>After some small amount of coding, I now have an L2 layer for our DB that utilises the &#8216;temporary&#8217; temp file approach mentioned above.</p>
<p>It isn&#8217;t as nice as a proper 64 bit memory addressing solution, but will certainly improve things.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wings of Wind</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-1318</link>
		<dc:creator>Wings of Wind</dc:creator>
		<pubDate>Tue, 20 Oct 2009 15:52:45 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-1318</guid>
		<description>Yes, sure.</description>
		<content:encoded><![CDATA[<p>Yes, sure.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Polprav</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-1313</link>
		<dc:creator>Polprav</dc:creator>
		<pubDate>Tue, 20 Oct 2009 11:47:18 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-1313</guid>
		<description>Hello from Russia!
Can I quote a post in your blog with the link to you?</description>
		<content:encoded><![CDATA[<p>Hello from Russia!<br />
Can I quote a post in your blog with the link to you?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wings of Wind</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-1026</link>
		<dc:creator>Wings of Wind</dc:creator>
		<pubDate>Fri, 02 Oct 2009 10:18:41 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-1026</guid>
		<description>Yes (unfortunately). Microsoft policy to push the users to higher SKUs. Exactly the same behavior is on WinXP 32bit. Not that technically wouldn&#039;t work, just that it&#039;s disabled because of &quot;commercial issues&quot; (TM).</description>
		<content:encoded><![CDATA[<p>Yes (unfortunately). Microsoft policy to push the users to higher SKUs. Exactly the same behavior is on WinXP 32bit. Not that technically wouldn&#8217;t work, just that it&#8217;s disabled because of &#8220;commercial issues&#8221; (TM).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alan C</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-1025</link>
		<dc:creator>Alan C</dc:creator>
		<pubDate>Fri, 02 Oct 2009 09:57:54 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-1025</guid>
		<description>Splitting it up might be doable.  I tried the code in the article and it fails with 

&quot;Cannot enable SE_LOCK_MEMORY privilege, please check the local policy.&quot;

After some research I&#039;ve found that under Vista Home Premium (which I&#039;m using) you can&#039;t enable this privilege, because you can&#039;t change the local policy.  Hard to believe but apparently true - at least I couldn&#039;t find any way to do it.  If that&#039;s the case, then I don&#039;t think AWE can be used on this OS version.

I&#039;ll try it on a Vista Business machine if I get the chance.</description>
		<content:encoded><![CDATA[<p>Splitting it up might be doable.  I tried the code in the article and it fails with </p>
<p>&#8220;Cannot enable SE_LOCK_MEMORY privilege, please check the local policy.&#8221;</p>
<p>After some research I&#8217;ve found that under Vista Home Premium (which I&#8217;m using) you can&#8217;t enable this privilege, because you can&#8217;t change the local policy.  Hard to believe but apparently true &#8211; at least I couldn&#8217;t find any way to do it.  If that&#8217;s the case, then I don&#8217;t think AWE can be used on this OS version.</p>
<p>I&#8217;ll try it on a Vista Business machine if I get the chance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wings of Wind</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-948</link>
		<dc:creator>Wings of Wind</dc:creator>
		<pubDate>Sun, 27 Sep 2009 07:25:13 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-948</guid>
		<description>&lt;em&gt;&quot;Once again, I would like to know how much votes you received&quot;&lt;/em&gt;

...hehehe... ~ 200. Much less than on the other questions where we had till 1350. Ken was right: many of them even didn&#039;t bother to vote - sign that  this problem &lt;em&gt;generally speaking&lt;/em&gt; isn&#039;t so stringent to the community. So, even if Embarcadero will put such a poll in Delphi&#039;s welcome page I don&#039;t think that the results will be different. Many of them will just not vote (due of the nature of the question) and, perhaps, some of them will be annoyed.</description>
		<content:encoded><![CDATA[<p><em>&#8220;Once again, I would like to know how much votes you received&#8221;</em></p>
<p>&#8230;hehehe&#8230; ~ 200. Much less than on the other questions where we had till 1350. Ken was right: many of them even didn&#8217;t bother to vote &#8211; sign that  this problem <em>generally speaking</em> isn&#8217;t so stringent to the community. So, even if Embarcadero will put such a poll in Delphi&#8217;s welcome page I don&#8217;t think that the results will be different. Many of them will just not vote (due of the nature of the question) and, perhaps, some of them will be annoyed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fritz Franz</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-947</link>
		<dc:creator>Fritz Franz</dc:creator>
		<pubDate>Sat, 26 Sep 2009 10:51:02 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-947</guid>
		<description>Once again, I would like to know how much votes you received - 20% of how many? If you discern between 20 and 21 I guess there were at least 100 votes - but I hope, there are quite more delphi programmers out there ;-)

I think Embarcadero should launch such a poll from the welcome page in delphi - so at least all users of delphi 2005 and ahead would be noticed about such a poll. So it should be more representative, I guess.

But please: do what all serious inquiry companies do: mention the absolute size of of the probe!

Regards, Fritz</description>
		<content:encoded><![CDATA[<p>Once again, I would like to know how much votes you received &#8211; 20% of how many? If you discern between 20 and 21 I guess there were at least 100 votes &#8211; but I hope, there are quite more delphi programmers out there <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>I think Embarcadero should launch such a poll from the welcome page in delphi &#8211; so at least all users of delphi 2005 and ahead would be noticed about such a poll. So it should be more representative, I guess.</p>
<p>But please: do what all serious inquiry companies do: mention the absolute size of of the probe!</p>
<p>Regards, Fritz</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jolyon Smith</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-946</link>
		<dc:creator>Jolyon Smith</dc:creator>
		<pubDate>Sat, 26 Sep 2009 07:14:32 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-946</guid>
		<description>You forgot to mention another important factor:

If you have lots of strings and don&#039;t need Unicode then either stay on Delphi 2007 or earlier or go through your code and change all your &quot;string&quot; and &quot;char&quot; declarations to &quot;ANSIString&quot; and &quot;ANSIChar&quot;.

In the All-Unicode-or-Nothing default behaviour of Delphi 2009+, every string in your application will occupy more than DOUBLE the amount of memory that it would occupy in Delphi 2007.

MORE than double because in 2009+ there are additional payload descriptor fields in addition to each character occupying 2 bytes rather than 1.  That additional descriptor data also applies to ANSIStrings, so *every* string in Delphi 2009+ occupies more memory, but ANSI strings will incur *only* the additional descriptor but the string data itself is the same size as in 2007 and earlier.


But I would caution against asking for a &quot;quick&quot; solution to 64-bit.

The approach to Unicode was arguably determined by a desire to get it out quick and to make it quick for people to migrate.

Both were a mistake imho and have resulted in a compromised implementation that suits nobody, least of all anyone that wishes to *correctly* implement Unicode support in a Delphi application and even less for anyone for whom Unicode was/is simply irrelevant to their needs.</description>
		<content:encoded><![CDATA[<p>You forgot to mention another important factor:</p>
<p>If you have lots of strings and don&#8217;t need Unicode then either stay on Delphi 2007 or earlier or go through your code and change all your &#8220;string&#8221; and &#8220;char&#8221; declarations to &#8220;ANSIString&#8221; and &#8220;ANSIChar&#8221;.</p>
<p>In the All-Unicode-or-Nothing default behaviour of Delphi 2009+, every string in your application will occupy more than DOUBLE the amount of memory that it would occupy in Delphi 2007.</p>
<p>MORE than double because in 2009+ there are additional payload descriptor fields in addition to each character occupying 2 bytes rather than 1.  That additional descriptor data also applies to ANSIStrings, so *every* string in Delphi 2009+ occupies more memory, but ANSI strings will incur *only* the additional descriptor but the string data itself is the same size as in 2007 and earlier.</p>
<p>But I would caution against asking for a &#8220;quick&#8221; solution to 64-bit.</p>
<p>The approach to Unicode was arguably determined by a desire to get it out quick and to make it quick for people to migrate.</p>
<p>Both were a mistake imho and have resulted in a compromised implementation that suits nobody, least of all anyone that wishes to *correctly* implement Unicode support in a Delphi application and even less for anyone for whom Unicode was/is simply irrelevant to their needs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raymond Wilson</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-945</link>
		<dc:creator>Raymond Wilson</dc:creator>
		<pubDate>Sat, 26 Sep 2009 06:40:45 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-945</guid>
		<description>Actually, this looks like a very workable solution for us in the meantime. 

Our DB architecture already has a caching layer on top of the file system database, and I could definitely create an L2 cache to store DB information in a more raw form...</description>
		<content:encoded><![CDATA[<p>Actually, this looks like a very workable solution for us in the meantime. </p>
<p>Our DB architecture already has a caching layer on top of the file system database, and I could definitely create an L2 cache to store DB information in a more raw form&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xepol</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-944</link>
		<dc:creator>Xepol</dc:creator>
		<pubDate>Sat, 26 Sep 2009 05:29:32 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-944</guid>
		<description>It would be interesting to see what sort of performance benefits could come from not having to thunk between a 32bit app and a 64 bit kernel with each and ever single call the application makes.

Memory pressures aside, that might (or might not) make a compelling case all on its own.

I can&#039;t say I have seen anyone discuss the topic yet (not that I follow it that extensively)</description>
		<content:encoded><![CDATA[<p>It would be interesting to see what sort of performance benefits could come from not having to thunk between a 32bit app and a 64 bit kernel with each and ever single call the application makes.</p>
<p>Memory pressures aside, that might (or might not) make a compelling case all on its own.</p>
<p>I can&#8217;t say I have seen anyone discuss the topic yet (not that I follow it that extensively)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: edoardo</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-942</link>
		<dc:creator>edoardo</dc:creator>
		<pubDate>Fri, 25 Sep 2009 20:43:40 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-942</guid>
		<description>If you use records you can save memory if you pay attention in the way you sequence the fields on it.
For istance the following two records contain the same information but the first (A) needs 32 byte while the second (B) only 20:
TRecA = record
  R1:  integer;
  R2:  byte;
  R3:  integer;
  R4:  byte;
  R5:  integer;
  R6:  byte;
  R7:  integer;
  R8:  byte;
end;

TRecB = record
  R1:  integer;
  R3:  integer;
  R5:  integer;
  R7:  integer;
  R2:  byte;
  R4:  byte;
  R6:  byte;
  R8:  byte;
end;</description>
		<content:encoded><![CDATA[<p>If you use records you can save memory if you pay attention in the way you sequence the fields on it.<br />
For istance the following two records contain the same information but the first (A) needs 32 byte while the second (B) only 20:<br />
TRecA = record<br />
  R1:  integer;<br />
  R2:  byte;<br />
  R3:  integer;<br />
  R4:  byte;<br />
  R5:  integer;<br />
  R6:  byte;<br />
  R7:  integer;<br />
  R8:  byte;<br />
end;</p>
<p>TRecB = record<br />
  R1:  integer;<br />
  R3:  integer;<br />
  R5:  integer;<br />
  R7:  integer;<br />
  R2:  byte;<br />
  R4:  byte;<br />
  R6:  byte;<br />
  R8:  byte;<br />
end;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: LDS</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-941</link>
		<dc:creator>LDS</dc:creator>
		<pubDate>Fri, 25 Sep 2009 19:54:33 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-941</guid>
		<description>You can pack record, but you can&#039;t pack instances. AFAIK instances are always aligned.</description>
		<content:encoded><![CDATA[<p>You can pack record, but you can&#8217;t pack instances. AFAIK instances are always aligned.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Firebird News &#187; &#8220;The memory barrier&#8221; &#8211; post mentions Firebird</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-940</link>
		<dc:creator>Firebird News &#187; &#8220;The memory barrier&#8221; &#8211; post mentions Firebird</dc:creator>
		<pubDate>Fri, 25 Sep 2009 19:46:24 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-940</guid>
		<description>[...] the full post.   (No Ratings Yet) &#160;Loading ... Permalink Leave your comment [...]</description>
		<content:encoded><![CDATA[<p>[...] the full post.   (No Ratings Yet) &nbsp;Loading &#8230; Permalink Leave your comment [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wings of Wind</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-936</link>
		<dc:creator>Wings of Wind</dc:creator>
		<pubDate>Fri, 25 Sep 2009 16:53:00 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-936</guid>
		<description>Someone who is fighting with the memory barrier reported us privately that it gained approx. 30% memory savings from switching from objects to records. But I don&#039;t know the architecture of its application though.</description>
		<content:encoded><![CDATA[<p>Someone who is fighting with the memory barrier reported us privately that it gained approx. 30% memory savings from switching from objects to records. But I don&#8217;t know the architecture of its application though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wings of Wind</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-935</link>
		<dc:creator>Wings of Wind</dc:creator>
		<pubDate>Fri, 25 Sep 2009 16:51:21 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-935</guid>
		<description>Also, in order to not depend on a big continuous memory block you can have split your data on more mapped files (depending on your application).</description>
		<content:encoded><![CDATA[<p>Also, in order to not depend on a big continuous memory block you can have split your data on more mapped files (depending on your application).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wings of Wind</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-934</link>
		<dc:creator>Wings of Wind</dc:creator>
		<pubDate>Fri, 25 Sep 2009 16:50:18 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-934</guid>
		<description>The legend is (in this order):

1. Yessss!!! Now!!! ...but this doesn&#039;t mean that real 64bit is canceled
2. No, need real 64bit
3. Neutral, do as you wish
4. Perhaps is better to focus your resources on cross-platform first
5. If the next release will have this only and cross-platform it will be ok.
6. Moderately favorable.
7. Totally against.
8. Other</description>
		<content:encoded><![CDATA[<p>The legend is (in this order):</p>
<p>1. Yessss!!! Now!!! &#8230;but this doesn&#8217;t mean that real 64bit is canceled<br />
2. No, need real 64bit<br />
3. Neutral, do as you wish<br />
4. Perhaps is better to focus your resources on cross-platform first<br />
5. If the next release will have this only and cross-platform it will be ok.<br />
6. Moderately favorable.<br />
7. Totally against.<br />
8. Other</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rommel</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-933</link>
		<dc:creator>rommel</dc:creator>
		<pubDate>Fri, 25 Sep 2009 11:51:28 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-933</guid>
		<description>Use files with attribute FILE_ATTRIBUTE_TEMPORARY. Wrap this inside a TFileStream to give you potentially huge in memory buffers.

http://blogs.msdn.com/larryosterman/archive/2004/04/19/116084.aspx</description>
		<content:encoded><![CDATA[<p>Use files with attribute FILE_ATTRIBUTE_TEMPORARY. Wrap this inside a TFileStream to give you potentially huge in memory buffers.</p>
<p><a href="http://blogs.msdn.com/larryosterman/archive/2004/04/19/116084.aspx" rel="nofollow">http://blogs.msdn.com/larryosterman/archive/2004/04/19/116084.aspx</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cobus Kruger</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-932</link>
		<dc:creator>Cobus Kruger</dc:creator>
		<pubDate>Fri, 25 Sep 2009 11:49:43 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-932</guid>
		<description>Nice article. I am a bit bemused by the following though: &quot;An important memory saver is using records instead of objects.&quot;

Objects are implemented as a pointer to a record structure. If you need lots of instances and your record is really, really small (in which case packed won&#039;t make much of a difference either), then the three additional pointers (one for the object, one for the VMT and one for the monitor) will probably be a deal breaker. But if the record is quite sizeable, these are probably the least of your problems.</description>
		<content:encoded><![CDATA[<p>Nice article. I am a bit bemused by the following though: &#8220;An important memory saver is using records instead of objects.&#8221;</p>
<p>Objects are implemented as a pointer to a record structure. If you need lots of instances and your record is really, really small (in which case packed won&#8217;t make much of a difference either), then the three additional pointers (one for the object, one for the VMT and one for the monitor) will probably be a deal breaker. But if the record is quite sizeable, these are probably the least of your problems.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ahmoy</title>
		<link>http://wings-of-wind.com/2009/09/25/the-memory-barrier-poll-results-comments-solutions/comment-page-1/#comment-930</link>
		<dc:creator>ahmoy</dc:creator>
		<pubDate>Fri, 25 Sep 2009 10:42:13 +0000</pubDate>
		<guid isPermaLink="false">http://wings-of-wind.com/?p=323#comment-930</guid>
		<description>your article makes me eagerly want to do my research using delphi again!!!</description>
		<content:encoded><![CDATA[<p>your article makes me eagerly want to do my research using delphi again!!!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
