Как стать автором
Обновить

Javascript производительность? А как насчёт производительности перерисовки страниц?

Браузеры
Перевод
Тесты производительности нынче становятся все агрессивней, при этом похоже, что упор делается исключительно на искусственных тестах, которые могут показать нам производительность лишь некоторых компонентов браузеров в частности производительность выполнения JavaScript функций, выбранных для этих конкретных тестов.

Удивительно, что так мало внимания уделяется другим, более соответствующим аспектам производительности современных страниц, либо вообще не уделяется. Например, как быстро работают браузеры с динамично меняющимся стилем страницы (CSS)?

На Velocity 2009 Линдси Симон из компании Google говорил именно об этом. И на слайдах из презентации есть пара итересных графиков.
opera css change perfomance
Выяснилось, что Оперовский движок очень быстро работает с динамично меняющимся контентом страницы, а это именно то, что используется в интернете повсеместно. Что, если в будущем производительность браузера будет измеряться более комплексно, в отличии от простого JavaScript теста?

Еще одни нюанс, который я отметил в другой день, – это недостаточные и узкоспециальные тесты памяти, которые не принимают во внимание, что различные браузеры работают с памятью по-разному. Например, они игнорируют разделяемую память Хрома, и совсем не похоже, что бы учитывался продвинутый кеш Оперы.

Кроме того Опера очищает кэш от неиспользуемых элементов каждые 10 минут, но не видно что бы это было отражено в отчёте испытания. Мы могли бы очищать кеш все время, но тогда нам пришлось бы пожертвовать производительностью, как по всей видимости, делает Firefox.

В контексте комплексного тестирования JavaScript и памяти Джаракан, похоже, увеличит показатели искусственных JavaScript тестов, но, возможно, за счет использования большего количества памяти.
Всего голосов 38: ↑31 и ↓7 +24
Просмотры 759
Комментарии 28

Примитивное сравнение производительности search и indexOf в Javascript

Регулярные выражения *
Я постоянно встречаю рекомендацию использовать, когда это разумно, обычный поиск вместо регулярных выражений, поскольку последние сильно медленнее. Но никогда не видел насколько медленнее и когда они становятся эффективнее. Но зуд покоя не дает и я решил сравнить их и посмотреть какие циферки можно увидеть в реальности…
Читать дальше →
Всего голосов 13: ↑7 и ↓6 +1
Просмотры 6.5K
Комментарии 33

Сравнительные тесты большого числа процессоров и видеокарт

Компьютерное железо Видеокарты Процессоры
Частенько по роду работы приходится подбирать железяки.

Достаточно долго искал в инетрнете что-либо типа сводных тестов по большому количеству железа, чтобы можно было при выборе опираться на какие-нибудь стандартные попугаи.
Понятно что можно заюзать MarkBench, Sandr-у, но уж очень хотелось что-то on-line и постоянно обновляющееся c огромным количеством железа.

Помог как всегда Google :)
Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 1.6K
Комментарии 7

Opera 10.50 для самых нетерпеливых

Opera
картинка для привлечения внимания

Как известно, компания Opera готовит нам на рождество (Капитан сказал, что их рождество 25 декабря) отличный подарок, преальфу браузера версии 10.50, основным достоинством которого называется скорость.

В детстве, под новый год, я всегда пытался найти подарки, которые готовили родители. Я рылся по всем шкафам в квартире и, кажется, мне всегда это удавалось. Вот и сегодня я решил найти следы браузера Opera 10.50 в интернете :)

Таких же любопытных, как я, прошу под кат.
Читать дальше →
Всего голосов 115: ↑88 и ↓27 +61
Просмотры 762
Комментарии 126

HyperDex — новое опенсорсное NoSQL key-value хранилище, заточенное на очень быстрый поиск

NoSQL *

Авторы позиционируют HyperDex как распределённое, отказоустойчивое, легко-маштабируемое, заточенное на очень быстрый поиск NoSQL key-value хранилище.

