我想读取大小为200 MB的文件,并且需要60秒才能用其他技术读取(我使用java的Spring引导)。所以节点说它是异步的,它会在你的文件完成读取时使用回调,所以下一步将做什么,它会在读取文件之前直接显示成功消息,或者它会做什么。Node.js如何比其他技术更快?
0
A
回答
0
我想读的是大小为200 MB的文件,它需要60秒时间与其他技术来读取(我用Java的春季启动)
有没有办法,Java需要60秒阅读一个200 MB的文件。这不是语言或语言的执行速度缓慢 - 这是您的代码。
节点不是用于文件I/O特别快的平台。有些人甚至觉得很难编程。但看起来你碰巧写了一些快速的节点代码和一些慢的Java代码。
0
非常有趣的问题 - 而所有的反应都很大,我想触及这部分的质询:“将它直接读取文件或别的什么会做之前显示成功的消息。”
在这种情况下,整个想法是做其他的作品如果有,而文件中读取基础设施正在安装。
如果包括显示成功的消息,是的 - 它会做到这一点为好,但是这是不恰当的,因为这是错误的说法,该操作结束。理想情况下,人们可以编写不相关的代码,并且可以按照时间顺序与文件操作的状态无关地运行。节点将运行该代码,同时等待I/O。这就是它获得“明显”性能增益的地方 - 也就是说,我在一个线程中的多路复用任务。
如果在应用程序的整个活动是读取一个巨大的文件,节点和Java之间的性能差异是不可见的,因为它会从语言的实现细节逃逸并进入到低级别的系统和设备操作,其中所有内容都以相同的方式运行,而不考虑主叫方的身份。
如果应用程序中的活动是一组庞大的计算,那么与Java等相比,Node将启动性能很差。这是因为,JS语言的动态类型将通过需要额外的活动影响性能在代码中。
如果应用程序中的活动是计算和I/O的自然组合,那么Node将胜过其他人,因为之前提到的复用效果将开始可见。
与引擎盖下的活动,此节点行为进一步详细说明是解释here
希望这有助于。
相关问题
- 1. Node.JS工作技术
- 2. T-SQL VIEW - CTE + UNPIVOT与UNION对比其他技术
- 3. .net vs其他顶级技术
- 4. 比较P2P技术
- 5. PHP上的node.js-like技术
- 6. COW vs ROW快照技术
- 7. 最快的同步技术
- 8. 将技术术语从英语翻译成其他语言?
- 9. 我可以比较IL代码以确定哪种技术更快或更好?
- 10. 如何更改页脚技术支持Drupal及其链接?
- 11. 如何反复更改后端技术?
- 12. 技术加快Magento的共享主机
- 13. 更好的封装技术
- 14. 系统更换技术
- 15. 如何选择Ajax技术
- 16. 如何使用Bluemix技术
- 17. 如何使用正则表达式或其他技术解析此字符串?
- 18. 如何使用加密技术处理Android和其他信用卡信息
- 19. 如何运行非技术性启动的技术部门?
- 20. WCF或其他用于负载平衡的技术
- 21. 哪些大学/学院教Microsoft ASP.NET和其他MS技术?
- 22. PHP Array,动态数组名称或其他技术
- 23. 对其他技术的了解.Net 4.0功能
- 24. Windows Azure支持除.NET之外的其他技术
- 25. 其他方面有技术上的区别... if/else if?
- 26. 使用T4或其他技术在VS 2008中生成ClassTemplate
- 27. 模板(或其他技术)是否支持以下构造?
- 28. 更快的自动完成实现技术
- 29. 获得更快Web服务响应的一般技术?
- 30. soccernet比赛背后有什么技术?
节点是不是更快的读/写比其他文件。编写在Node中并行使用多个I/O操作的代码对你来说更容易。你不会通过使用Node来获得极快的文件读取(至少,这不太可能);无论使用何种语言,它都将被设置为硬盘速度。 –
理论上,多线程程序使用锁,信号量和其他工具来同步代码执行和并发数据访问。一个CPU内核一次只能运行一个执行线程,其实现方式是上下文切换。如果使用多个线程,则上下文切换的成本可能会很高,并会降低总体I/O性能。对于I/O绑定的任务,使用异步I/O更快。但是还有其他的异步库,不仅仅是node.js – nagylzs