- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте, уважаемые форумчане.
Растолкуйте, пожалуйста, следующее явление.
Почему так происходит? Пхп же создает объект $xml который занимает память. Не пойму :no:
Так он мгновенно его считывает и выплёвывает или как вы хотели?! И вообще в чём вопрос то?
А если он его выплевывает, тогда как он с ним дальше работает?
А в чём именно вопрос?
xml-файл лишь в "человекочитабельном" виде весит 1.2 мб
А когда он в виде структуры в памяти, он вполне может весить меньше.
;8759236']А в чём именно вопрос?
Вобщем я делаю библиотеку фб2. Решил потестировать скрипты на быстродействие, использование памяти и т.д. И вот тут наткнулся на сабж. Мне интересно как так выходит, когда пхп читает 1 мб файл а на использовании памяти скриптом это почти не заметно.
;8759236']
xml-файл лишь в "человекочитабельном" виде весит 1.2 мб
А когда он в виде структуры в памяти, он вполне может весить меньше.
Не думаю, что 1.2 мб "человекочитабельного" хмл помещается в 1 Кб.
З.Ы. Понимание этого мне нужно для оптимизации работы будущего сайта.
Попробуйте сделать xml-файл всего с одной текстовой строкой, длиной 1мб, а так же, выключить всякие акселераторы и пр.
И посмотрите, сколько будет кушать скрипт.
Чудес не бывает :)
[umka] добавил 02.04.2011 в 02:02
Попробуйте вызывать memory_get_usage(true);
Возможно, функция simplexml_load_file() возвращает только указатель и в силу каких-то особенностей, объём выделенной памяти не учитывается.
simplexml_load_file это по сути сторонняя к php либа.
память она имеет честь кушать совершенно по особому, поэтому
а) в мемори лимитах это не учитывается поэтому пхп функции для измерения бесполезны
б) расширение мемори-лимита не поможет если памяти будет не хватать
Поэтому для больших файлов лучше использовать потоковые либы.
p.s.: и хотя это не баг, тем не менее ответ взят отсюда http://bugs.php.net/45291 (последний абзац)
Во первых надо еще посмотреть память на пике при помощи memory_get_peak_usage - если весь скрипт состоит только из процитированного кода, то вполне возможно, что память могла быть освобождена, также вариант что парсится xml потоком, не загружая предварительно файл, а xml в виде дом заниммает в разы меньше места
Во первых надо еще посмотреть память на пике при помощи memory_get_peak_usage
На пиковое использование памяти я тоже смотрел. Оно отличается разве что на несколько байт.
В любом случае всем спасибо за объяснение. Немного прояснили ситуацию.
ali7 добавил 02.04.2011 в 11:40
p.s.: и хотя это не баг, тем не менее ответ взят отсюда http://bugs.php.net/45291 (последний абзац)
Вот теперь все стало ясно :) Спасибо большое!