什么在 php 中更快:syslog、文件附加或 error_log

Posted

技术标签:

【中文标题】什么在 php 中更快:syslog、文件附加或 error_log【英文标题】:What is faster in php: syslog, file append or error_log 【发布时间】:2014-08-31 16:22:01 【问题描述】:

有没有关于php更快的经验(即更少的开销,更少的时间):

系统日志() error_log() 显式文件 open()、append、close()

谢谢。

【问题讨论】:

我的经验:绝对不是显式文件打开追加关闭。 syslog 是一个恶魔进程,它针对日志记录进行了优化,速度非常快。 error_log 还根据配置使用 syslog 进行日志记录。这一切都取决于配置 完全不写日志会更快。但这会很亮吗?在实际分析 您的应用程序之后,您会发现有更多值得优化的部分。 @mario - 是的,我知道 - 与毫秒作战....我们也在使用它来追踪很多分期,也用于分析。无论如何,在生产中它只设置为错误日志记录。 【参考方案1】:

syslog 将显示其性能差异,具体取决于 syslog 守护程序的配置。例如,消息可能会被复制到多个日志文件中,甚至通过网络发送。因此,它与其他的没有可比性。

使用 PHP 的 error_log() 或自己实现基于文件的日志记录不应显示其性能差异(前提是您有效地实现了它)。不过,我希望 error_log() 快一点,因为它很简单并且是用 C 编写的,但是基于自定义文件的实现可能更灵活、可配置并产生更好/更高级消息。

最后,您需要对具有实际用例的解决方案进行基准测试和比较。

【讨论】:

实际上显式文件和error_log之间只有边际差异,因此我改为error_log,因为这是写消息的假定方式。

以上是关于什么在 php 中更快:syslog、文件附加或 error_log的主要内容,如果未能解决你的问题,请参考以下文章

PHP,单引号或双引号中哪个更快? [复制]

Syslog:在我的 PHP 应用程序中使用 syslog 记录错误的配置是啥

PHP 中哪个更快,$array[] = $value 还是 array_push($array, $value)?

Apache 在扩展名前附加 .php 的文件中执行代码,例如: .php.txt 、 php.pdf

使用 TCL 捕获 SYSlog(端口 514)UDP/TCP?

php添加系统日志