<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Investigate asm.js memory growth perf"
   href="https://bugs.webkit.org/show_bug.cgi?id=148267">148267</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Investigate asm.js memory growth perf
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>WebKit Nightly Build
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>JavaScriptCore
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>alonzakai&#64;gmail.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=259529" name="attach_259529" title="Fannkuch benchmark with memory growth">attachment 259529</a> <a href="attachment.cgi?id=259529&amp;action=edit" title="Fannkuch benchmark with memory growth">[details]</a></span>
Fannkuch benchmark with memory growth

Attached is an example benchmark of fannkuch compiled by emscripten with asm.js memory growth. That means that the typed arrays representing memory (HEAP8, etc.) are modifiable, we replace them when we resize memory. (This uses ArrayBuffer.transfer when present, but does not depend on that.)

This is efficient in Firefox and Edge, as part of asm.js validation and the AOT compilation approach. On Chrome it is known to be slow,

<a href="https://code.google.com/p/v8/issues/detail?id=3907">https://code.google.com/p/v8/issues/detail?id=3907</a>

Filip asked me to file this issue here, to investigate performance in JavaScriptCore.

Note that memory growth is disabled by default in emscripten, so probably not much code out there uses it. If we can see that it's fast across the board, it would be nice to enable it, as it lets people compile their code without deciding ahead of time on the maximum amount of memory.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>