ruby - 在 ruby 中运行 shell 命令的最快方法是什么?
问题描述
我已经多次看到 Kernel#` 的开销及其system(...)
本身可能成为脚本的瓶颈。有时有一些方法可以减少 shell 调用的总次数,例如 with xargs
,但有时我确实需要连续多次调用 shell。最快的方法是什么?(我不需要任何特殊的环境变量设置或类似的东西,甚至不需要结果代码或标准输出)
解决方案
请记住,有两种方法可以运行外部进程:
- 在
system("script with arguments")
哪里必须首先通过外壳。 system("script", "with", "arguments")
直接运行命令的地方,绕过shell 。如果启动 shell 的成本很高,这可能会稍微快一些,这可能取决于 shell 的配置。
请注意,这两者都涉及无法避免的fork
/循环。exec
如果您需要进行大量处理,您可能需要研究如何xargs
为您工作,尤其是当您可以通过Open3
. 如果你能以某种方式分离输出,这可能是简单的,也可能是困难的,你可以从一个 shell 进程中获得很多好处。
推荐阅读
- angular - 找不到名称为“[object Object]”的控件
- flutter - Flutter LBS 到 KG 设计
- python - Django:如何解码 url 以获取变量值?
- javascript - 单击按钮 JQuery 时重新加载外部脚本
- algorithm - 我应该使用什么模型来预测纸牌游戏的获胜者?
- google-cloud-automl - 访问整个混淆矩阵
- php - ZF3 数据库适配器配置
- c# - 在 c# 应用程序中使用适当的配置文件而不使用 Prebuild 事件
- javascript - 使用 JS fetch 处理大数据的最佳实践?
- java - 如何通过sqlite android中搜索词的首字母获取所有数据?