Рубрика «производительность» - 28

Часто при разработке приложений на PHP встаёт вопрос кэширования всего выводимого приложением шаблона, либо какой-то его части, которая довольно статичная во времени. Если при разработке использовался какой-либо шаблонизатор, то данный вопрос решается «из коробки». Но не во всех приложениях на PHP используются шаблонизаторы, а вопрос о кешировании шаблона или его части остаётся открытым. Ниже описан один из вариантов решения данной проблемы.

image

Читать полностью »

imageСовсем о Julia не говорим тут. Один пост двухлетней давности от Ализара, и всё. Исправляем ситуацию.

Большинство языков программирования сталкиваются с одной и той же проблемой — их создатели без ума от вещей, которые меня практически не волнуют: безопасность, системы типов, гомоиконность и так далее. Всё это очень круто, не спорю, но когда я вожусь по вечерам над своим очередным проектом, мне важна только его работоспособность и производительность. Код — это всего лишь средство для достижения некоторой цели, а его «выразительность» для меня важна так же, как и «выразительность» какого-нибудь каталитического конвертера.

Такой подход к делу некоторые презрительно называют ковбойским программированием. Но мне кажется, что это не самый правильный образ — ковбой вынужден периодически устраивать привалы из-за физических ограничений своего коня. Давайте лучше представим одержимого учёного, эдакого профессора, который неделями пропадает в лаборатории, а потом выходит оттуда изнурённый, с затуманенным взором, со своим новым хитроумным изобретением, которое разваливается при первом же запуске.
Читать полностью »

Под катом перевод довольно старого поста Фабиена (Fabien Potencier) на тему print vs echo, примечательного, на мой взгляд, методом установления «истинны». В отличии от подавляющего большинства подобных исследований, в этом вы не найдете запуска скриптов с echo и print миллионы раз.
Читать полностью »

С версии RHEL 6.4 в LVM2 включена поддержка thin provision. На русский я бы перевёл это как «тонкое резервирование», хотя перевод неточен и совершенно не согласуется с реальностью, поэтому далее наравне с русским будет использоваться английское написание.

Thin provisioning — это создание логических томов, которые изначально используют немного места и «растут» по мере записи в них данных. В ZFS это реализовано давно по самой философии этой ФС. В VMware это используется в каждом продукте. Дошло дело до LVM2, широко применяемом в Linux в наши дни. Также одним из основных нововведений является thin snapshots, когда для снэпшотов нет необходимости резервировать место заранее, а он «растёт» вместе с изменёнными данными. Также разрешаются и поощряются вложенные снэпшоты (снэпшоты снэпшотов в любой глубиной), при этом заявляется об отсутствии при этом падения производительности. О нескольких нюансах использования будет рассказано в статье.

Для стабильной работы thin provision в LVM2 требуется ядро 3.4. В Red Hat бэкпортировано и работает на их «классическом» 2.6.32.
В близкой мне Debian Wheezy thin provisioning недоступен ввиду отсутствия ключа при компиляции lvm2 --with-thin=internal и других сложностей. При необходимости, для целей теста, можно скомпилировать этот пакет из исходников.

Меня больше интересовали не снэпшоты, а производительность «тонких логических томов» (Thin Logical Volume) для использовании на серверах. Для нетерпеливых скажу сразу — падение производительности наблюдается, и существенное. Подробности ниже.
Читать полностью »

Два месяца назад компания Google выпустила первую стабильную версию языка программирования Dart 1.0, который позиционируется как альтернатива JavaScript. При всей своей простоте для написания маленьких скриптов, с помощью Dart можно создавать и сложные модульные веб-приложения, использовать библиотеки, дебаггеры, редакторы кода и другой инструментарий. Веб-разработка становится проще и удобнее.

16 января была официально представлена новая версия Dart 1.1 с повышенной скоростью выполнения скомпилированного JavaScript-кода. Например, в тесте Richards производительность выросла на 25%, по сравнению с первой версией.

Dart 1.1 стал на 25% быстрее, сравнялся с идиоматическим JavaScript и теперь подходит для серверов
Читать полностью »

60 FPS? Легко! pointer events:none!

Вы, наверное, уже читали интересную статью о том, как можно отключать эффекты :hover при скроле – это позволяет здорово сохранить отзывчивость сайта, но имеет один недостаток – вам приходится опираться на один общий класс, и это плохо.

.hover .element:hover {
  box-shadow: 1px 1px 1px #000;
}

Читать полностью »

Позволяет одним движением мыши помечать новые комментарии прочитанными.

Сделаны версии для трёх браузеров — Chrome, Opera и Firefox.

Нужно зажать Shift и провести мышкой над новыми комментариями — каждый комментарий, над которым прошла мышь, будет прочитан.
Не нужно долго ждать, пока стандартная фича от Хабры прокрутит до каждого нового комментария.
Удобно в случае, если новые комментарии расположены близко и их видно все сразу. Один взмах мыши — и всё готово.

Если зажать Ctrl-Shift, то сбросятся также все дети от того комментария, над которым провели мышкой.
Читать полностью »

Довольно подробное и интересное изложение материала, касающегося кэша и использования.

Автор, Mark Nottingham, — признанный эксперт в области HTTP-протокола и веб-кэширования. Является председателем IETF HTTPbis Working Group. Принимал участие в редактировании HTTP/1.1, part. 6: Caching. В настоящий момент участвует в разработке HTTP/2.0.

Текст распространяется под лицензией Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.

От переводчика: об опечатках и неточностях просьба сообщать в личку. Спасибо.
Читать полностью »

Результаты применения SPDY на сайтах GoogleРовно четыре года назад компания Google анонсировала протокол SPDY, который задумывался как апгрейд для HTTP 1.1 с целью значительно повысить скорость работы всех типов соединений. SPDY позволяет вдвое уменьшить задержку (latency) при работе через HTTP. Делается это за счёт трёх методов: 1) мультиплексирование запросов; 2) расстановка приоритетов для запросов; 3) сжатие заголовков HTTP.

Первые «лабораторные» тесты SPDY показали увеличение скорости загрузки веб-страниц на 55%, в мобильных сетях — на 23%. Впрочем, независимые тесты на реальных сайтах не показали вообще никакой прибавки производительности. Одна из причин — у реальных сайтов ресурсы подгружаются с разных доменов, в том числе с тех, где нет поддержки SPDY.

За прошедшие четыре года многое изменилось. Сам SPDY оптимизирован и вырос до версии 3.1, и его решено сделать основой для протокола следующего поколения HTTP 2.0. Нынешняя реализация поддерживается во всех современных браузерах, в том числе Chrome, Opera, Firefox и даже Internet Explorer, в десятках серверных платформ и на многих крупных сайтах.
Читать полностью »

Сравнение производительности всей линейки смартфонов Nexus в одном видео

На днях мне встретилось в Сети интересное видео, опубликованное ресурсом PhoneBuff. На этом видео одновременно сравнивалась производительность всех смартфонов Nexus. Сравнение — весьма наглядное, поскольку мы видим все пять дисплеев, а все приложения на всех устройствах запускаются одновременно.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js