<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-1700157236206200597.post1873044110438895960..comments</id><updated>2010-07-30T07:21:08.276-07:00</updated><category term='ruby'/><category term='linq'/><category term='clojure'/><category term='erlang'/><category term='programming'/><category term='continuation'/><category term='decorator'/><category term='manycore'/><category term='monad'/><category term='actor'/><category term='events'/><category term='parsing'/><category term='osx'/><category term='concurrency'/><category term='mutability'/><category term='c#'/><category term='turing'/><category term='shareever'/><category term='iterator'/><category term='sql'/><category term='python'/><category term='rx'/><category term='bits'/><category term='haskell'/><category term='reactive'/><category term='imagemagick'/><category term='productivity'/><category term='automation'/><category term='enumerator'/><category term='mediserve'/><category term='wes'/><category term='dtrace'/><category term='message-passing'/><category term='generator'/><title type='text'>Comments on Valued Lessons: Python Memory Usage: What values are taking up so ...</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.valuedlessons.com/feeds/1873044110438895960/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1700157236206200597/1873044110438895960/comments/default'/><link rel='alternate' type='text/html' href='http://www.valuedlessons.com/2008/10/blog-post.html'/><author><name>Peter Thatcher</name><uri>http://www.blogger.com/profile/01092342988993218446</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1700157236206200597.post-7440717081749363983</id><published>2010-07-30T07:21:08.276-07:00</published><updated>2010-07-30T07:21:08.276-07:00</updated><title type='text'>I am getting wildly bigger values. Try this:

