xml/GenCode - Expand memory limit
authorTim Otten <totten@civicrm.org>
Wed, 11 Nov 2015 01:30:00 +0000 (17:30 -0800)
committerTim Otten <totten@civicrm.org>
Wed, 11 Nov 2015 01:30:00 +0000 (17:30 -0800)
GenCode processes translations in all locales.  Loading all locales is
memory-intensive (est ~20mb per locale based on `memory_get_usage()`).

The locales are tracked in `CRM_Core_I18n::singleton()`.  The behavior is
actually good for typical usage (1-2 locales per page-view), but it breaks
down when one request needs to work with all locales.  If it mattered more,
we'd probably implement some cache-management to deallocate older/unused
locales.  But for GenCode, it's OK to bump up memory requirements as high as
1gb.

xml/GenCode.php

index 0f994a9b25b8721d321d1b41280e5cd8b457bcec..bd1bfde915546942184eb3e3803c6e9da4655131 100644 (file)
@@ -14,7 +14,8 @@ switch ($memLimitUnit) {
 }
 
 if ($memLimit >= 0 and $memLimit < 536870912) {
-  ini_set('memory_limit', '512M');
+  // Note: When processing all locales, CRM_Core_I18n::singleton() eats a lot of RAM.
+  ini_set('memory_limit', -1);
 }
 date_default_timezone_set('UTC'); // avoid php warnings if timezone is not set - CRM-10844