<div dir="ltr">Hi All,<div><br></div><div>    Clément and I are mucking about, happy as clams, working on SIsta, the Spur paper (accepted at ISMM 2015) and had occasion to collect some stats.  Since they may be interesting I thought I&#39;d post them.  Clément has read some paper on perfect method hashing in a dynamic context and was curious to know how much space is taken up by methods vs PICs and how many different selectors there are for the populations.  So heres the script and the data collected at four points during execution for the simulator running a Spur test image running a REPL loop:</div><div><br></div><div><div>| used nMethods methodBytes nPICs picBytes nOpenPICs openPICBytes mSelectors cpicSelectors opicSelectors |</div><div>used := methodZone zoneEnd - methodZone freeStart.</div><div>nMethods := methodBytes := nPICs := picBytes := nOpenPICs := openPICBytes := 0.</div><div>mSelectors := Set new.</div><div>cpicSelectors := Set new.</div><div>opicSelectors := Set new.</div><div>methodZone methodsDo:</div><div><span class="" style="white-space:pre">        </span>[:m|</div><div><span class="" style="white-space:pre">        </span>m cmType = CMMethod ifTrue:</div><div><span class="" style="white-space:pre">                </span>[nMethods := nMethods + 1.</div><div><span class="" style="white-space:pre">                </span> methodBytes := methodBytes + m blockSize.</div><div><span class="" style="white-space:pre">                </span> mSelectors add: m selector].</div><div><span class="" style="white-space:pre">        </span>m cmType = CMClosedPIC ifTrue:</div><div><span class="" style="white-space:pre">                </span>[nPICs := nPICs + 1.</div><div><span class="" style="white-space:pre">                </span> picBytes := picBytes + m blockSize.</div><div><span class="" style="white-space:pre">                </span> cpicSelectors add: m selector].</div><div><span class="" style="white-space:pre">        </span>m cmType = CMOpenPIC ifTrue:</div><div><span class="" style="white-space:pre">                </span>[nOpenPICs := nOpenPICs + 1.</div><div><span class="" style="white-space:pre">                </span> openPICBytes := openPICBytes + m blockSize.</div><div><span class="" style="white-space:pre">                </span> opicSelectors add: m selector]].</div><div>{used. nMethods. mSelectors size. methodBytes. methodBytes asFloat / nMethods. nPICs. cpicSelectors size. picBytes. picBytes asFloat / nPICs. nOpenPICs. opicSelectors size. openPICBytes. openPICBytes asFloat / nOpenPICs. (cpicSelectors intersection: opicSelectors) size }</div><div><br></div><div><div>startup to REPL:</div><div>used byes: 587888</div><div><span class="" style="white-space:pre">                        </span>  n<span class="" style="white-space:pre">                </span>n sels<span class="" style="white-space:pre">        </span>    size<span class="" style="white-space:pre">        </span>avg size</div><div>methods:<span class="" style="white-space:pre">        </span><span style="white-space:pre">        </span>1334<span class="" style="white-space:pre">        </span>973<span style="white-space:pre">        </span><span class="" style="white-space:pre">        </span>404328<span class="" style="white-space:pre">        </span>303.1</div><div>cpics:<span class="" style="white-space:pre">                </span>256<span class="" style="white-space:pre">        </span><span style="white-space:pre">        </span>155<span class="" style="white-space:pre">        </span><span style="white-space:pre">        </span>43008<span class="" style="white-space:pre">        </span>168.0</div><div>opics:<span class="" style="white-space:pre">                </span>37<span class="" style="white-space:pre">                </span>37<span class="" style="white-space:pre">                </span>9768<span class="" style="white-space:pre">        </span>264.0</div><div>both:<span class="" style="white-space:pre">                </span>36</div></div><div><div><br class="">evaluate 3+4:</div><div>used bytes: 588800</div><div><span class="" style="white-space:pre">                </span><span style="white-space:pre">        </span>n<span class="" style="white-space:pre">                </span>n sels<span class="" style="white-space:pre">        </span>   size<span class="" style="white-space:pre">        </span>avg size</div><div>methods:<span class="" style="white-space:pre">        </span><span style="white-space:pre">        </span>1332<span class="" style="white-space:pre">        </span>973<span style="white-space:pre">        </span><span class="" style="white-space:pre">        </span>403416<span class="" style="white-space:pre">        </span>302.9</div><div>cpics:<span class="" style="white-space:pre">                </span>256<span class="" style="white-space:pre">        </span><span style="white-space:pre">        </span>155<span style="white-space:pre">        </span><span class="" style="white-space:pre">        </span>43008<span class="" style="white-space:pre">        </span>168.0</div><div>opics:<span class="" style="white-space:pre">                </span>37<span class="" style="white-space:pre">                </span>37<span class="" style="white-space:pre">                </span>9768<span class="" style="white-space:pre">        </span>264.0</div><div>both:<span class="" style="white-space:pre">                </span>36</div></div><div><br></div><div>evaluate 3+4 again:<span class="" style="white-space:pre">        </span><br></div><div><div>used bytes: 498008</div><div><span class="" style="white-space:pre">                        </span>   n<span class="" style="white-space:pre">                </span>n sels<span class="" style="white-space:pre">        </span>   size<span class="" style="white-space:pre">        </span>avg size</div><div>methods:<span class="" style="white-space:pre">        </span><span style="white-space:pre">        </span>1574<span class="" style="white-space:pre">        </span>1147<span class="" style="white-space:pre">        </span>483696<span class="" style="white-space:pre">        </span>307.3</div><div>cpics:<span class="" style="white-space:pre">                </span>306<span class="" style="white-space:pre">        </span><span style="white-space:pre">        </span>177<span style="white-space:pre">        </span><span class="" style="white-space:pre">        </span>51408<span class="" style="white-space:pre">        </span>168.0</div><div>opics:<span class="" style="white-space:pre">                </span>45<span class="" style="white-space:pre">                </span>45<span class="" style="white-space:pre">                </span>11880<span class="" style="white-space:pre">        </span>264.0</div><div>both:<span class="" style="white-space:pre">                </span>44</div><div><br></div></div><div>evaluate 3.0 + 4.0:</div><div></div><div>used bytes: 461360</div><div><span class="" style="white-space:pre">                        </span>   n<span class="" style="white-space:pre">                </span>n sels<span class="" style="white-space:pre">        </span>   size<span class="" style="white-space:pre">        </span>avg size</div><div>methods:<span style="white-space:pre">        </span><span class="" style="white-space:pre">        </span>1667<span class="" style="white-space:pre">        </span>1221<span class="" style="white-space:pre">        </span>517056<span class="" style="white-space:pre">        </span>310.2</div><div>cpics:<span class="" style="white-space:pre">                </span>324<span class="" style="white-space:pre">        </span><span style="white-space:pre">        </span>188<span class="" style="white-space:pre">        </span><span style="white-space:pre">        </span>54432<span class="" style="white-space:pre">        </span>168.0</div><div>opics:<span class="" style="white-space:pre">                </span>46<span class="" style="white-space:pre">                </span>46<span class="" style="white-space:pre">                </span>12144<span class="" style="white-space:pre">        </span>264.0</div><div>both:<span class="" style="white-space:pre">                </span>45</div><div>-- <br></div><div class="gmail_signature">best,<div>Eliot</div></div>
</div></div>