#!/b...</title><content type='html'>I am getting wildly bigger values. Try this:&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;(&lt;br /&gt;exec &amp;gt;test.py&lt;br /&gt;echo &amp;quot;\&lt;br /&gt;#!/usr/bin/python&lt;br /&gt;import time&amp;quot;&lt;br /&gt;i=300000&lt;br /&gt;while test $i != 0; do&lt;br /&gt;    echo &amp;quot;i$i=$i&amp;quot;&lt;br /&gt;    : $((i--))&lt;br /&gt;done&lt;br /&gt;echo &amp;quot;time.sleep(3)&amp;quot;&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;chmod 755 test.py&lt;br /&gt;echo &amp;quot;Before: `grep ^MemFree: /proc/meminfo`&amp;quot;&lt;br /&gt;./test.py &amp;amp;&lt;br /&gt;sleep 1&lt;br /&gt;echo &amp;quot;During: `grep ^MemFree: /proc/meminfo`&amp;quot;&lt;br /&gt;sleep 1&lt;br /&gt;echo &amp;quot;During: `grep ^MemFree: /proc/meminfo`&amp;quot;&lt;br /&gt;sleep 1&lt;br /&gt;echo &amp;quot;During: `grep ^MemFree: /proc/meminfo`&amp;quot;&lt;br /&gt;sleep 1&lt;br /&gt;echo &amp;quot;During: `grep ^MemFree: /proc/meminfo`&amp;quot;&lt;br /&gt;sleep 1&lt;br /&gt;echo &amp;quot;During: `grep ^MemFree: /proc/meminfo`&amp;quot;&lt;br /&gt;sleep 1&lt;br /&gt;echo &amp;quot;During: `grep ^MemFree: /proc/meminfo`&amp;quot;&lt;br /&gt;sleep 1&lt;br /&gt;echo &amp;quot;During: `grep ^MemFree: /proc/meminfo`&amp;quot;&lt;br /&gt;sleep 1&lt;br /&gt;echo &amp;quot;During: `grep ^MemFree: /proc/meminfo`&amp;quot;&lt;br /&gt;sleep 1&lt;br /&gt;echo &amp;quot;During: `grep ^MemFree: /proc/meminfo`&amp;quot;&lt;br /&gt;wait&lt;br /&gt;echo &amp;quot;After:  `grep ^MemFree: /proc/meminfo`&amp;quot;&lt;br /&gt;&lt;br /&gt;# i=100000, output on my machine (x86-64):&lt;br /&gt;#Before: MemFree:          308688 kB&lt;br /&gt;#During: MemFree:          252144 kB&lt;br /&gt;#During: MemFree:          227460 kB&lt;br /&gt;#During: MemFree:          227468 kB&lt;br /&gt;#During: MemFree:          227460 kB&lt;br /&gt;#After:  MemFree:          308200 kB&lt;br /&gt;# Thus, (308200-227460)/100 = 807 bytes per each int variable&lt;br /&gt;&lt;br /&gt;# i=300000&lt;br /&gt;#Before: MemFree:         1007572 kB&lt;br /&gt;#During: MemFree:          695952 kB&lt;br /&gt;#During: MemFree:          421548 kB&lt;br /&gt;#During: MemFree:          851084 kB&lt;br /&gt;#During: MemFree:          835708 kB&lt;br /&gt;#During: MemFree:          808800 kB&lt;br /&gt;#During: MemFree:          795656 kB&lt;br /&gt;#During: MemFree:          795656 kB&lt;br /&gt;#During: MemFree:          795648 kB&lt;br /&gt;#During: MemFree:          795656 kB&lt;br /&gt;#After:  MemFree:         1007448 kB&lt;br /&gt;# Thus, (1007448-795648)/300 = 706 bytes per each int variable</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1700157236206200597/1873044110438895960/comments/default/7440717081749363983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1700157236206200597/1873044110438895960/comments/default/7440717081749363983'/><link rel='alternate' type='text/html' href='http://www.valuedlessons.com/2008/10/blog-post.html?showComment=1280499668276#c7440717081749363983' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.valuedlessons.com/2008/10/blog-post.html' ref='tag:blogger.com,1999:blog-1700157236206200597.post-1873044110438895960' source='http://www.blogger.com/feeds/1700157236206200597/posts/default/1873044110438895960' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-706065857'/></entry><entry><id>tag:blogger.com,1999:blog-1700157236206200597.post-6718464845407264498</id><published>2009-09-02T07:27:18.776-07:00</published><updated>2009-09-02T07:27:18.776-07:00</updated><title type='text'>Oops, I should have read the preceding comments be...</title><content type='html'>Oops, I should have read the preceding comments before posting mine! Sorry.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1700157236206200597/1873044110438895960/comments/default/6718464845407264498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1700157236206200597/1873044110438895960/comments/default/6718464845407264498'/><link rel='alternate' type='text/html' href='http://www.valuedlessons.com/2008/10/blog-post.html?showComment=1251901638776#c6718464845407264498' title=''/><author><name>Gary Robinson</name><uri>http://www.garyrobinson.net</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.valuedlessons.com/2008/10/blog-post.html' ref='tag:blogger.com,1999:blog-1700157236206200597.post-1873044110438895960' source='http://www.blogger.com/feeds/1700157236206200597/posts/default/1873044110438895960' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1377773986'/></entry><entry><id>tag:blogger.com,1999:blog-1700157236206200597.post-4993628964173724520</id><published>2009-09-02T05:25:55.701-07:00</published><updated>2009-09-02T05:25:55.701-07:00</updated><title type='text'>It would be interesting to see the exact same test...</title><content type='html'>It would be interesting to see the exact same test run with a new-style class with __slots__ to eliminate the __dict__ attribute. According to your chart, the instance takes up 345 bytes, but the __dict__ should be taking up 298 of that; that that is eliminated when you use __slots__.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1700157236206200597/1873044110438895960/comments/default/4993628964173724520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1700157236206200597/1873044110438895960/comments/default/4993628964173724520'/><link rel='alternate' type='text/html' href='http://www.valuedlessons.com/2008/10/blog-post.html?showComment=1251894355701#c4993628964173724520' title=''/><author><name>Gary Robinson</name><uri>http://www.garyrobinson.net</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.valuedlessons.com/2008/10/blog-post.html' ref='tag:blogger.com,1999:blog-1700157236206200597.post-1873044110438895960' source='http://www.blogger.com/feeds/1700157236206200597/posts/default/1873044110438895960' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-851215558'/></entry><entry><id>tag:blogger.com,1999:blog-1700157236206200597.post-359589099912218443</id><published>2009-09-02T04:11:51.468-07:00</published><updated>2009-09-02T04:11:51.468-07:00</updated><title type='text'>Wow Gary! I tried that too and it came to about a ...</title><content type='html'>Wow Gary! I tried that too and it came to about a quarter the size of virtual memory. This is way over my head but clearly indicates that __slots__ might be the way forward when memory matters.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1700157236206200597/1873044110438895960/comments/default/359589099912218443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1700157236206200597/1873044110438895960/comments/default/359589099912218443'/><link rel='alternate' type='text/html' href='http://www.valuedlessons.com/2008/10/blog-post.html?showComment=1251889911468#c359589099912218443' title=''/><author><name>peterbe</name><uri>http://www.blogger.com/profile/02454160645313349401</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.valuedlessons.com/2008/10/blog-post.html' ref='tag:blogger.com,1999:blog-1700157236206200597.post-1873044110438895960' source='http://www.blogger.com/feeds/1700157236206200597/posts/default/1873044110438895960' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-724914970'/></entry><entry><id>tag:blogger.com,1999:blog-1700157236206200597.post-642200848758948135</id><published>2008-11-21T11:42:00.000-08:00</published><updated>2008-11-21T11:42:00.000-08:00</updated><title type='text'>Fun - I was just playing with the same sort of thi...</title><content type='html'>Fun - I was just playing with the same sort of thing and came to a similar conclusion.  One item that&amp;#39;s useful is a slotted new style object:&lt;BR/&gt;&lt;BR/&gt;class Foo(object):&lt;BR/&gt;  __slots__ = []&lt;BR/&gt;&lt;BR/&gt;These come out to be (on average) slightly greater than 16 bytes / each.  &lt;BR/&gt;&lt;BR/&gt;If you add values:&lt;BR/&gt;&lt;BR/&gt;class Foo(object):&lt;BR/&gt;  __slots__ = [&amp;#39;a&amp;#39;,&amp;#39;b&amp;#39;]&lt;BR/&gt;  def __init__(self):&lt;BR/&gt;    self.a = None&lt;BR/&gt;    self.b = None&lt;BR/&gt;&lt;BR/&gt;They come out to be ~65 bytes each.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1700157236206200597/1873044110438895960/comments/default/642200848758948135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1700157236206200597/1873044110438895960/comments/default/642200848758948135'/><link rel='alternate' type='text/html' href='http://www.valuedlessons.com/2008/10/blog-post.html?showComment=1227296520000#c642200848758948135' title=''/><author><name>Gary Godfrey</name><uri>http://www.blogger.com/profile/06334836194124587737</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.valuedlessons.com/2008/10/blog-post.html' ref='tag:blogger.com,1999:blog-1700157236206200597.post-1873044110438895960' source='http://www.blogger.com/feeds/1700157236206200597/posts/default/1873044110438895960' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1547874609'/></entry></feed>