Главная фича — новый принцип хранения объектов в многомерном эвклидовом пространстве (рис. слева), используя гиперпространственное хэширование (hyperspace hashing) (на который, кстати, авторы сейчас получают патент), которое позволяет выполнять большинство типичных задач от 2 до 13 раз быстрее, чем в MongoDB, Redis, Cassandra.

О проекте и бенчмарки под катом
Всего голосов 72: ↑70 и ↓2 +68
Просмотры 5.2K
Комментарии 50

Парсеров всем! Анализируем и тестируем существующие HTML парсеры

Высокая производительность *Open source *HTML *


Всем привет!

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

Да, в этой статье я предлагаю выложить все парсеры на стол и измерить!

Приступим!
Всего голосов 19: ↑16 и ↓3 +13
Просмотры 19K
Комментарии 13

$mol: reactive micromodular ui-framework

Разработка веб-сайтов *CSS *JavaScript *Разработка мобильных приложений *Node.JS *

Сколько нужно времени, чтобы просто вывести на экран большой список, используя современные фреймворки?


Список на 2000 строк ReactJS AngularJS Raw HTML SAPUI5 $mol
Появление списка 170 ms 420 ms 260 ms 1200 ms 50 ms
Обновление всех его данных 75 ms 75 ms 260 ms 1200 ms 10 ms

Напишем нехитрое приложение — личный список задач. Какие у него будут характеристики?


ToDoMVC ReactJS AngularJS PolymerJS VanillaJS $mol
Размер ( html + js + css + templates ) * gzip 322 KB 326 KB 56 KB 20 KB 23 KB
Время загрузки 1.4 s 1.5 s 1.0 s 1.7 s 0.7 s
Время создания и удаления 100 задач 1.3 s 1.7 s 1.4 s 1.6 s 0.5s

Небольшая головоломка: перед вами синхронный код, загружающий и обрабатывающий содержимое 4 файлов, но с сервера они грузятся параллельно. Как такое может быть?


Синхронная параллельная загрузка ресурсов


А теперь прошу за мной в кроличью нору, настало время удивительных историй...


Читать дальше →
Всего голосов 54: ↑46 и ↓8 +38
Просмотры 20K
Комментарии 150

GCCGO против «стандартной» реализации

Блог компании Intel Высокая производительность *Программирование *Компиляторы *Go *


Какие Go бенчмарки показывают лучшие результаты, будучи собранными gccgo и почему?


Ответы на эти вопросы под катом.

Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Просмотры 12K
Комментарии 13

Ускорение конкатенации строк в Go своими руками

Программирование *Assembler *Системное программирование *Компиляторы *Go *


Сегодня мы будем разгонять склеивание коротких строк в Go на 30%. Причём для этого нам не нужно будет модифицировать сам Go, всё это будет реализованно в виде сторонней библиотеки.


Под катом вас ждут:


  • Сравнение +, strings.Builder и собственной функции конкатенации
  • Детали внутреннего устройства строк в Go
  • Совсем немного ассемблера

Данную статью можно также считать предлогом обсудить CL123256: runtime,cmd/compile: specialize concatstring2. Идеи по улучшению этого change list'а приветствуются.

Читать дальше →
Всего голосов 32: ↑30 и ↓2 +28
Просмотры 12K
Комментарии 21

Как работает CPU Manager в Kubernetes

Блог компании Флант Системное администрирование *Облачные вычисления *DevOps *Kubernetes *
Перевод
Прим. перев.: Эта статья опубликована в официальном блоге Kubernetes и написана двумя сотрудниками Intel, принимающими непосредственное участие в разработке CPU Manager — новой возможности в Kubernetes, о появлении которой мы писали в обзоре релиза 1.8. В настоящий момент (т.е. для K8s 1.11) эта фича имеет статус бета-версии, а подробнее о её предназначении читайте далее в заметке.

Публикация рассказывает о CPU Manager — бета-фиче в Kubernetes. CPU Manager позволяет лучше распределять рабочие нагрузки в Kubelet, т.е. на агенте узла Kubernetes, с помощью назначения выделенных CPU на контейнеры конкретного пода.

Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Просмотры 10K
Комментарии 1

