Changeset 345
- Timestamp:
- 06/21/08 21:57:45 (4 years ago)
- Location:
- hodgestar/Talks/PythonObjects/html
- Files:
-
- 11 modified
-
pyobjects-0.html (modified) (1 diff)
-
pyobjects-1.html (modified) (1 diff)
-
pyobjects-10.html (modified) (1 diff)
-
pyobjects-2.html (modified) (3 diffs)
-
pyobjects-3.html (modified) (1 diff)
-
pyobjects-4.html (modified) (1 diff)
-
pyobjects-5.html (modified) (1 diff)
-
pyobjects-6.html (modified) (1 diff)
-
pyobjects-7.html (modified) (1 diff)
-
pyobjects-8.html (modified) (1 diff)
-
pyobjects-9.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
hodgestar/Talks/PythonObjects/html/pyobjects-0.html
r340 r345 1 1 <html> 2 2 <head> 3 <title>Everything You Didn't Want to Know n About Python Objects</title>3 <title>Everything You Didn't Want to Know about Python Objects</title> 4 4 <link rel="stylesheet" type="text/css" href="main.css" /> 5 5 <link rel="stylesheet" type="text/css" href="pygment.css" /> 6 6 </head> 7 7 <body> 8 <h2>Everything You Didn't Want to Know n About Python Objects</h2>8 <h2>Everything You Didn't Want to Know about Python Objects</h2> 9 9 <ol> 10 <li><a href='pyobjects-1.html'>Everything You Didn't Want to Know n About Python Objects</a></li>10 <li><a href='pyobjects-1.html'>Everything You Didn't Want to Know about Python Objects</a></li> 11 11 <li><a href='pyobjects-2.html'>Out With The Old ...</a></li> 12 12 <li><a href='pyobjects-3.html'>Gambolling With Slots</a></li> 13 <li><a href='pyobjects-4.html'>Strings</a></li> 14 <li><a href='pyobjects-5.html'>Find Big Dict</a></li> 15 <li><a href='pyobjects-6.html'>Ints</a></li> 16 <li><a href='pyobjects-7.html'>Int (speed)</a></li> 17 <li><a href='pyobjects-8.html'>Floats</a></li> 18 <li><a href='pyobjects-9.html'>PyObject C API</a></li> 19 <li><a href='pyobjects-10.html'>object.c</a></li> 20 <li><a href='pyobjects-11.html'>New Python Documents - ZOMG!</a></li> 13 <li><a href='pyobjects-4.html'>object.c</a></li> 14 <li><a href='pyobjects-5.html'>Strings</a></li> 15 <li><a href='pyobjects-6.html'>Find Big Dict</a></li> 16 <li><a href='pyobjects-7.html'>Ints</a></li> 17 <li><a href='pyobjects-8.html'>Int (speed)</a></li> 18 <li><a href='pyobjects-9.html'>Floats</a></li> 19 <li><a href='pyobjects-10.html'>C API Documentation</a></li> 21 20 </ol> 22 21 <br /></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-1.html
r330 r345 1 1 <html> 2 2 <head> 3 <title>Everything You Didn't Want to Know n About Python Objects</title>3 <title>Everything You Didn't Want to Know about Python Objects</title> 4 4 <link rel="stylesheet" type="text/css" href="main.css" /> 5 5 <link rel="stylesheet" type="text/css" href="pygment.css" /> 6 6 </head> 7 7 <body> 8 Prev | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-2.html">Next</a><h1><center>Everything You Didn't Want to Known About Python Objects</center></h1><center><li>in which I chronicle my recent findings in the depths of Object/object.c</li> 9 </center><br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html> 8 <div style='margin: auto; width: 50%;'><h1>Everything You Didn't Want to Know about Python Objects</h1><ul style='list-style-type: none;'> 9 <li>in which I chronicle my recent findings in the depths of Object/object.c</li> 10 </ul> 11 </div>Prev | <a href="pyobjects-0.html">Index</a> | <a accesskey="K" href="pyobjects-2.html">Next</a><br /><div class="footer" style="font-style: italic;"><hr />Everything You Didn't Want to Know about Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-10.html
r340 r345 1 1 <html> 2 2 <head> 3 <title>Everything You Didn't Want to Know n About Python Objects</title>3 <title>Everything You Didn't Want to Know about Python Objects</title> 4 4 <link rel="stylesheet" type="text/css" href="main.css" /> 5 5 <link rel="stylesheet" type="text/css" href="pygment.css" /> 6 6 </head> 7 7 <body> 8 <a accesskey="P" href="pyobjects-9.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-11.html">Next</a><div style='margin: auto; width: 50%;'><h2>object.c</h2><ul> 9 <li><img src='tabs.png' alt='' /></li> 8 <div style='margin: auto; width: 50%;'><h2>C API Documentation</h2><ul> 9 <li>PyObject API:<ul><li>List of methods unchanged between 2.5, 2.6 and 3.0</li> 10 </ul></li> 11 12 <li>New documentation!<ul><li>Interactive search -- in static HTML</li> 13 14 <li>JSON index</li> 15 16 <li><a href="file:///home/simon/LocalProjects/PythonSpint/trunk/Doc/build/html/index.html">2.6 Docs</a></li> 17 </ul></li> 10 18 </ul> 11 </div>< br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html>19 </div><a accesskey="J" href="pyobjects-9.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | Next<br /><div class="footer" style="font-style: italic;"><hr />Everything You Didn't Want to Know about Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-2.html
r340 r345 1 1 <html> 2 2 <head> 3 <title>Everything You Didn't Want to Know n About Python Objects</title>3 <title>Everything You Didn't Want to Know about Python Objects</title> 4 4 <link rel="stylesheet" type="text/css" href="main.css" /> 5 5 <link rel="stylesheet" type="text/css" href="pygment.css" /> 6 6 </head> 7 7 <body> 8 < a accesskey="P" href="pyobjects-1.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-3.html">Next</a><div style='margin: auto; width: 50%;'><h2>Out With The Old ...</h2><ul>8 <div style='margin: auto; width: 50%;'><h2>Out With The Old ...</h2><ul> 9 9 <li>Old style:<div class="highlight"><pre><span class="gp">>>> </span><span class="k">class</span> <span class="nc">Old</span><span class="p">:</span> 10 10 <span class="gp">... </span> <span class="k">pass</span> … … 12 12 <span class="gp">>>> </span><span class="nb">type</span><span class="p">(</span><span class="n">Old</span><span class="p">),</span> <span class="nb">type</span><span class="p">(</span><span class="n">Old</span><span class="p">())</span> 13 13 <span class="go">(<type 'classobj'>, <type 'instance'>)</span> 14 <span class="gp">>>> </span><span class="n">Old</span><span class="o">.</span><span class="n">__class__</span> 15 <span class="gt">Traceback (most recent call last):</span> 16 File <span class="nb">"<stdin>"</span>, line <span class="m">1</span>, in <span class="n-Identifier"><module></span> 17 <span class="nc">AttributeError</span>: <span class="n-Identifier">class Old has no attribute '__class__'</span> 18 <span class="gp">>>> </span><span class="n">Old</span><span class="p">()</span><span class="o">.</span><span class="n">__class__</span> 19 <span class="go"><class util.Old at 0xb7d4e62c></span> 14 20 </pre></div> 15 21 </li> … … 20 26 <span class="gp">>>> </span><span class="nb">type</span><span class="p">(</span><span class="n">New</span><span class="p">),</span> <span class="nb">type</span><span class="p">(</span><span class="n">New</span><span class="p">())</span> 21 27 <span class="go">(<type 'type'>, <class '__main__.New'>)</span> 28 <span class="gp">>>> </span><span class="n">New</span><span class="o">.</span><span class="n">__class__</span> 29 <span class="go"><type 'type'></span> 30 <span class="gp">>>> </span><span class="n">New</span><span class="p">()</span><span class="o">.</span><span class="n">__class__</span> 31 <span class="go"><class 'util.New'></span> 22 32 </pre></div> 23 33 </li> 34 35 <li>Old + __metaclass__ == New</li> 24 36 </ul> 25 </div>< br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html>37 </div><a accesskey="J" href="pyobjects-1.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a accesskey="K" href="pyobjects-3.html">Next</a><br /><div class="footer" style="font-style: italic;"><hr />Everything You Didn't Want to Know about Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-3.html
r340 r345 1 1 <html> 2 2 <head> 3 <title>Everything You Didn't Want to Know n About Python Objects</title>3 <title>Everything You Didn't Want to Know about Python Objects</title> 4 4 <link rel="stylesheet" type="text/css" href="main.css" /> 5 5 <link rel="stylesheet" type="text/css" href="pygment.css" /> 6 6 </head> 7 7 <body> 8 <a accesskey="P" href="pyobjects-2.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-4.html">Next</a><div style='margin: auto; width: 50%;'><h2>Gambolling With Slots</h2><ul> 8 <div style='margin: auto; width: 50%;'><h2>Gambolling With Slots</h2><ul> 9 <li>Adding slots:<div class="highlight"><pre><span class="gp">>>> </span><span class="k">class</span> <span class="nc">FooBar</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> 10 <span class="gp">... </span> <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 11 <span class="gp">... </span> <span class="k">return</span> <span class="s">"foobar"</span> 12 <span class="gp">...</span> 13 <span class="gp">>>> </span> <span class="k">def</span> <span class="nf">__unicode__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> 14 <span class="gp">... </span> <span class="k">return</span> <span class="nb">unicode</span><span class="p">(</span><span class="s">"foobar"</span><span class="p">)</span> 15 <span class="gp">...</span> 16 <span class="gp">>>> </span><span class="nb">str</span><span class="p">(</span><span class="n">FuBar</span><span class="p">),</span> <span class="nb">str</span><span class="p">(</span><span class="n">FuBar</span><span class="p">())</span> 17 <span class="go">("<class 'util.FuBar'>", 'fubar')</span> 18 <span class="gp">>>> </span><span class="nb">unicode</span><span class="p">(</span><span class="n">FuBar</span><span class="p">)</span> 19 <span class="gt">Traceback (most recent call last):</span> 20 File <span class="nb">"<stdin>"</span>, line <span class="m">1</span>, in <span class="n-Identifier"><module></span> 21 <span class="nc">TypeError</span>: <span class="n-Identifier">unbound method __unicode__() must be called with FuBar instance as first argument (got nothing instead)</span> 22 <span class="gp">>>> </span><span class="nb">unicode</span><span class="p">(</span><span class="n">Uni</span><span class="p">())</span> 23 <span class="go">u'fubar'</span> 24 </pre></div> 25 </li> 26 27 <li>Same thing happens with old-style classes.</li> 9 28 </ul> 10 </div>< br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html>29 </div><a accesskey="J" href="pyobjects-2.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a accesskey="K" href="pyobjects-4.html">Next</a><br /><div class="footer" style="font-style: italic;"><hr />Everything You Didn't Want to Know about Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-4.html
r340 r345 1 1 <html> 2 2 <head> 3 <title>Everything You Didn't Want to Know n About Python Objects</title>3 <title>Everything You Didn't Want to Know about Python Objects</title> 4 4 <link rel="stylesheet" type="text/css" href="main.css" /> 5 5 <link rel="stylesheet" type="text/css" href="pygment.css" /> 6 6 </head> 7 7 <body> 8 <a accesskey="P" href="pyobjects-3.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-5.html">Next</a><div style='margin: auto; width: 50%;'><h2>Strings</h2><ul> 9 <li>Examples:<div class="highlight"><pre><span class="gp">>>> </span><span class="n">x</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> 10 <span class="gp">>>> </span><span class="n">y</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> 11 <span class="gp">>>> </span><span class="nb">id</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> 12 <span class="go">(3082874688L, 3082874688L)</span> 13 <span class="gp">>>> </span><span class="n">x</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> <span class="o">+</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">14</span><span class="p">)</span> 14 <span class="gp">>>> </span><span class="n">y</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> <span class="o">+</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">14</span><span class="p">)</span> 15 <span class="gp">>>> </span><span class="nb">id</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> 16 <span class="go">(3077159616L, 3077159584L)</span> 17 <span class="gp">>>> </span><span class="n">x</span> <span class="o">=</span> <span class="s">"a"</span><span class="o">*</span><span class="mf">20</span> 18 <span class="gp">>>> </span><span class="n">y</span> <span class="o">=</span> <span class="s">"a"</span><span class="o">*</span><span class="mf">20</span> 19 <span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="s">"a"</span><span class="o">*</span><span class="mf">21</span> 20 <span class="gp">>>> </span><span class="n">w</span> <span class="o">=</span> <span class="s">"a"</span><span class="o">*</span><span class="mf">21</span> 21 <span class="gp">>>> </span><span class="nb">id</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">y</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">z</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">w</span><span class="p">)</span> 22 <span class="go">(3079663488L, 3079663488L, 3079721328L, 3079721568L)</span> 23 </pre></div> 24 </li> 25 26 <li>Single characters and empty string held in permament cache (Objects/stringobject.c).</li> 27 28 <li>Constants strings of size <= 20 cache by parser (TODO: check).</li> 29 30 <li>PyString_InternInPlace (PyUnicode_InternInPlace in 3.0) results in strings being stored in internal dictionary.<ul><li>Reference in interned not counted in reference count (nasty hack to hide this from users).</li> 31 </ul></li> 32 33 <li>Strings are replaced by Unicode in 3.0</li> 8 <div style='margin: auto; width: 50%;'><h2>object.c</h2><ul style='list-style-type: none;'> 9 <li><img src='tabs.png' alt='' /></li> 34 10 </ul> 35 </div>< br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html>11 </div><a accesskey="J" href="pyobjects-3.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a accesskey="K" href="pyobjects-5.html">Next</a><br /><div class="footer" style="font-style: italic;"><hr />Everything You Didn't Want to Know about Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-5.html
r340 r345 1 1 <html> 2 2 <head> 3 <title>Everything You Didn't Want to Know n About Python Objects</title>3 <title>Everything You Didn't Want to Know about Python Objects</title> 4 4 <link rel="stylesheet" type="text/css" href="main.css" /> 5 5 <link rel="stylesheet" type="text/css" href="pygment.css" /> 6 6 </head> 7 7 <body> 8 <a accesskey="P" href="pyobjects-4.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-6.html">Next</a><div style='margin: auto; width: 50%;'><h2>Find Big Dict</h2><ul> 9 <li>Util:<div class="highlight"><pre><span class="k">def</span> <span class="nf">find_big_dict</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> 10 <span class="k">import</span> <span class="nn">gc</span> 11 <span class="k">for</span> <span class="n">obj</span> <span class="ow">in</span> <span class="n">gc</span><span class="o">.</span><span class="n">get_referrers</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> 12 <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">dict</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="o">></span> <span class="mf">1000</span><span class="p">:</span> 13 <span class="k">return</span> <span class="n">obj</span> 14 <span class="k">return</span> <span class="bp">None</span> 8 <div style='margin: auto; width: 50%;'><h2>Strings</h2><ul> 9 <li>Examples:<div class="highlight"><pre><span class="gp">>>> </span><span class="n">x</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> 10 <span class="gp">>>> </span><span class="n">y</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> 11 <span class="gp">>>> </span><span class="nb">id</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> 12 <span class="go">(3082874688L, 3082874688L)</span> 13 <span class="gp">>>> </span><span class="n">x</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> <span class="o">+</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">14</span><span class="p">)</span> 14 <span class="gp">>>> </span><span class="n">y</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">13</span><span class="p">)</span> <span class="o">+</span> <span class="nb">chr</span><span class="p">(</span><span class="mf">14</span><span class="p">)</span> 15 <span class="gp">>>> </span><span class="nb">id</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">y</span><span class="p">)</span> 16 <span class="go">(3077159616L, 3077159584L)</span> 17 <span class="gp">>>> </span><span class="n">x</span> <span class="o">=</span> <span class="s">"a"</span><span class="o">*</span><span class="mf">20</span> 18 <span class="gp">>>> </span><span class="n">y</span> <span class="o">=</span> <span class="s">"a"</span><span class="o">*</span><span class="mf">20</span> 19 <span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="s">"a"</span><span class="o">*</span><span class="mf">21</span> 20 <span class="gp">>>> </span><span class="n">w</span> <span class="o">=</span> <span class="s">"a"</span><span class="o">*</span><span class="mf">21</span> 21 <span class="gp">>>> </span><span class="nb">id</span><span class="p">(</span><span class="n">x</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">y</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">z</span><span class="p">),</span> <span class="nb">id</span><span class="p">(</span><span class="n">w</span><span class="p">)</span> 22 <span class="go">(3079663488L, 3079663488L, 3079721328L, 3079721568L)</span> 15 23 </pre></div> 16 24 </li> 17 25 18 <li>Example:<div class="highlight"><pre><span class="gp">>>> </span><span class="n">interned</span> <span class="o">=</span> <span class="n">find_big_dict</span><span class="p">(</span><span class="s">"a"</span><span class="p">)</span> 19 </pre></div> 20 </li> 26 <li>Single characters and empty string held in permament cache (Objects/stringobject.c).</li> 21 27 22 <li>Game:<div class="highlight"><pre><span class="gp">>>> </span><span class="k">import</span> <span class="nn">util</span> 23 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">keyword_quiz</span><span class="p">()</span> 24 </pre></div> 25 </li> 28 <li>Constants strings of size <= 20 interned by parser.</li> 29 30 <li>PyString_InternInPlace (PyUnicode_InternInPlace in 3.0) results in strings being stored in internal dictionary.<ul><li>Reference in interned not counted in reference count (nasty hack to hide this from users).</li> 31 </ul></li> 32 33 <li>Strings are replaced by Unicode in 3.0</li> 26 34 </ul> 27 </div>< br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html>35 </div><a accesskey="J" href="pyobjects-4.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a accesskey="K" href="pyobjects-6.html">Next</a><br /><div class="footer" style="font-style: italic;"><hr />Everything You Didn't Want to Know about Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-6.html
r340 r345 1 1 <html> 2 2 <head> 3 <title>Everything You Didn't Want to Know n About Python Objects</title>3 <title>Everything You Didn't Want to Know about Python Objects</title> 4 4 <link rel="stylesheet" type="text/css" href="main.css" /> 5 5 <link rel="stylesheet" type="text/css" href="pygment.css" /> 6 6 </head> 7 7 <body> 8 <a accesskey="P" href="pyobjects-5.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-7.html">Next</a><div style='margin: auto; width: 50%;'><h2>Ints</h2><ul> 9 <li>For efficiency, ints are not malloc'ed singly but in PyIntBlocks.</li> 10 11 <li>Ints are replaced by Longs in 3.0 -- malloc list is gone.</li> 12 13 <li><div class="highlight"><pre><span class="go">Python 2.6a3+ (trunk:64269M, Jun 14 2008, 11:36:56) </span> 14 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 15 <span class="go">5849088.0</span> 16 <span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mf">1000000</span><span class="p">))</span> 17 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 18 <span class="go">22380544.0</span> 19 <span class="gp">>>> </span><span class="k">del</span> <span class="n">z</span> 20 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 21 <span class="go">17879040.0</span> 8 <div style='margin: auto; width: 50%;'><h2>Find Big Dict</h2><ul> 9 <li>Util:<div class="highlight"><pre><span class="k">def</span> <span class="nf">find_big_dict</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> 10 <span class="k">import</span> <span class="nn">gc</span> 11 <span class="k">for</span> <span class="n">obj</span> <span class="ow">in</span> <span class="n">gc</span><span class="o">.</span><span class="n">get_referrers</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> 12 <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">dict</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> <span class="o">></span> <span class="mf">1000</span><span class="p">:</span> 13 <span class="k">return</span> <span class="n">obj</span> 14 <span class="k">return</span> <span class="bp">None</span> 22 15 </pre></div> 23 16 </li> 24 17 25 <li><div class="highlight"><pre><span class="go">Python 3.0a5+ (py3k:64080, Jun 10 2008, 18:22:21)</span> 26 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 27 <span class="go">9302016.0</span> 28 <span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mf">1000000</span><span class="p">))</span> 29 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 30 <span class="go">29011968.0</span> 31 <span class="gp">>>> </span><span class="k">del</span> <span class="n">z</span> 32 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 33 <span class="go">9302016.0</span> 18 <li>Example:<div class="highlight"><pre><span class="gp">>>> </span><span class="n">interned</span> <span class="o">=</span> <span class="n">find_big_dict</span><span class="p">(</span><span class="s">"a"</span><span class="p">)</span> 19 </pre></div> 20 </li> 21 22 <li>Game:<div class="highlight"><pre><span class="gp">>>> </span><span class="k">import</span> <span class="nn">util</span> 23 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">keyword_quiz</span><span class="p">()</span> 34 24 </pre></div> 35 25 </li> 36 26 </ul> 37 </div>< br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html>27 </div><a accesskey="J" href="pyobjects-5.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a accesskey="K" href="pyobjects-7.html">Next</a><br /><div class="footer" style="font-style: italic;"><hr />Everything You Didn't Want to Know about Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-7.html
r340 r345 1 1 <html> 2 2 <head> 3 <title>Everything You Didn't Want to Know n About Python Objects</title>3 <title>Everything You Didn't Want to Know about Python Objects</title> 4 4 <link rel="stylesheet" type="text/css" href="main.css" /> 5 5 <link rel="stylesheet" type="text/css" href="pygment.css" /> 6 6 </head> 7 7 <body> 8 <a accesskey="P" href="pyobjects-6.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-8.html">Next</a><div style='margin: auto; width: 50%;'><h2>Int (speed)</h2><ul> 9 <li><div class="highlight"><pre><span class="go">$ ./python -m timeit "list(x for x in range(2**30,2**30+1000))"</span> 10 <span class="go">10000 loops, best of 3: 176 usec per loop</span> 11 <span class="go">$ ../py3k/python -m timeit "list(x for x in range(2**30,2**30+1000))"</span> 12 <span class="go">1000 loops, best of 3: 202 usec per loop</span> 13 <span class="go">$ ./python -m timeit "list(x for x in range(2**37,2**37+1000))"</span> 14 <span class="go">1000 loops, best of 3: 311 usec per loop</span> 15 <span class="go">$ ../py3k/python -m timeit "list(x for x in range(2**37,2**37+1000))"</span> 16 <span class="go">1000 loops, best of 3: 431 usec per loop</span> 17 <span class="go">$ ./python -m timeit "list(x for x in range(2**63,2**63+1000))"</span> 18 <span class="go">1000 loops, best of 3: 320 usec per loop</span> 19 <span class="go">$ ../py3k/python -m timeit "list(x for x in range(2**63,2**63+1000))"</span> 20 <span class="go">1000 loops, best of 3: 439 usec per loop</span> 8 <div style='margin: auto; width: 50%;'><h2>Ints</h2><ul> 9 <li>For efficiency, ints are not malloc'ed singly but in PyIntBlocks.</li> 10 11 <li>Ints are replaced by Longs in 3.0 -- malloc list is gone.</li> 12 13 <li><div class="highlight"><pre><span class="go">Python 2.6a3+ (trunk:64269M, Jun 14 2008, 11:36:56) </span> 14 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 15 <span class="go">5849088.0</span> 16 <span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mf">1000000</span><span class="p">))</span> 17 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 18 <span class="go">22380544.0</span> 19 <span class="gp">>>> </span><span class="k">del</span> <span class="n">z</span> 20 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 21 <span class="go">17879040.0</span> 22 </pre></div> 23 </li> 24 25 <li><div class="highlight"><pre><span class="go">Python 3.0a5+ (py3k:64080, Jun 10 2008, 18:22:21)</span> 26 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 27 <span class="go">9302016.0</span> 28 <span class="gp">>>> </span><span class="n">z</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mf">1000000</span><span class="p">))</span> 29 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 30 <span class="go">29011968.0</span> 31 <span class="gp">>>> </span><span class="k">del</span> <span class="n">z</span> 32 <span class="gp">>>> </span><span class="n">util</span><span class="o">.</span><span class="n">memory</span><span class="p">()</span> 33 <span class="go">9302016.0</span> 21 34 </pre></div> 22 35 </li> 23 36 </ul> 24 </div>< br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html>37 </div><a accesskey="J" href="pyobjects-6.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a accesskey="K" href="pyobjects-8.html">Next</a><br /><div class="footer" style="font-style: italic;"><hr />Everything You Didn't Want to Know about Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-8.html
r340 r345 1 1 <html> 2 2 <head> 3 <title>Everything You Didn't Want to Know n About Python Objects</title>3 <title>Everything You Didn't Want to Know about Python Objects</title> 4 4 <link rel="stylesheet" type="text/css" href="main.css" /> 5 5 <link rel="stylesheet" type="text/css" href="pygment.css" /> 6 6 </head> 7 7 <body> 8 <a accesskey="P" href="pyobjects-7.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-9.html">Next</a><div style='margin: auto; width: 50%;'><h2>Floats</h2><ul> 9 <li>Like ints in 2.6, only in 3.0 as well.</li> 10 11 <li>You won't get your memory back.</li> 12 13 <li>Maybe we could remove this, run some tests and submit a patch (checking bug tracker first, of course)?</li> 14 15 <li>Perhaps just use numpy?</li> 8 <div style='margin: auto; width: 50%;'><h2>Int (speed)</h2><ul> 9 <li><div class="highlight"><pre><span class="go">$ ./python -m timeit "list(x for x in range(2**30,2**30+1000))"</span> 10 <span class="go">10000 loops, best of 3: 176 usec per loop</span> 11 <span class="go">$ ../py3k/python -m timeit "list(x for x in range(2**30,2**30+1000))"</span> 12 <span class="go">1000 loops, best of 3: 202 usec per loop</span> 13 <span class="go">$ ./python -m timeit "list(x for x in range(2**37,2**37+1000))"</span> 14 <span class="go">1000 loops, best of 3: 311 usec per loop</span> 15 <span class="go">$ ../py3k/python -m timeit "list(x for x in range(2**37,2**37+1000))"</span> 16 <span class="go">1000 loops, best of 3: 431 usec per loop</span> 17 <span class="go">$ ./python -m timeit "list(x for x in range(2**63,2**63+1000))"</span> 18 <span class="go">1000 loops, best of 3: 320 usec per loop</span> 19 <span class="go">$ ../py3k/python -m timeit "list(x for x in range(2**63,2**63+1000))"</span> 20 <span class="go">1000 loops, best of 3: 439 usec per loop</span> 21 </pre></div> 22 </li> 16 23 </ul> 17 </div>< br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html>24 </div><a accesskey="J" href="pyobjects-7.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a accesskey="K" href="pyobjects-9.html">Next</a><br /><div class="footer" style="font-style: italic;"><hr />Everything You Didn't Want to Know about Python Objects</div></body></html> -
hodgestar/Talks/PythonObjects/html/pyobjects-9.html
r340 r345 1 1 <html> 2 2 <head> 3 <title>Everything You Didn't Want to Know n About Python Objects</title>3 <title>Everything You Didn't Want to Know about Python Objects</title> 4 4 <link rel="stylesheet" type="text/css" href="main.css" /> 5 5 <link rel="stylesheet" type="text/css" href="pygment.css" /> 6 6 </head> 7 7 <body> 8 <a accesskey="P" href="pyobjects-8.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a acesskey="N" href="pyobjects-10.html">Next</a><div style='margin: auto; width: 50%;'><h2>PyObject C API</h2><ul> 9 <li>List of methods unchanged between 2.5 and 2.6</li> 8 <div style='margin: auto; width: 50%;'><h2>Floats</h2><ul> 9 <li>Like ints in 2.6, only in 3.0 as well.</li> 10 11 <li>You won't get your memory back.</li> 12 13 <li>Maybe we could remove this, run some tests and submit a patch (checking bug tracker first, of course)?</li> 14 15 <li>Perhaps just use numpy?</li> 10 16 </ul> 11 </div>< br /><div class="footer"><hr />Everything You Didn't Want to Known About Python Objects</div></body></html>17 </div><a accesskey="J" href="pyobjects-8.html">Prev</a> | <a href="pyobjects-0.html">Index</a> | <a accesskey="K" href="pyobjects-10.html">Next</a><br /><div class="footer" style="font-style: italic;"><hr />Everything You Didn't Want to Know about Python Objects</div></body></html>
