PHP的readfile()函数为何占用双倍IO?

我在一个读取图片的程序中使用了readfile()并关闭了内存缓冲,确保不走内存。
但是进行资源监控时发现比Nginx直接输出图片多走了一倍IO。

Nginx的图片输出是读取磁盘文件->输出浏览器
PHP用readfile()是读取磁盘文件->交付至Nginx->输出浏览器

是因为多了交付至Nginx这一层逻辑导致的IO增倍吗?
个人测试,可能不太准确,望指正!谢谢

阅读 2.3k
2 个回答

直接nginx输出的是直接输出文件流。php读入,是先php读入内存,再从内存输出文件流

确保不走内存?你觉得readfile不走内存能走哪?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题