Сравниваем PHP FPM, PHP PPM, Nginx Unit, React PHP и RoadRunner

Высокая производительность *PHP *Программирование *Тестирование веб-сервисов *


Тестирование производилось с помощью Yandex Tank.
В качестве приложения использовались Symfony 4 и PHP 7.2.
Целью являлось сравнение характеристик сервисов при разных нагрузках и нахождение оптимального варианта.
Для удобства все собрано в docker-контейнеры и поднимается с помощью docker-compose.
Под катом много таблиц и графиков.
Читать дальше →
Всего голосов 72: ↑67 и ↓5 +62
Просмотры 44K
Комментарии 46

Тестирование PostgreSQL с HugePages в Linux

Блог компании Southbridge Системное администрирование *Серверное администрирование *DevOps *
Перевод

Ядро Linux предоставляет широкий спектр параметров конфигурации, которые могут повлиять на производительность. Главное — выбрать правильную конфигурацию для вашего приложения и рабочей нагрузки. Как и любой другой базе данных, PostgreSQL необходима оптимальная настройка ядра Linux. Неправильные настройки могут привести к снижению производительности. Важно проводить сравнительный анализ производительности базы данных после каждого сеанса настройки. В одном из своих предыдущих постов под названием "Tune Linux Kernel Parameters For PostgreSQL Optimization" я описал некоторые из наиболее полезных параметров ядра Linux и то, как они помогают повысить производительность базы данных. Теперь я поделюсь результатами сравнительного тестирования после настройки HugePages в Linux под различными нагрузками PostgreSQL. Я провел полный набор тестов под множеством различных нагрузок PostgreSQL с различным числом параллельных клиентов.


image

Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 14K
Комментарии 0

Самые быстрые Python веб-фреймворки в 2019

Python *Программирование *
Перевод


В 2018 году Python укрепил свои позиции популярности среди программистов и вошел в Top 3 самых популярных языков на github. Все больше и больше людей переходит на светлую сторону…то есть Python. Появилось еще большее количество разработчиков, которые интересуются данным языком и ведут разработку своих проектов с его помощью. Одним из популярных направлений для Python является web-разработка. Хочется, чтобы не только процесс разработки был удобным и быстрым, но и сами проекты могли похвастаться скоростью и стабильностью работы.

Читать дальше →
Всего голосов 35: ↑28 и ↓7 +21
Просмотры 50K
Комментарии 30

Independent Tests of Baikal-T1 — the first Russia's 28 nm SoC — and BFK 3.1 Evaluation Board

Компьютерное железо
Tech journalist Igor Oskolkov of 3DNews.ru has recently tested publicly available version of the evaluation board or, as the vendor calls it, the developer software-hardware complex, under the code name BFK 3.1 with the Russian SoC Baikal-T1 based on the MIPS P5600 Warrior architecture. Here goes the English translation of his text, that was first published in Russian by servernews.ru.
Read more →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 5.6K
Комментарии 2

