<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Sep 18, 2011, at 12:09 AM, Andrea Giammarchi wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">at least now we agree object literals *add* overhead</blockquote><div><br></div>Who ever said they didn't?</div><div><br></div><div><br><blockquote type="cite">and with current JS.next typed structs/arrays proposal you can bet developers will do those kind of non-sense things ;-)</blockquote><div><br></div>I see what you are getting at now, but you're missing something: your test2 has an object literal per loop iteration which cannot be optimized away easily. The object and array literals in my slide that you are concerned about:</div><div><br></div><div><ul style="list-style-type: disc">
<ul>
<ul>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 44px; margin-left: 0px; font: normal normal normal 24px/normal 'Courier New'; color: rgb(0, 153, 247); font-size: 12px; "><span>new Triangle(</span><span style="letter-spacing: 0.0px">[{ point: { x: 0, y: 0 },<br>
                color: { r: 255, g: 255, b: 255 } },<br>
              { point: { x: 5, y: 5 },<br>
                color: { r: 128, g: 0, b: 0 } },<br>
              { point: { x: 10, y: 0 },<br>
                color: { r: 0, g: 0, b: 128 } }]</span><span>);</span></li>
</ul>
</ul>
</ul><div>are neither mandatory -- see <a href="http://wiki.ecmascript.org/doku.php?id=harmony:binary_data_semantics#array_objects">http://wiki.ecmascript.org/doku.php?id=harmony:binary_data_semantics#array_objects</a> and note how you can call new Triangle() and set members using dotted access and assignment -- nor as hard to optimize away than in the general case.</div><div><br></div><div><br></div><blockquote type="cite"><div>I have updated the test case using a second Int32Array loop simply to access the index</div></blockquote><div><br></div>How did the performance change?</div><div><br></div><div>/be</div><div><br></div><div><br><blockquote type="cite"><div>
<br><div class="gmail_quote">On Sun, Sep 18, 2011 at 6:03 AM, Brendan Eich <span dir="ltr"><<a href="mailto:brendan@mozilla.com">brendan@mozilla.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Sep 17, 2011, at 10:34 PM, Andrea Giammarchi wrote:<br>
<br>
> Brendan I wrote I did it on purpose trying to predict what JS devs will do once JS.next will bring ctypes like syntax.<br>
<br>
</div>My objection is that you're confounding test2 by adding object literal overhead to each loop iteration, in addition to typed array accesses. You want to focus on just the typed array accesses, from what I can tell of your benchmark.<br>

<font color="#888888"><br>
/be</font></blockquote></div><br></div>
</blockquote></div><br></body></html>