node 可以通过v8 option --stack_size 设置分配的栈大小,缺省的大小是1024K字节(man node 时单位显示为KkBytes,不知道这是神马单位还是typo?)。
由于javascript没有尾递归优化,又是异步IO, 对于sequence调用有可能会造成栈溢出。可以采用setTimeout来规避这种风险, 但是setTimeout的性能如何呢?
我做的简单代码如下
function a(i) {
if(i <= 0) {
process.exit();
}
setTimeout(function () {
a(i - 1);
}, 0);
}
a(1000000);
在我的破11寸 macbook air上执行100w次setTimeout时间花费
real 0m10.449s
user 0m8.562s
sys 0m1.860s
大约每秒可以保证10w次,基本能满足服务器的要求,但是作为对比的直接函数调用在无栈溢出的条件下,可以轻松达到每秒1000w次。
分享到:
相关推荐
简单的MEN堆栈2021-03年修改后续教程: : MongoDB安装MacOSX(arm64) 通过brew获取并安装mongodb brew tap mongodb/brew...brew install mongodb-community@4.4 启动mongodb服务: brew services start mongodb-...
nodejs初级教程
NodeJS
今天先学下setTimeout和setInterval的使用。 一、setTimeout超时计时器(和GCD中的after类似) 在node.js中可以使用node.js内置的setTimeout(callback,delayMillSeconds,[args])方法。当调用setTime()时回调函数会在...
NodeJsStack 使用Express.js的NodeJs应用程序...如果由于某些原因要更改端口,请打开/ stack / bin / www并更改端口号。 #使用技术:NodeJs,Express.js,Handlebars.js,Bootstrap,npm,MySQL,phpmyadmin, 演示
NODEJS-全栈我在此存储库中包含与NodeJS一起使用的FullStack文件。章节标题对象与功能下一代:ES6 / ES7 + Javascript模块异步编程和AJAX 节点JS NPM ExpressJS的模板引擎:PUG 处理数据:MVC SQL数据库:MYSQL SQL ...
,nodEjs ,nodEjs ,nodEjs ,nodEjs ,nodEjs ,nodEjs ,nodEjs ,nodEjs ,nodEjs
节点js NodeJS示例项目
nodejs安装及环境配置
资源名称:NodeJs技术经典文档资源目录:【】Node.js开发指南_中文正版【】nodejs开发指南pdf及源码及win安装程序【】nodejs手册中文【】NodeJs教程【】umav4simple【】七天学会NodeJS【】七天学会NodeJS【】深入浅...
NodeJS开发指南
liunx nodejs+nginx配置收藏版liunx nodejs+nginx配置收藏版
nodejs 学习笔记 nodejs 学习笔记 nodejs 学习笔记
nodejs云计算相关资料
使用nodejs写的音乐播放器 已在windows 测试过 首先装nodejs 然后用npm 下载 音乐播放模块
主要介绍了nodejs简单读写excel内容的方法,简单分析了nodejs常见的读写Excel模块,并结合实例形式分析了nodejs读写Excel具体操作技巧,需要的朋友可以参考下
AngularJS+ NodeJS
nodejs4.0 window32位和window64 位安装包
NodeJs思维导图总结
2013年7月4日制作的nodejs官网的最新版本的chm文档,方便nodejs学习者离线预览nodejs官网,包括nodejs的英文api