Как узнать текущий размер стека функций в памяти, для лучшего контроля внутри кода?

140
18 декабря 2019, 13:30

Работаю над оптимизацией кода, и столкнулся в ходе оптимизации с переполнением стека. И ситуация такова, что даже вызов procces.nextTick является дорогим, и его приходится вызывать как можно реже. В связи с чем пришлось пока поставить счетчик и сбрасывать стек с помощью procces.nextTick каждый 1000 раз. Сами понимаете, что это такое себе... Поэтому идеально знать текущий размер стека, чтобы обрубать его при, допустим, 95% заполнении.

Answer 1
var arrayContains = Array.prototype.indexOf ?
    function(arr, val) {
        return arr.indexOf(val) > -1;
    } :
    function(arr, val) {
        for (var i = 0, len = arr.length; i < len; ++i) {
            if (arr[i] === val) {
                return true;
            }
        }
        return false;
    };
function getCallStackSize() {
    var count = 0, fn = arguments.callee, functionsSeen = [fn];
    while ( (fn = fn.caller) && !arrayContains(functionsSeen, fn) ) {
        functionsSeen.push(fn);
        count++;
    }
    return count;
}
READ ALSO
Зачем нужны связи в MySQL

Зачем нужны связи в MySQL

Если я знаю, что число в одной таблице соответствует id записи из другой таблицы то спокойно получаю данные из обеих используя джойныНо я могу...

143
верстка элемента css

верстка элемента css

Как сделать , чтобы было как на картинках, мобильная версия и десктопе, что-то не могу подогнать под мобильную версию, да и десктопная не очень

173
JS работа с событием нажатия клавиш e.ShiftKey

JS работа с событием нажатия клавиш e.ShiftKey

Создать html-страницу со списком книг

164
Как убрать opacity у дочернего элемента?

Как убрать opacity у дочернего элемента?

Есть примерно такой код:

406