Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <!--<script src="https://unpkg.com/setimmediate@1.0.5/setImmediate.js"></script>-->
  <script>JSZipVersions = {};</script>
  <script src="https://unpkg.com/jszip@3.1.5/dist/jszip.js"></script>
  <script>JSZipVersions['3_1_5'] = window.JSZip;</script>
  <script src="https://unpkg.com/jszip@3.2.2/dist/jszip.js"></script>
  <script>JSZipVersions['3_2_2'] = window.JSZip;</script>
</head>
<body>
<script>
const blobSize = 2.75 * 1024 * 1024; // 2.75MB
const blobCount = 1; // try 1, 10 or 50
function log(tag, message) { console.log("[" + tag + "] " + message); }
async function addBlobToZipMultipleTimes(version, blob, times) {
    log(version, 'running test with ' + blobCount + ' blobs of size ' + blobSize + ' ...');
    const zip = new JSZipVersions[version]();
    for (let i = 0; i < times; i++) { zip.file("file_" + i, blob); }
    
    const startTime = new Date().getTime();
    await zip.generateAsync({ type: 'blob' });
    const endTime = new Date().getTime();
    const elapsed = Math.round(endTime - startTime);
    log(version, 'generateAsync took ' + elapsed + 'ms');
    return elapsed;
}
const uint8array = new Uint8Array(Math.round(blobSize));
const blob = new Blob([uint8array]);
(async function () {
  const ms1 = await addBlobToZipMultipleTimes('3_1_5', blob, blobCount);
  const ms2 = await addBlobToZipMultipleTimes('3_2_2', blob, blobCount);
  const comp = Math.round((ms2 - ms1) / ms1);
  log('3_2_2 vs 3_1_5', Math.sign(comp) * comp + ' times ' + (comp > 0 ? 'slower' : 'faster'));
})();
</script>
</body>
</html>
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers