var stackBottom = stackPointerInfo(); var stackTop = stackBottom;
function nearNativeStackLimit() { function inner() { try {
stackTop = stackPointerInfo(); // eslint-disable-next-line no-eval var stepsFromLimit = eval("inner()"); // Use eval to force a number of native stackframes to be created. return stepsFromLimit + 1;
} catch (e) { // It would be nice to check here that the exception is actually an // over-recursion here. But doing so would require toString()ing the // exception, which we may not have the stack space to do. return 1;
}
} return inner();
}
var nbFrames = nearNativeStackLimit(); var frameSize = stackBottom - stackTop;
print( "Max stack size:",
frameSize, "bytes", "\nMaximum number of frames:",
nbFrames, "\nAverage frame size:",
Math.ceil(frameSize / nbFrames), "bytes"
);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.