Javascript内存不足

时间:2014-07-11 06:01:52

标签: javascript arrays

以下代码是从较大的代码库中提取和压缩的。它只是为了解决我的问题。

function testit(N) {
    var result = [];
    var row    = [];
    var field  = '';

    function flushField() {
        row.push(field);
        field = '';
    }

    function flushRow() {
        result.push(row);
        row = [];
    }

    for (var row_count=0; row_count<N; ++row_count) {
        for (var field_count=0; field_count<10; ++field_count) {
            field = row_count + ' ' + field_count;
            flushField();
        }
        flushRow();
    }
    return result;
}

在语句row = [];处导致N = 47000的内存不足。对于N = 46000,相同的代码不会导致内存不足。如果我计算数字,每行是10个元素“字段”的数组。每个字段都是一个少于10个字符的字符串。因此总体而言,47 000个行阵列中将包含少于4 700 0000个字符,其中包含470 000个字段数组。总的来说,我希望这会消耗一些兆字节。但是我的机器有几千兆字节。

为什么会导致内存不足?

0 个答案:

没有答案