【问题标题】:Memory leak at .csv download.csv 下载处的内存泄漏
【发布时间】:2010-11-15 16:31:52
【问题描述】:

如果用户在文件保存在他的机器上之前停止下载/导出,创建相当大 (20MB) 的 .csv 下载是否会造成内存泄漏?

如果是,您将如何发现和解决这个问题?

【问题讨论】:

  • 哦,谢谢,不加解释的投反对票!
  • 我猜,原始投票者的“Dickishness”可能是一种解释。
  • 服务器端内存泄漏?还是客户端PC?
  • 一两个不会有问题,如果像用户这样的同一个用户的大量连接保持 F5 相同的页面,可能它只会让你的服务器比平时更忙 + 大量的磁盘 I/O +网络带宽阻塞(假设你的服务器可能同时处理数百个连接),至于检测这个问题,连接处理似乎是可能的,或者你可以考虑使用PID方法,但它们都不是完美的

标签: php memory-leaks csv


【解决方案1】:

这是可能的,但我想它最终会被清除。无论哪种方式,HTTPds 在提供文件方面通常比服务器端语言更有效。

如果您担心,请将文件(我假设我们谈论的是动态生成的文件)保存到文件系统(服务器可以看到它的地方)并将用户重定向到该 URL。

为了安全(尽管是通过晦涩难懂),使文件名变得可怕(例如,他们的用户名哈希和文件描述),并确保人们无法获得它所在目录的目录列表。可能会使对文件进行日期标记(例如:filename-year-month-day.ext),以便您可以在 24 小时后运行自动清理文件。

【讨论】:

    【解决方案2】:

    如果您正在动态生成文件并将其流式传输给您可能想要查看的用户 http://php.net/manual/en/features.connection-handling.php 并在连接中止或超时时执行一些清理。

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      相关资源
      最近更新 更多