blob: 8ee873b9a5f466072d350d30740c56b6f50efc72 [file] [log] [blame]
function alloc(sizeMB, randomRatio) {
const FLOAT64_BYTES = 8;
const MB = 1024 * 1024;
const total_count = sizeMB* MB / FLOAT64_BYTES;
const random_count = total_count * randomRatio;
// Random array is uncompressable.
let random_array = new Float64Array(random_count);
for (let i = 0; i < random_array.length; i++) {
random_array[i] = Math.random();
}
// Constant array is compressable.
const const_count = total_count * (1 - randomRatio);
let const_array = new Float64Array(const_count);
for (let i = 0; i < const_array.length; i++) {
const_array[i] = 1;
}
return [random_array, const_array];
}
$(document).ready(function() {
var url = new URL(window.location.href);
var allocMB = parseInt(url.searchParams.get("alloc"));
if (isNaN(allocMB))
allocMB = 800;
var randomRatio = parseFloat(url.searchParams.get("ratio"));
if (isNaN(randomRatio))
randomRatio = 0.666
var startTime = new Date();
// Assigns the content to docuement to avoid optimization of unused data.
document.out = alloc(allocMB, randomRatio);
var ellapse = (new Date() - startTime) / 1000;
// Shows the loading time for manual test.
$("#display").text(`Allocating ${allocMB} MB takes ${ellapse} seconds`);
});