- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Linux下PHP通过setitimer中的ITIMER_PROF来实现ini(max_execution_time)和set_time_limit,而不是ITIMER_REAL。通过谷歌,我在 php.net 中找到了一个关于这个问题的帖子 https://bugs.php.net/bug.php?id=65596 .相关PHP手册http://php.net/manual/en/function.set-time-limit.php注意
The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running. This is not true on Windows where the measured time is real. PHP seems designed to use ITIMER_PROF.
我想知道为什么 PHP 超时机制是这样设计的,如果我在 Zend/zend_execute_API.c 中将 ITIMER_PROF 更改为 ITIMER_REAL,会出现什么副作用?
最佳答案
他们这样做是为了便携。
ITIMER_REAL
由于 ITIMER_REAL
发送了一个 SIGALRM
信号而不是 SIGVALRM
或SIGPROF
信号。
我认为副作用是脚本过早终止和与某些 SAPI(例如 Apache + mod_php)不兼容。
有些 unices 还在 sleep(2) 上使用 SIGALRM,php 的 sleep() 函数使用了它,所以这会是另一个副作用。
关于php - 为什么 php 在 setitimer 中使用 ITIMER_PROF 而不是 ITIMER_REAL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21836971/
问题: LINUX 配置文件计时器的分辨率是多少?显然,这是特定于系统的,因此我将在下面提供更多详细信息。 背景: 我正在尝试使用 Google GPerfTools 套件,但我发现无论我多么努力,我
Linux下PHP通过setitimer中的ITIMER_PROF来实现ini(max_execution_time)和set_time_limit,而不是ITIMER_REAL。通过谷歌,我在 ph
手册说 setitimer 在整个 PROCESS 中共享,SIGPROF 发送到 PROCESS 而不是线程。 但是当我在我的多线程进程中创建计时器时,除非我为进程中的每个线程创建独立的堆栈来处理信
我是一名优秀的程序员,十分优秀!