![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
acdcee |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.7.2007 Репутация: нет Всего: 1 |
Вот не давно написал целый класс, даже библиотеку для своих нужд.
Смысл в библиотеки в том что вывод и работа с html тегами представлена как в JS технологией DOM. Т.е каждый узел имеет свои свойства и прочее. Так вот при выводе уже переведенного с объектов дерево html тегов в строку, столкнулся с такими проблемами как скорость загрузки и выделеной памяти. При разборе более 500 тегов: выделяется памяти около 4 мегабайт, скорость загрузки документа (в браузер) 0,200 приблизительно. При разборе более 2000 тегов: выделяется памяти около 8 мегабайт, скорость соотвественно упала где то до 0,700 приблизительно. Вопрос В чем причина упадка скорости. Почему в некоторых ситауциях не работает такая проверка как
И второе по какому принципу dump_mem строить документ, и сколько памяти выгружается для этого, зависит ли это от оюъема загруженного в него документа. К чему все было сказано, да к тому что таким образом я к примеру меняю аттрибут класса <div class="test"> через метод getElementById своего класса ( т.е получаю объект данного узла и меняю значение аттрибута class на то что мне нужно без всяких там прописей html в php) и динамически вывожу на экран посетителя. В принцепе скорость нормальная на загрузку и сервер не виснет. Как тут и что можно оптимизировать???? Плюс еще есть parser шаблонов. |
|||
|
||||
krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
acdcee, а тестировали на сервере или на домашнем компе?
Насколько я помню в PHP есть расширения которые позволяют работать с DOM документами напрямую может вм стоит посмотреть в их сторону. |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
Значит массив в какой-то момент времени обнуляется. Мистики не бывает.
Целиком загружает документ в память и полностью его парсит. XMLReader и XMLWriter |
|||
|
||||
acdcee |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 5.7.2007 Репутация: нет Всего: 1 |
Есть такие функции как xml_create_object и прочее, точную название не помню уже давно в мануал не лазил.
Ну к примеру не скомпилирован данный php движек в сторону этих функций, и уже видел такой пример. Дальше что мне делать ??? ![]() Вот и приходится самому писать... А как на счет того чтобы при парсинге собрать данный класс, засунуть его в serialize а потом с этого файла делать вот так к примеру
т.е я пропарсил весь документ, в сериализе засунул данный класс и всех потомков по дереву, и при проверке больше необращаюсь к парсингу. Так как serialize сохраняет и ссылки и к примеру nodeName уже будет иметь имя тега, можно вызывать экземпляр класса dom_document И дальше им пользоваться, при чем appendChild и прочее не так уж в движке часто используются и что самое главное сегодня тестровал уже напрочь вылизанный класс, вся потеря памяти и большой жер идет при парсинге и загоне тегов в объекты. Как такой вариант для работы над классами????? Плюс что еще не мало важно, это включения таких методов как innerHTML и innerText ![]() Добавлено через 6 минут и 42 секунды Тестировал и на сервере и на локальной машине. Наверно сервер мощноватый был - скорость загрузки была 0.090 памяти кушал около 8 метров Локальный сервер выдавал не много хуже - скорость 0.600 память 8.9 метров XMLReader и XMLWriter - тут будут проблемы с тегами и как xml_parse будет ругаться на DOCTYPE c аттрибутами PUBLIC Плюс данные функции не корректно себя ведут с тегами meta input и не каждый дизайнер будет их править У меня же они автоматом исправлялись Плюс как мне известно в скорости не большой у них отрыв. |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |