我编写了一个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);
没有必要将其设置为后退。ini_set
只影响当前请求,不影响整个服务器;一旦您的请求完成,它就会隐式地设置回服务器默认值。
可以这样做,但不要将其设置得比需要的更高。您应该设置PHPExcel可以生成的行/列数的限制,然后在该限制下测试系统的内存使用情况。
正如@duskwuff所说,您不需要运行两次ini_set。它会将自己设置回您的系统配置。
这可能是让它工作的唯一方法。
与其他反应相反,可能需要降低记忆力限制。如果同时有很多请求,你会更快地消耗掉所有内存(尽管在大多数情况下这不会很明显)。
我的意思是,这只是一个很好的练习——有时每个字节都很重要。
顺便说一下,第二error_reporting
和第二set_time_limit
什么都不做。
$reporting = error_reporting(E_ERROR);
// some code
error_reporting($reporting);
也许你是这样的人?