Помощник
|
Allowed memory size |
Letmetouchyou
|
Сообщение
#1
|
||
|
|
||
|
|||
UncleM |
25.1.2010, 5:25;
Ответить: UncleM
Сообщение
#2
|
|
Есть пару вариантов навскидку:
1. читать файлы построчно, а не целиком; 2. оптимизировать код: убрать лишние переменные, следить за расходом памяти и т.д. Даже с гигабайтовыми файлами можно справиться довольно эффективно. Чем больше объем обрабатываемой информации, тем "умнее" должен быть код. А считать весь файл в массив - это самый простой и неэффективный подход. -------------------- |
|
|
Letmetouchyou
|
Сообщение
#3
|
|
Mike, лишних переменных вапше нету )
и файл считываеться посторочно ) ееш вопрос: как следить за расходом помяти? и как узнать время рабоыт скрипта ? ( если ли таймер какойнибудь)? |
|
|
UncleM |
25.1.2010, 19:35;
Ответить: UncleM
Сообщение
#4
|
|
http://php.net/manual/en/function.memory-get-usage.php
http://www.compdoc.ru/internet/php/phptime/ Самые простые запросы, на которые в гугле первая строчка является ответом. :) -------------------- |
|
|
Letmetouchyou
|
Сообщение
#5
|
|
Mike, я заодно с постом задал вопрос :Р
|
|
|
UncleM |
25.1.2010, 23:54;
Ответить: UncleM
Сообщение
#6
|
|
Если про MySQL, то да, конечно, такой поиск будет быстрее. Особенно если есть поддержка FULLTEXT. MySQL сделана для хранения и поиска информация, так что тут без вопросов.
База данных справится с любым объемом информации, тут уже дело в аккуратно написанных запросах. Что касается увеличения памяти, то тут есть варианты. 1. в php.ini прописать: memory_limit = 16M 2. в php скрипте: ini_set('memory_limit', '16M'); 3. в .htaccess: php_value memory_limit 16M Эти вопросы? Я сразу их пропустил, так как найти ответы очень легко в гугле. Это все основы, и материала на эту тему куча. -------------------- |
|
|
Letmetouchyou
|
Сообщение
#7
|
|
Mike, php.ini отпадает т.к. на локальном все отлично,а на хотсинге еррор.
причом только с одним документом. с остальными 30 ( короые успел проверить ) все хорошо ) |
|
|
UncleM |
26.1.2010, 0:36;
Ответить: UncleM
Сообщение
#8
|
|
с остальными 30 ( короые успел проверить ) все хорошо ) B) 30 чего? не понял... Если скрипт жрет столько памяти при одном запуске, то что будет, когда его начнут юзать другие люди? Если он не предназначен для других юзеров, то можно все на локалке сделать. -------------------- |
|
|
Letmetouchyou
|
Сообщение
#9
|
|
Mike, 30 файлов. ето цифровы карты.
я просто не пойм в чем соль. файл читаеться так [PHP]while (!feof($file)) { $line = fgets($file); for ($i=0;$i<sizeof($line_destroyed);$i++) { switch ($line_destroyed[$i]){ .....[/PHP] в кадм кейсе новые перменные. тоесть ничего глобального там созавать не может. а ерроер как раз на строку с explode. а сама строчка файла не превышает 30 символов |
|
|
UncleM |
26.1.2010, 1:42;
Ответить: UncleM
Сообщение
#10
|
|
explode создает массив. Может быть, там массивы создаются новые каждый раз? В конце концов, на новый просто не хватает памяти.
Использование explode внутри цикла всегда вызывает подозрения. -------------------- |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Взрыв мозга background-size | 4 | Андрей Ефимов | 3601 | 17.4.2014, 13:08 автор: -Андрей Ефимов- |
Текстовая версия | Сейчас: 29.3.2024, 6:37 |