![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| armor85 |
|
|||
![]() Злой программер ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 6.2.2007 Где: Сочи, блин! Репутация: нет Всего: -1 |
Здравствуйте,
при попытке записать более 2000 узлов (в каждом ещё по пять узлов), возникает ошибка: Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 50 bytes) in может можно это както обойти? |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: нет Всего: 32 |
Для начала надо научиться быть немного информативнее в своих вопросах
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
armor85, ограничения, наклывадемые на объем памяти, выделяемой РНР - 64 Мб. Ты их превысил в результате построения своей структуры(кстати, да, вопрос задан довольно туманно
1. Если можешь сменить генератор(или парсер - что ты там испольщуешь?), на такой, который не выгружает полностью дерево в память, а постоянно работает с файлом(вроде файла подкачки: взял необходимое, остальное - записал обратно в файл), то ты потеряешь в скорости, но обойдешь ограничение. 2. Если можешь сменить структуру данных, чтоб у тебя не требовалось 2000х5 узлов - ты обойдешь ограничение. 3. Если ты можешь сменить логику(алгоритм), чтоб не требовалось одновременно обрабатівать 2000х5 узлов, ты обойдешь ограничение. А вопросы типа "у меня самолет не летает. что делать?" вызывают легкое раздражение - неужели тяжело было написать на два абзаца больше, но чтоб не вытягивать подробности по кусочкам? |
|||
|
||||
| armor85 |
|
|||
![]() Злой программер ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 6.2.2007 Где: Сочи, блин! Репутация: нет Всего: -1 |
Ошибку понял.
Записываю данные из базы данных MySQL, своего рода кэш, но для своих целей. Т.ё. 2000 товаров (например) с 5 параметрами, записываю из базы в xml в виде дерева. Это действие выполняется один раз в час по cron. Каждый раз идёт обход всех товаров и всех их свойств, файл переписывается полностью. Сейчас использую domit, т.к. он легче в использовании. Но php dom была таже история. SimpleXML нету. Да и еще проблема, товаров может быть и 10000, а оно уже сейчас выделываться начинает. Это сообщение отредактировал(а) armor85 - 9.5.2008, 14:25 |
|||
|
||||
| armor85 |
|
||||
![]() Злой программер ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 6.2.2007 Где: Сочи, блин! Репутация: нет Всего: -1 |
Собственно вопрос решил, посадил всё на SimpleXML. 4000x5 полёт нормальный.
Но проблема:
Помогите переписать под SimpleXML.
$t->title почему-то пустой, хотя должно быть число. |
||||
|
|||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
armor85, ты уверен, что тебе нужен кеш, на xml? Это сообщение отредактировал(а) Fortop - 11.5.2008, 17:31 -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| armor85 |
|
|||
![]() Злой программер ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 6.2.2007 Где: Сочи, блин! Репутация: нет Всего: -1 |
Fortop, уверен.
Помогите переделать под SimpleXML. И что я выше писал тоже. |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: нет Всего: 32 |
Что-то мне тоже сомнительна польза такого кэша
|
|||
|
||||
| armor85 |
|
|||
![]() Злой программер ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 6.2.2007 Где: Сочи, блин! Репутация: нет Всего: -1 |
Feldmarschall, сразу скажу что это не КЭШ, это что-то типа кэша (самому смешно).
Эти файлы вроде снимка цен, по которым потом строится ценовые индексы. Компонент который их строит работает с xml. Убиваю сразу двух зайцев, 1. информация на определенное число, когда делался снимок, т.к. все в разных файлах 2. что что компонент просит (т.е. xml), то я ему и даю. Вопрос актуален. ^^^ |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
armor85, Эти снимки дешевле, проще и удобнее хранить в БД.
И манипулировать с ними быстрее в БД, а не в XML. Добавлено через 2 минуты и 14 секунд Сделать же экспорт в XML - с полпинка. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| armor85 |
|
|||
![]() Злой программер ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 6.2.2007 Где: Сочи, блин! Репутация: нет Всего: -1 |
Fortop, я с битриксом работаю, и поэтому на прямую в базе данных ничего хранить не могу,
а через его api слишком долго получается. И вообще оставим тему целесообразности использования xml. Помогите лучше под simple всё переписать. Кто поможет, + в репу. |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 2 Всего: 73 |
armor85, тебе не SimpleXML нужен, тебе нужен XMLWriter (т.е. SAX) http://ru2.php.net/XMLWriter.
Для чтения можно использовать XMLReader. Это что касается объемов от 2Мб. SimpleXML и DOM работают нормально на объемах до 2Мб (ну и еще от сервера/количества памяти выделяемой для PHP зависит, но я бы не рекомендовал увеличивать ее объем). -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| armor85 |
|
|||
![]() Злой программер ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 6.2.2007 Где: Сочи, блин! Репутация: нет Всего: -1 |
IZ@TOP, Спасибо за совет.
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: X технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |