gpt4 book ai didi

php - 有没有更好的方法可以将 CPU 交给 PHP 中的其他进程?

转载 作者:可可西里 更新时间:2023-11-01 01:08:50 26 4
gpt4 key购买 nike

我有一些通过 cron 定期运行的长期运行的 CLI PHP 脚本。我希望它们尽快完成,但又不会严重影响其他进程(例如 Web 服务器响应能力)。

目前我正在运行脚本

nice -n 19

并且还尝试插入非常短的 usleep() 调用,例如在我的主循环中插入 50 微秒。在单核 VM 上,这并不总是像我希望的那样快速产生。顺便说一句,我没有使 RAM 饱和,所以没有分页发生。

我读到 usleep() 是一个系统调用,它允许调度程序在需要时将优先级分配给其他进程,这比我没有任何系统调用时更快。

我想知道在 PHP 中是否有更好的方法来执行此操作。例如不休眠但立即让出优先权的调用。

此外,我知道其他语言比 PHP 更高效,但这是用 Symfony+Doctrine 编写的更大应用程序的一部分。我不想拆分为多种语言并失去应用程序模型的业务逻辑优势。

最佳答案

如果 nice 不适合您,请考虑为您的内核选择不同的调度程序。这是您的操作系统优先处理过程的问题。这不是您可以在应用程序内部轻松解决的问题(无论它是用 PHP 还是任何其他语言编写的)。

哦,请记住,nice 关卡不会真正发挥作用,除非您急需 CPU 周期。如果您的 CPU 大部分时间都处于空闲状态,那么即使 nice 级别为 19 的进程也可以吃掉它想要的所有 CPU 周期。

编辑:事实上,在走这条路之前,请确保您是 CPU 密集型的。如果您受 I/O 限制,那么 CPU 优先级不会产生太大影响。

关于php - 有没有更好的方法可以将 CPU 交给 PHP 中的其他进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5824074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com