|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
Добрый день. подскажите пожалуйста, кто знает наиболее оптимальный алгоритм для формирования большого файла XML. Сейчас я формирую XML файл стандартным способом Код: php 1.
И дальше добавляю элементы, атрибуты и детей. Все хорошо, пока количество записей из БД не переваливает за 20 тыс. Начинает подвисать и падать сервер. Проблема в нехватке памяти. Как сделать этот сбор оптимально. Делать промежуточное сохранение файла и потом заново открывать его на запись и продолжать писать в конец. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 14:33 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
NewLine, в случае большого объёма данных - лучше использовать не DOM, а потоковую запись - XMLWriter ( http://php.net/manual/en/book.xmlwriter.php ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 14:38 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
авторв случае большого объёма данных - лучше использовать не DOM, а потоковую запись - XMLWriter В этом случае данные будут сразу писаться в файл? Не будет память тратиться, а только время выполнения скрипта? Или операции просто более быстрые? Я просто полагаю, что количества записей у меня перевалит за 100 тыс. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 15:02 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
NewLine, можно в файл, а можно сразу клиенту отдавать. запись в поток - быстрее и памяти не жрёт по сравнению с построением дерева( у дом-дерева есть другие преимущества) 100к записей - понятно. Размер записи типичный? PS что характерно - ничего php-специфичного в этом нет ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2016, 16:00 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
Размер записи типичный. Переписал на XMLWriter. Поставил лимит 20 тыс. Скрипт очень долго выполняется. Уже мину 5. всего несколько команд используется из XMLWriter. Как вообще оптимизировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 14:52 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
NewLine, затык скорее не в выводе данных, а в их подготовке к выводу. XMLWriter несколько десятков мегабайт в секунду легко отдаёт ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 15:06 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
Вы имеете ввиду сама запись данных в файл долго происходит? sql запрос простой. просто вытаскивает все. Дальше я каждые 1000 итераций делаю Код: php 1.
Чтоб память очищалась. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 15:18 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
NewLineВы имеете ввиду сама запись данных в файл долго происходит? запись быстро происходит NewLineДальше я каждые 1000 итераций делаю выкиньте эту "оптимизацию", XMLWriter сам в состоянии в поток писать(в файл или клиенту отдать) Код: php 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 15:42 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
Ну да, вроде 20 тыс. записей он протянул. Но если больше, все равно какая-то оптимизация нужна. Или мощности сервера увеличивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 16:57 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
NewLine, код показывай. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 18:47 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
авторкод показывай. Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 19:12 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
В конце вот так Код: php 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 19:18 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
NewLineВ конце вот так Код: php 1.
откуда вы это взяли???? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 00:07 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
автороткуда вы это взяли???? Примет в нете нашел - http://codeinthehole.com/writing/creating-large-xml-files-with-php/ ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 10:49 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
Ну вопрос все равно мне кажется не в этом, а в большом объеме данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 10:50 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
NewLineПримет в нете нашел - http://codeinthehole.com/writing/creating-large-xml-files-with-php/ говнокод NewLineНу вопрос все равно мне кажется не в этом, а в большом объеме данных. небольшой объём )) $listAnnounce - он что - весь в памяти? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 11:27 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
Изопропил $listAnnounce - он что - весь в памяти? Об этом как-то не думал. Ну вообще да. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 11:30 |
|
Формирование большого файла XML средствами PHP
|
|||
---|---|---|---|
#18+
NewLine, Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
не вижу проблем в скорости на сотне тысяч записей ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 11:45 |
|
|
start [/forum/topic.php?fid=23&fpage=39&tid=1460898]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 129ms |
0 / 0 |