javascript – 为什么这段代码使用了这么多内存?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 为什么这段代码使用了这么多内存?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1435字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 为什么这段代码使用了这么多内存?](/upload/InfoBanner/zyjiaocheng/962/ab07aa353d8c4bf1ba8af650aa178113.jpg)
我开始解决一些codeeval测试,即使问题的速度得分一般很好,内存也很低.
你能帮我么?为什么这段代码使用了这么多内存(6392809 MEMORY,BYTES)?
var fs = require("fs");
fs.readFileSync(process.argv[2]).toString().split('\n').forEach(function (line) {
if (line != "") {
console.log( line.split(' ').map(function(item){
return item.substr(-1) + item.substr(1, item.length-2) + item[0];
}).join(' '));
}
});
SWAP NUMBERS
挑战描述:
编写一个程序,给定一个句子,其中每个单词都有一个正整数作为前缀和后缀,交换数字,同时保留其间的单词.句子中的单词以空格分隔.
输入样本:
第一个参数是文件的路径.输入文件的每一行包含一个由句子表示的测试用例.句子中的每个单词以单个数字正整数开始和结束,即0到9.假设所有字符都是ASCII.
4Always0 5look8 4on9 7the2 4bright8 9side7 3of8 5life5
5Nobody5 7expects3 5the4 6Spanish4 9inquisition0
输出样本:
对于每个测试用例,打印到标准输出通过交换每个单词周围的数字获得的句子,每行一个.
0Always4 8look5 9on4 2the7 8bright4 7side9 8of3 5life5
5Nobody5 3expects7 4the5 4Spanish6 0inquisition9
约束:
每个单词的后缀和前缀可以相等.
句子长度为1到17个单词.
测试用例数为40.
我想尝试提高记忆得分,欢迎任何提示.
解决方法:
我敢打赌你的问题是你把整个文件加载到内存中.其他建议您以某种形式逐行阅读,但这可能没有帮助.测试人员只需1行即可输入巨大的文件,但最终仍会占用大量内存.您最好的方法是以块的形式读取文件.使用fs.readSync(这里不需要异步的东西).你应该处理单词,这样你就应该阅读chunk,交换单词中的单词并继续.当然,他们可能会在文件中放入一个巨大的单词,但这是一个复杂的下一级别.
内容总结
以上是互联网集市为您收集整理的javascript – 为什么这段代码使用了这么多内存?全部内容,希望文章能够帮你解决javascript – 为什么这段代码使用了这么多内存?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。