ПрограмуванняРезкий скачек памяти при использовании SimpleXML

Сегодня отлавливал интерестный баг.

Парсил прайс от поставщика размером 6 Мегабайт. Процентов 50% парсилось нормально, а потом раз и скрипт требовал 90 Мегабайт памяти. Выглядело это примерно вот так:

...
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 6141.69Kb
memory usage: 90380.56Kb

Версия php на локальной машине:

PHP 5.3.2-1ubuntu4.2 with Suhosin-Patch (cli) (built: May 13 2010 20:01:00) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
    with Xdebug v2.0.5, Copyright (c) 2002-2008, by Derick Rethans
    with Suhosin v0.9.29, Copyright (c) 2007, by SektionEins GmbH

Начал разбираться в чем проблема. Создал тему на форуме zendframework.ru. В результате, вместе с Сашей Стешенком выяснили, что в php 5.3.3 этого бага уже нет и памяти при парсинге xml он ощутимо меньше кушает:

peak memory usage: 4652.38Kb

PS. Кстати в ядро php 5.3.3 наконец включен FPM!
PS2. Как собрать php 5.3.3 из исходников можно прочитать в статье “Install NginX and PHP 5.3.3 with PHP-FPM, MySQL and APC

ПрограмуванняПоддержка Zend Framework в NetBeans 6.9

Думаю сабж это такая вещь о которой многие слышали, но мало кто пользуется :)

Нарыл хороший скринкаст на эту тему:

Хочу сказать, что получилось довольно удобно и юзабельно — не нужно в консоль ходить, чтобы сгенерировать экшн/контроллер/вьюшку/модель, сразу подсказки по всем командам видно + команды фильтруются во время набора. Из плюшек о которых я не знал, так это то что лейаут теперь можно активировать командой “enable layout “, а также появилась возможно создавать файлы форм, моделей, таблиц и даже генерировать классы форм из таблиц (если верить команде “create db-table.from-database”). Вобщем Zend_Tool потихоньку обростает функционалом.

Правда сейчас есть небольшой баг. Для работы с zf.sh NetBeans генерирует файлик ~/.zf.ini, в котором прописывает include_path к своей директории и класс провайдер:

php.includepath = "/usr/local/etc/netbeans-6.9/php/zend:.:/usr/share/php:/usr/share/pear"
basicloader.classes.0 = "NetBeansCommandsProvider"

Тут includepath нужно исправить на include_path. Этот баг уже висит в багрепорте http://netbeans.org/bugzilla/show_bug.cgi?id=188572. Думаю скоро пофиксят.

ПрограмуванняСлайды к докладу “Zend Framework и Doctrine” на ZFConf 2010

ПрограмуванняСлайды к докладу “Zend Framework и мультиязычность” на ZFConf 2010

ПрограмуванняClean .svn folders

Свого часу я дуже необережно оновив двіг Кукорами до нестабільної версії LS з trunk’у. Для мене це вилилось в купу часу затраченного на багфікси (так склалось, що відкотитись було неможливо), а для LS в халявні багфікси :). З того часу в директорії /var/www/my/cookorama.net з’явилися три піддерикторії “source”, “source-with-ls-svn”, “source-without-ls-svn”.

Апдейт до нової версії LS виглядає наступним чином:

  • Апдейчу з транка LS сорси в “source-with-ls-svn”.
  • Розрулюю конфлікти в конфізі і можливо мержу свої багфікси з їхніми.
  • Перекидаю DocumentRoot на “source-with-ls-svn” і дивлюся чи все працює.
  • Переношу все це діло в “source-without-ls-svn” і тру всі папочки .svn
    find . -depth -type d -name '.svn' -execdir rm -rf '{}' \;
  • Накочую вміст “source-without-ls-svn” на “source” і перевіряю зміни в конфізі, шаблонах і мовних файлах.
  • Тестую Кукораму на локальній машині і якщо все ок, то комічу (Кукорама лежить в окремому репозиторії) і апдейчу продакшн.

ПрограмуванняКонференція присвячена Zend Framework - ZFConf 2010

ZFConf 2010Наприкінці березня в Пітері відбудеться конференція присвячена Zend Framework - ZFConf 2010. На головній сторінці оф. сайту можна ознайомитись з списком запланованих доповідей. Дві з них буду читати я ~_^:

Загалом на конференції буде багато цікавих і досвідчених людей (навіть один з розробників Zend Framework!). То ж якщо у вас є бажання потрапити на конференцію - переходьте на сторінку попередньої реєстрації.

ПрограмуванняІнструменти для візуалізації логів профайлера xdebug

Напевно багато php розробників використовують профайлер xdebug для пошуку вузьких місць в своїх аплікухах. Але просто дивитися логи не зручно, тому були створені інструменти для їх візуалізації. Про них я розповім.

Webgrind

Webgrind це набір php скриптів, які можна поставити на локальний чи віддалений веб сервер. Далі все просто - закачуємо лог і дивимося статистику.
image
Найочевидніший плюс Webgrind’а це мультиплатформенність і простота встановлення.
Показує список функцій які викликалась, кількість викликів (Invocation Count), загальний час витрачений на виклик (Total Self Cost) і загальний час витрачений на виконання (Total Inclusive Cost).
Можна приховати php функції. Можна перейти всередину функції, щоб побачити розгорнуту статистику.
(ще…)

Програмування, РоботаКукорама. Як це було?

Варіант лого by ScratchІдея запустити власний кулінарний проект в нас (ми, це я і Андрій Мануйленко aka Scratch) з’явилася давно. Спочатку думали зробити пошукову систему по рецептам, потім базу рецептів і врешті-решт вирішили робити соціальну мережу. Весною ми зареєстрували домен cookorama.net (користуючись нагодою хочу подякувати Оленці Занічковській aka @HelenkaF за допомогу з придумаванням назви проекту, концепції і слогану) і запустили першу версію сайту на платформі LiveStreet.
(ще…)

Unix, ПрограмуванняТеми оформлення для NetBeans

Вже майже три тижні пройшло як я почав використовувати FreeBSD. Спочатку на лептопі, а зараз і на десктопі. Все мені подобалось і тільки тема в NetBeans’а була якась не правильна…

screenshot-netbeans-ide-67

Почав копати і накопав ось цей фак Look and Feels in NetBeans.

Якщо вірити тому, що написано, то в Gnome по дефолту повина використовуватись L&F “GTK”. А на ділі в мене NetBeans завантажувався з темою Metalic. Вирішилася ця проблема додаванням –laf GTK до команди запуску. Повністю вона виглядає так:

# netbeans67 --laf GTK

L&F GTK
Таким NetBeans мені подобається більше :)

Unix, ПрограмуванняFreeBSD & Zend Framework

Виявляється в FreeВSD можна поставити ZF з портів:

cd /usr/ports/www/zend-framework && make install clean

І, якщо вірити distinfo, то на сьогодні доступна остання стабільна версія ZendFramework-1.8.4. На відміну від Ubuntu, де ZF теж доступний в якості пакету, але оновлюється той пакет з великим запізненням.

Вперед »