Оптимизация производительности .NET (C#) приложений

.NET *C# *
image

Статей с подобным заголовком достаточно много, поэтому постараюсь избежать банальных тем. Надеюсь, что даже опытный разработчик найдёт здесь что-то полезное для себя. В данной статье будут рассмотрены только простые механизмы и подходы оптимизации, которые позволят применить их, затратив минимум усилий. И эти изменения не увеличат энтропию вашего кода. В статье не будет уделено внимания, что и когда нужно оптимизировать, эта статья скорее о подходе к написанию кода в целом.
Читать дальше →
Всего голосов 48: ↑44 и ↓4 +40
Просмотры 34K
Комментарии 51

Битва WEB серверов. Часть 2 – реалистичный сценарий HTTPS:

Блог компании UltraVDS Nginx *Apache *IIS *


О методике мы рассказывали в первой части статьи, в этой мы тестируем HTTPS, но в более реалистичных сценариях. Для тестирования был получен сертификат Let’s Encrypt, включено сжатие Brotli на 11.

На этот раз попробуем воспроизвести сценарий развертывания сервера на VDS или в качестве виртуальной машины на хосте с типовым процессором. Для этого устанавливали лимит в:

  • 25% — Что в пересчете на частоту ~ 1350МГц
  • 35% -1890Мгц
  • 41% — 2214Мгц
  • 65% — 3510Мгц

Количество единовременных подключений сократилось с 500 до 1, 3, 5, 7 и 9,
Читать дальше →
Всего голосов 24: ↑20 и ↓4 +16
Просмотры 8.4K
Комментарии 13

Sysbench и распределение случайных величин

Блог компании OTUS Open source *Администрирование баз данных *
Перевод
Перевод статьи подготовлен специально для студентов курса «Базы данных».




То, что вы, возможно, не знали о генерации случайных чисел в sysbench

Sysbench — это популярный инструмент для тестирования производительности. Первоначально он был написан Петром Зайцевым в начале 2000-ых и стал стандартом де-факто для тестирования и бенчмарка. В настоящее время он поддерживается Алексеем Копытовым и размещен в Github по адресу.

Однако, я заметил, что, несмотря на его широкое распространение, в sysbench есть малознакомые многим моменты. Например, возможность простой модификации тестов MySQL с помощью Lua или настройка параметров встроенного генератора случайных чисел.

О чем эта статья?


Я написал эту статью с целью показать, как легко можно настроить sysbench под ваши требования. Есть много способов расширения функциональности sysbench и один из них — настройка генерации случайных идентификаторов (ID).

По умолчанию sysbench поставляется с пятью различными вариантами генерации случайных чисел. Но очень часто (на самом деле, почти никогда) ни один из них не указывается явно, и еще реже можно увидеть параметры генерации (для вариантов, где они доступны).

Если у вас возник вопрос: «И почему меня это должно интересовать? Ведь значения по умолчанию вполне подходят», — тогда этот пост призван помочь вам понять, почему это не всегда так.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 1.6K
Комментарии 0

JavaScript нанобенчмарки и преждевременные тормоза

Высокая производительность *JavaScript *Программирование *Клиентская оптимизация *TypeScript *

Здравствуйте, меня зовут Дмитрий Карловский и раньше я… ежедневно измерял свою пипирку, но у распространённых линеек никак не хватало точности для измерения столь малых размеров.



Поэтому я решил, что хватит это терпеть!… и выстругал свою с нанометровыми делениями, поддержкой прохладного и разгорячённого измерения, тестами, шарингом и прочими вольностями. Так что приглашаю и вас присоединиться к этой спец олимпиаде по измерению скорости своего JS кода.


Для начала разберём этот кейс:


Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Просмотры 5.3K
Комментарии 5

Бенчмарки VKUI и других ребят из UI-библиотек

Блог компании VK ВКонтакте API *GitHub *Тестирование веб-сервисов *

Меня зовут Григорий Горбовской, я работаю в Web-команде департамента по экосистемным продуктам ВКонтакте, занимаюсь разработкой VKUI. 

Хочу вкратце рассказать, как мы написали 8 тестовых веб-приложений, подключили их к моно-репозиторию, автоматизировали аудит через Google Lighthouse с помощью GitHub Actions — и как решали проблемы, с которыми столкнулись.

Читать далее
Всего голосов 8: ↑6 и ↓2 +4
Просмотры 7.8K
Комментарии 6

Энтузиаст протестировал новые китайские процессоры Loongson 3A5000

Блог компании ICL Services Высокая производительность *Процессоры

Loongson 3A5000


Энтузиаст состоит в различных чатах в Telegram и как-то недавно наткнулся на канал по процессорам Loongson и ему удалось провести различные тесты данного процессора.

Читать дальше →
Всего голосов 22: ↑19 и ↓3 +16
Просмотры 15K
Комментарии 34
1