Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Таев Олег 23.11.2004 08:17
Пробуйте считывать/обрабатывать данные порциями, а после обработки выгружать массивы данных из памяти. С помощью метода ^memory:compact[] можно выбросить неинициализированные/пустые переменные.$start_line(1) $read_limit(1000) $recs_count(^int:sql{select count(ip) from traffic}) ^while($start_line<=$recs_count){ $tab[^table::sql{select ip,bytes from traffic limit $start_line,$read_limit}] ^tab.menu{ ^if($tab.ip eq $server){ ^down.inc($tab.bytes) }{ ^up.inc($tab.bytes) } } ^start_line.inc($read_limit) $tab[] ^memory:compact[] } $start_line[] $recs_count[] $read_limit[] ^memory:compact[]Путем нехитрых экспериментов вы выясните, какое значение $read_limit для вас оптимально (по памяти и быстроте обработки)