Ответ
Misha v.3 28.04.2009 17:10
с чего вы взяли, что проблема именно в этом месте (я ничего криминального в нем не вижы, правда заставляет задуматься ^FORM:file[...])? она может быть где угодно: возможно вы раньше (или позже) делаете что-то очень неоптимально и в результате ходите по грани, из-за чего и начинает всё работать при небольшом убавлении кода.
т.е. ничего конкретного, глядя на этот кусок кода, порекомендовать невозможно (а втыкать compact-ы так, как это делаете вы -- бессмысленно).
что делать:
- посмотреть вообще на расход памяти (эту самую глвную цифру вы и не привели), а также на память, выделенную вам хостером (вдруг заявлена одна цифра, а в реалиях она меньше, например кто-то ошибся, устанвливая лимит?). искать где в вашем используется много памяти (втыкать rusage в checkpoint-ы).
- подключать классы по мере использования (^if(...){^use[...]}). понятно, что это актуально для больших классов, которые используются редко.
- структурировать код, чтобы убрались лишние пробельные символы (отступы). они (пробельные символы) -- накапливаются, а оптимизируются лишь в самом конце, перед выдачей результата.
- если файлы храните в UTF-8, то возможно стоит перейти к 1251, т.к. это снижает расход памяти.
- использовать явный result декларацию его в списке локальных переменных, где это возможно (с head версией это также позволит сэкономить память).
- попробовать head версию, в которой делались и делаются оптимизации, в том числе снижающие расход памяти (без использования compact снижение существенное, при использовании оно сильно меньше). понятное дело, что работоспособность не гарантируется :)
- out of memory (while expanding string) Снова, tezro 28.04.2009 16:33 / 28.04.2009 16:39
- Ответ, Misha v.3 [M] 28.04.2009 17:10
- Временное решение, tezro 28.04.2009 17:29 / 28.04.2009 17:32
- Ответ, Misha v.3 [M] 01.05.2009 16:24
- Ответ, tezro 01.05.2009 18:45 / 01.05.2009 18:45
- Ответ, tezro 28.04.2009 17:27
- Ответ, tezro 28.04.2009 17:20 / 28.04.2009 17:20
- Ответ, G_Z [M] 28.04.2009 16:59 / 28.04.2009 16:59
- Ответ, tezro 28.04.2009 17:16
- Ответ, Саян 28.04.2009 16:51