为什么realpath()需要~30秒才能获得“//localhost/mysite/config/settings.yml”?

时间:2018-05-19 20:12:37

标签: php web server directory filepath

经过近一个小时的调试,一些完全不合理的执行时间应该花费几毫秒,我发现调用了

$path = realpath("//localhost/mywebsite/config/some_config_file.yml");
第一次执行时

将花费近30秒,之后需要几毫秒(对于相同的字符串)。正如所料,$path设置为 false

虽然我能够删除该行(无论如何都没有必要,但请不要判断)并因此删除该错误,我仍然想知道发生了什么,因为我想成长为开发人员。

  1. 是什么原因导致realpath()需要30秒?
  2. 为什么后续请求的时间要短得多?这个OPcache是​​否使用预编译值?
  3. 仅供参考:请求已在我的本地计算机上完成,并且已激活xdebug。 PHP 7.2,Win 10和Apache。

1 个答案:

答案 0 :(得分:0)

在我看来,根据我的经验,由于种种原因,我不再使用realpath()了。 如果应用程序的设置是直的,例如:包括路径设置好或自动加载器的库路径的具体设置,不再需要realpath。这加速了每一件事。 亲切的问候

编辑btw:是的,7.2中的opcache做了另一个哦,ups:)