2013-04-15 65 views
-1

我有一个Drupal论坛网站,它有大量的数据。例如,一个论坛类别有14,000个线程,并有100,000条评论。即使在我的本地测试网站,它也非常滞后。然后当我上传到活动网站,它给这个错误:如何限制Drupal查询中的内存分配?

Fatal error: Allowed memory size of 52428800 bytes exhausted (tried to allocate 40961 bytes) in /home/fmotors/public_html/development/includes/theme.inc on line 1494 

所以有事情做与增加的内存限制,或者一次不查询所有线程。但我不知道如何去做。下面是该标记上述错误代码:

function theme_render_template($template_file, $variables) { 
    extract($variables, EXTR_SKIP);    // Extract the variables to a local namespace 
    ob_start();         // Start output buffering 
    include DRUPAL_ROOT . '/' . $template_file; // Include the template file 
    return ob_get_clean();      // End buffering and return its contents 
} 

ob_start()呼叫处于线1494。顺便说一句,我使用的Drupal的提前论坛模块。

+0

返回更少的数据。没有看到您的查询,很难提供详细信息。 –

+0

如果Drupal和Wordpress一样,它可能会试图在内存中保存所有注释,即使您使用的视图是分页的。如果这是问题,那么搜索“drupal php减少内存使用量”将是一个不错的第一步。也就是说,对于一个复杂的PHP应用程序,50M可能太少了:尝试配置64或80M并查看它是否有效? – halfer

+0

@halfer在哪里配置50M到80M?以及我如何不一次查询所有评论?是的,他们分页,我怀疑你说什么是真实的,即使它分页,一次全部查询。 –

回答

0
在configuraion或索引文件

设置

ini_set('memory_limit', 0); 
+0

这只是为了解决问题而不是解决问题吗?现在还有另一个潜在的错误,脚本可能会占用太多的系统内存,导致更难追踪错误。 – siride