我有一个用 nodejs 编写的服务器,它使用 spawn 功能调用 Rust 二进制文件,我需要在二进制文件和 nodejs 服务器之间传递几兆字节的数据。使用 stdin 和 stdout 这样做可靠吗?还是我应该将数据写入文件?谢谢
答案1
可以使用 stdin/out,而且也相当可靠。但特别是对于 MB 范围内的内容,我建议将文件写入磁盘并从其他进程读取。特别是因为这很可能无论如何都会发生,因为像这样的大数据不仅仅是从一个进程移交给下一个进程,而是写入 RAM 中的缓冲区。您可以通过将数据写入 ramdisk 路径(如 /tmp)并从那里读取数据来执行相同操作。这样,您的性能损失很小,并且可以减轻操作系统处理浮动页面缓冲区的负担。
最后这并不重要。是的,它应该像将其写入 ramdisk 一样可靠。将其写入实际硬盘/ssd 的优点:如果您的第二个进程过早死亡,间歇性结果不会丢失。