提升PHP内存并将其降低是非常糟糕的做法吗?

时间:2012-09-07 06:31:08

标签: php memory-management phpexcel

我编写了一个PHP应用程序,它使用数据库数据生成Excel文件。我正在使用着名的图书馆PHPExcel。每个使用过这个库的人都知道内存管理是这个库中最糟糕的一点。

所以,我的问题是,在我编写excel然后将其删除之前,是否可以增加内存?

类似的东西,

error_reporting(1);
ini_set('memory_limit', '500M');
@set_time_limit(0);

一旦完成

error_reporting(1);
ini_set('memory_limit', '128M');
@set_time_limit(0);

3 个答案:

答案 0 :(得分:5)

无需将其重新设置。 ini_set仅影响当前请求,而不影响整个服务器;一旦您的请求完成,它就会隐式地重新设置为服务器默认值。

答案 1 :(得分:0)

这可能是让它运转的唯一方法。

与其他响应相反,可能需要降低内存限制。如果同时发出许多请求,你会更快地占用所有内存(尽管在大多数情况下它不会引人注意)。

我的意思是,这只是一种很好的做法 - 有时每个字节都很重要。

顺便说一下,第二个error_reporting和第二个set_time_limit什么都不做。

$reporting = error_reporting(E_ERROR);
// some code
error_reporting($reporting);

也许你是这样的?

答案 2 :(得分:0)

这样做是可以的,但不要将它设置得高于它需要的值。您应该设置PHPExcel可以生成的行/列数的限制,然后在该限制下测试系统的内存使用情况。

正如@duskwuff所说,你不需要两次运行ini_set。它将自己设置回您的系统配置。