<rmcreative>

RSS

Все заметки с тегом «Optimization»

Можно уточнить:

    (11)
    (1)
  1. (2)
    (1)
  1. (2)
    (2)
    (1)
  1. (1)
    (1)
    (12)
  1. (2)
  1. pngslim, экстремальное сжатие png под Windows

    19 августа 2013

    Жмёт png без потерь лучше всего, что я пробовал. Использует довольно большое количество утилит, брутфорсит. Работает медленно. Если передать pngslim.cmd директорию, обрабатывает рекурсивно все png в ней по несколько штук параллельно.

    Пользуемся

    По ссылке в описании есть утилиты для jpeg и утилиты побыстрее для png, дающие чуть меньшее сжатие.

    9 комментариев
  2. Релизнулся Google mod_pagespeed

    12 октября 2012

    О данном модуле для Apache 2.2, призванном полностью автоматически улучшить скорость загрузки страниц, я уже кратко упоминал. Занимается он тем, что перед отдачей в браузер жмёт картинки, оптимизирует CSS и JavaScript, отдаёт нужные заголовки для браузерного кеширования ресурсов и делает всякие не сильно распространённые оптимизации. После всё кешируется на диске.

    2 комментария
  3. PHP Performance, Rasmus Lerdorf

    14 июня 2012

    Похоже, материалы с DevConf централизованно выкладываться не будут и всё остаётся на усмотрение докладчиков. Многие спрашивают слайды отца-основателя PHP, Расмуса Лердорфа. Вот они:

    PHP Performance

    Работают не во всех браузерах, листаются стрелками. Материал действительно интересный. Всем советую.

    9 комментариев
  4. XCallGraph

    29 мая 2012

    На днях был выложен на всеобщее обозрение ещё один инструмент для анализа результатов профайлинга, полученных при помощи XDebug. Событие весьма интересное, потому как старичок WinCacheGrind автором, похоже, заброшен, а WebGrind иногда нехватает.

    Написан инструмент на Java, поэтому потенциально кроссплатформенный (на данный момент имеются билды под Windows и Linux).

    Официальная страница

    XCallGraph обсуждается на форумах phpclub. Там же автор принимает пожелания и предложения.

    6 комментариев
  5. CSSO 1.2

    13 сентября 2011

    Вышла новая версия многообещающего минимизатора CSS. Как и в любом ПО появились некоторые регрессии… с кем не бывает. По идее, прошло достаточно времени, чтобы самые страшные вещи уже были поправлены.

    Ксати, именно первой паблик-версией CSSO я пользовался, когда готовил дизайн для CSS1K. Рекомендую.

    Комментировать
  6. Google Page Speed Service

    28 июля 2011

    Ни для кого не секрет, что скорость загрузки страниц зависит не только от времени генерации страницы, но и от количества и веса картинок, скриптов и файлов стилей. У нас первым серьёзно подошёл к данной проблеме Николай Мациевский, основавший впоследствии компанию WEBO, которая создала продукт WEBO Site SpeedUp. Продукт позволяет автоматически применить довольно большое количество техник клиентской оптимизации. Site SpeedUp ставится на тот же сервер, который генерирует страницы и выступает в роли умного кэша-оптимизатора.

    Google пошёл немного другим путём и, вместо коробочного решения, предоставил оптимизирующий прокси. То есть Google забирает страницы сайта, оптимизирует и раздаёт уже со своего CDN. Пока что доступ можно получить бесплатно по запросу, но сервис после обкатки станет платным.

    Особенности

    • Очень легко конфигурируется (всего одна CNAME) запись для домена.
    • Не работает с HTTPS.
    • Не поддерживает домены без www.
    • Не работает с Flash, потоками аудио и видео.
    • Не работает с файлами более 50 Мб.
    • Не работает с POST более 2 Мб.
    • Не работает без пропускания трафика через сервера Google (кстати, есть ещё mod_pagespeed для Apache).
    • Некоторые страницы можно исключить из обработки.

    Пробуем

    6 комментариев
  7. Book of speed

    17 июня 2011

    Англоязычная онлайн-книга по клиентской оптимизации за авторством Stoyan Stefanov, подарившего нам YSlow и smush.it.

    Готовы пять глав из девяти:

    1. The Performance Business Case
    2. The Life of Page 2.0
    3. Fewer Page Components
    4. Smaller Components
    5. Optimizing Images
    6. Parallel downloads
    7. Optimizing JavaScript and Ajax
    8. Optimizing CSS
    9. Psychology of performance
    3 комментария
  8. CSSO (CSS Optimizer)

    29 апреля 2011

    CSSO — зародившийся в недрах Яндекса оптимизатор CSS с комплексным подходом к проблеме. Проект молодой, но, в перспективе, выгодно выделяется среди остальных.

    Комментировать
  9. CLIO: command line image optimizer 1.0

    8 апреля 2011

    До недавнего времени для оптимизации изображений я пользовался, в основном, smush.it, иногда чередуя его с Google Page Speed. И тут возникла необходимость оптимизировать процесс: понадобилось оптимизировать около 300 изображений.

    Так появился данный набор, умеющий жать PNG/JPEG. На вход optimize.bat подаётся директория, из неё рекурсивно выбираются все изображения и обрабатываются идущими в комплекте утилитами. Отрабатывает за приемлемое время, даёт лучшие результаты, чем оптимизатор из Google Page Speed и smush.it.

    Пользуемся

    Комментарии и предложения очень приветствуются.

    26 комментариев
  10. Оптимизация ORDER BY RAND()

    10 января 2011

    Задача «выбрать 10 случайных постов» часто решается так:

    SELECT *
    FROM post
    ORDER BY RAND()
    LIMIT 10;

    Для совсем небольших проектов это будет работать, но когда проект начнёт расти начнутся проблемы. И начнутся они уже с 1500 записей. На моей рабочей машине этот запрос выполняется где-то 400мс.

    EXPLAIN показывает нам Using temporary; Using filesort, что означает создание временной таблицы (а для большого количества записей она ещё и на диск пишется) и не использование индекса. Виновник, как вы уже догадались — ORDER BY RAND().

    Чтобы использовать индекс можно выбрать не все данные, а только id:

    SELECT id
    FROM post
    ORDER BY RAND()
    LIMIT 10

    Теперь имея 10 id получим посты:

    SELECT post.*
    FROM (
        SELECT id
        FROM post
        ORDER BY RAND()
        LIMIT 10
    )  
    AS ids JOIN post ON post.id = ids.id

    Получаем результат примерно за 10мс, что несомненно лучше. Но и этого может не хватить.

    В этом случае можно поступить следующим образом:

    • По крону получить 10—20 вариантов случайных записей.
    • Записать в отдельную таблицу, предварительно очистив её.

    Далее делаем rand(1, 20) на сервере и выполняем очень простой и быстрый запрос:

    SELECT *
    FROM random_post
    WHERE random_id = :random_id

    Если нужно ещё быстрее — делаем аналог на Redis или memcached.

    14 комментариев