- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一些通过 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/
因为我需要一个指向不同类中的 SDL_Window 的指针,所以我认为使用 shared_ptr 是个好主意。 //happens in class A::foo() //shared_Window_
我有一些通过 cron 定期运行的长期运行的 CLI PHP 脚本。我希望它们尽快完成,但又不会严重影响其他进程(例如 Web 服务器响应能力)。 目前我正在运行脚本 nice -n 19 并且还尝试
我想将 view.py 中的字符串数组移交给模板,并将该字符串用于 D3。 views.py: def index(request): template = loader.get_templa
我必须使用一个库函数,它为生成的字符串分配一点内存并返回一个 char*,期望调用者最终使用 free() 释放内存。 // Example declaration of the library fu
我想使用接受 UTF16-LE 字符串作为 (const char16_t* str, size_t length) 参数的库函数。 length 参数只需要为非空终止的字符串提供。该函数将复制字符串
我是一名优秀的程序员,十分优秀!