javascript - Node.js 是否适合构建大型文件共享网络应用程序?
问题描述
我是一名初级程序员,我正在参加 Node.js 的在线课程,讲师说不要使用 Node.js 来构建 CPU 密集型应用程序。我不知道什么被认为是 CPU 密集型的。我正计划构建一个大型文件共享网络应用程序,但我不知道 Node.js 是否是完成这项工作的正确工具。
解决方案
Node.js 具有事件驱动的架构,这意味着它具有内置的事件循环和异步 I/O API。
CPU 密集型任务是那些使用大量 CPU 计算才能完成的任务,例如查找素数、排序字符串等。
当 Node.js 中发生 CPU 密集型任务时,它将阻塞事件循环,直到完成。在此期间,程序将无法处理新的传入消息。
相反,I/O 操作不需要那么多 CPU 使用率。
由于一般来说,Web 应用程序和文件共享涉及比 CPU 密集型任务更多的 I/O 操作(例如从磁盘读取文件并通过网络套接字发送其内容),Node.js 非常适合创建大型文件共享网络应用程序。
推荐阅读
- filter - 在 DAX 中计算总和
- web-scraping - 平台如何在未经 Instagram 用户同意的情况下访问/提取受众人口统计数据?
- sql - 更新字段,使用子查询联合脚本来执行更新
- internet-explorer-11 - 使用 IE11 和旧版 Edge 的 Office 加载项的截止日期
- python - mlflow 运行命令中单个参数的多个值
- r - 如何在 ifelse 中设置 FALSE 条件,使其保持原始值
- javascript - 使用 python Selenium(通过 javascript)打开新标签突然停止工作
- python - 如何修改 scapy 数据包有效负载
- r - 序列化和保存/加载 R6 类
- android - Android 应用程序生产错误 - Facebook 受众