• Каковы возможные оптимизации нагрузки простейшего скрипта?

    Sardar
    @Sardar
    Трудно поверить, что в примере скрипт реальный. Если он делает много IO (файлы, выкачивает чего из сети), то вам нужен асинхронный сервер, возможно с memcached кешем. В случае PHP по моему не решаемо, тут только поднять как можно больше дешевых worker'ов. Но на каждый запрос, worker лочиться на IO и фактически бездействует все время.

    Node.js уже советовали, но я бы посоветовал pyramid под gUnicorn:gevent, чере nginx. Асинхронный сервер позволяет запускать сколько угодно green threads, работающих кооперативно. Если кто лочиться на IO, то отдает процессор соседу. На каждый запрос новый green thread.

    Повторяю, это все только если ваши скрипты блокирутся на IO или каким другим способом. Если задача CPU intensive, как в вашем примере, то вам просто надо настроить сервер, что бы он полностью использовал все ресурсы машины (может там один worker в pool'e). Также узнать, что у вас за сеть (может «сервер» на домашнем ADSL висит).
    Ответ написан
    Комментировать
  • Как работает кеш страницы статьи на Хабре?

    Sardar
    @Sardar
    Всю страницу обычно не кешируют, никогда не знаешь какой плагин будет добавлен позже, который потребует частого обновления. Хотя в таких ситуациях неплохо подходит double render. Результат первой отрисовки кешируется (пост, комменты), а вторая всегда активна (персональные данные, sidebar).

    Кешировать можно все комментарии поста одной простыней (пост.id -> HTML), сбрасывая при новых постах. Рисовать коменты дело не сложное.
    Ответ написан
    Комментировать
  • Из html в pdf. Посоветуйте хорошую библиотеку для php

    Sardar
    @Sardar
    Сначала читаем этот топик: habrahabr.ru/blogs/sysadm/113928/
    Затем ставим и используем: code.google.com/p/wkhtmltopdf/

    Плюсы подхода: настоящий рендер. Использовал html2pdf, но он пытается рисовать HTML сам через reportlab'овскую либу (вроде pypdf тоже умеет). В итоге графических глюков очень много, потрепало не мало нервов дизайнеру.

    Впрочем если верстка очень простая, то собственные рендеры пойдут. Но тогда вы не застрахованы от глюков рендера в самый неподходящий момент.
    Ответ написан
    2 комментария
  • Django и Apache: mod_wsgi или mod_proxy?

    Sardar
    @Sardar
    Самым удачным на мой взгляд будет nginx отдающий всю статику и проксирующий по доменному имени на uwsgi (сайты на джанго) и apache (все остальное). К апачу лучше доступ извне на прямую закрыть. Практика показала не плохую производительность (за ссылкой и деталями можно в личку, а то реклама).

    Вместо uwsgi неожиданно хорошо себя на практике показал gUnicorn с gevent worker'ами.
    Ответ написан