<div dir="ltr">After a raco make r.rkt tr.rkt<br><div><div><div><br>ray@rpr:~$ time racket r.rkt<br><br>real    0m0.036s<br>user    0m0.020s<br>sys    0m0.016s<br>ray@rpr:~$ time racket tr.rkt<br><br>real    0m0.382s<br>user    0m0.352s<br>
sys    0m0.028s<br>ray@rpr:~$ <br><br></div></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, May 8, 2013 at 11:26 AM, Sam Tobin-Hochstadt <span dir="ltr">&lt;<a href="mailto:samth@ccs.neu.edu" target="_blank">samth@ccs.neu.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I have a fast SSD, so that might be the difference.<br>
<span class="HOEnZb"><font color="#888888"><br>
Sam<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Wed, May 8, 2013 at 11:05 AM, Ray Racine &lt;<a href="mailto:ray.racine@gmail.com">ray.racine@gmail.com</a>&gt; wrote:<br>
&gt; Oddly<br>
&gt;<br>
&gt; ray@rpr:~$ time racket r.rkt<br>
&gt;<br>
&gt; real    0m0.052s<br>
&gt; user    0m0.040s<br>
&gt; sys    0m0.012s<br>
&gt;<br>
&gt; ray@rpr:~$ time racket tr.rkt<br>
&gt;<br>
&gt; real    0m0.958s<br>
&gt; user    0m0.876s<br>
&gt; sys    0m0.080s<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Wed, May 8, 2013 at 10:35 AM, Sam Tobin-Hochstadt &lt;<a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; On Wed, May 8, 2013 at 6:19 AM, Carl Eastlund &lt;<a href="mailto:cce@ccs.neu.edu">cce@ccs.neu.edu</a>&gt; wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I see just under 5 seconds for test.rkt and just over 5 seconds for<br>
&gt;&gt; &gt; utest.rkt.  So there&#39;s a fraction of a second extra startup time for<br>
&gt;&gt; &gt; Typed<br>
&gt;&gt; &gt; Racket, but it takes less time for each subsequent computation, so the<br>
&gt;&gt; &gt; difference depends on how much &quot;real&quot; work you do after startup.  I<br>
&gt;&gt; &gt; don&#39;t<br>
&gt;&gt; &gt; know what causes that startup cost, but hopefully this kind of benchmark<br>
&gt;&gt; &gt; will be useful to the Typed Racket maintainers in closing the gap for<br>
&gt;&gt; &gt; future<br>
&gt;&gt; &gt; versions.  So, thanks for the example, Manfred!<br>
&gt;&gt;<br>
&gt;&gt; This is all true, and you can see it in simpler examples.  The empty<br>
&gt;&gt; modules:<br>
&gt;&gt;<br>
&gt;&gt; #lang typed/racket/base<br>
&gt;&gt;<br>
&gt;&gt; and<br>
&gt;&gt;<br>
&gt;&gt; #lang racket/base<br>
&gt;&gt;<br>
&gt;&gt; have the following timings:<br>
&gt;&gt;<br>
&gt;&gt; [samth@hermes:~/tmp plt] time racket test.rkt<br>
&gt;&gt;<br>
&gt;&gt; real    0m0.592s<br>
&gt;&gt; user    0m0.516s<br>
&gt;&gt; sys    0m0.064s<br>
&gt;&gt; [samth@hermes:~/tmp plt] time racket test2.rkt<br>
&gt;&gt;<br>
&gt;&gt; real    0m0.065s<br>
&gt;&gt; user    0m0.040s<br>
&gt;&gt; sys    0m0.024s<br>
&gt;&gt;<br>
&gt;&gt; So you can see about 500 ms of extra overhead. Most of this time is in<br>
&gt;&gt; loading and executing the runtime dependencies of Typed Racket, which<br>
&gt;&gt; aren&#39;t used here, but which the implementation architecture of Typed<br>
&gt;&gt; Racket makes it basically impossible to reduce.  We&#39;ve worked hard to<br>
&gt;&gt; reduce this cost, but it&#39;s hard to go much further.<br>
&gt;&gt;<br>
&gt;&gt; Sam<br>
&gt;&gt; ____________________<br>
&gt;&gt;   Racket Users list:<br>
&gt;&gt;   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div>