aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-11-07 18:19:15 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-11-07 18:19:15 -0800
commitc0b90255c1d0f40d9b57f5b7410f13b9e124d7c4 (patch)
tree765b53f4d0c121a2b8a465248d46f492e40e2de1
parent0cf742f9afe26865fca0dbfd79b958ff3dba57e7 (diff)
take into account forwarded data in chunk sizes in emscript
-rwxr-xr-xemscripten.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/emscripten.py b/emscripten.py
index 687adb66..f9c8419e 100755
--- a/emscripten.py
+++ b/emscripten.py
@@ -147,7 +147,7 @@ def emscript(infile, settings, outfile, libraries=[]):
assert cores >= 1
intended_num_chunks = cores * NUM_CHUNKS_PER_CORE
chunk_size = max(MIN_CHUNK_SIZE, total_ll_size / intended_num_chunks)
- chunk_size += 3*len(meta) # keep ratio of lots of function code to meta
+ chunk_size += len(forwarded_data)/3 + 3*len(meta) # keep ratio of lots of function code to meta (expensive to process) and forwarded (cheap)
chunk_size = min(MAX_CHUNK_SIZE, chunk_size)
if DEBUG: t = time.time()
@@ -166,7 +166,7 @@ def emscript(infile, settings, outfile, libraries=[]):
chunks.append(curr)
curr = ''
if cores == 1: assert len(chunks) == 1, 'no point in splitting up without multiple cores'
- if DEBUG: print >> sys.stderr, ' emscript: phase 2 working on %d chunks %s (intended chunk size: %.2f MB, meta: %.2f MB)' % (len(chunks), ('using %d cores' % cores) if len(chunks) > 1 else '', chunk_size/(1024*1024.), len(meta)/(1024*1024.))
+ if DEBUG: print >> sys.stderr, ' emscript: phase 2 working on %d chunks %s (intended chunk size: %.2f MB, meta: %.2f MB, forwarded: %.2f)' % (len(chunks), ('using %d cores' % cores) if len(chunks) > 1 else '', chunk_size/(1024*1024.), len(meta)/(1024*1024.), len(forwarded_data)/(1024*1024.))
commands = [(i, chunk + '\n' + meta, settings_file, compiler, forwarded_file, libraries) for chunk in chunks]