Pull to refresh

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

Reading time 1 min
Views 778
Browsers
Translation
Тесты производительности нынче становятся все агрессивней, при этом похоже, что упор делается исключительно на искусственных тестах, которые могут показать нам производительность лишь некоторых компонентов браузеров в частности производительность выполнения JavaScript функций, выбранных для этих конкретных тестов.

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

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

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

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

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

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

Reading time 2 min
Views 6.6K
Regular expressions *
Я постоянно встречаю рекомендацию использовать, когда это разумно, обычный поиск вместо регулярных выражений, поскольку последние сильно медленнее. Но никогда не видел насколько медленнее и когда они становятся эффективнее. Но зуд покоя не дает и я решил сравнить их и посмотреть какие циферки можно увидеть в реальности…
Читать дальше →
Total votes 13: ↑7 and ↓6 +1
Comments 33

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

Reading time 1 min
Views 1.6K
Computer hardware Video cards CPU
Частенько по роду работы приходится подбирать железяки.

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

Помог как всегда Google :)
Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Comments 7

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

Reading time 1 min
Views 773
Opera
картинка для привлечения внимания

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

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

Таких же любопытных, как я, прошу под кат.
Читать дальше →
Total votes 115: ↑88 and ↓27 +61
Comments 126

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

Reading time 2 min
Views 5.3K
NoSQL *

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

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

О проекте и бенчмарки под катом
Total votes 72: ↑70 and ↓2 +68
Comments 50

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

Reading time 4 min
Views 19K
High performance *Open source *HTML *


Всем привет!

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

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

Приступим!
Total votes 19: ↑16 and ↓3 +13
Comments 13

$mol: reactive micromodular ui-framework

Reading time 28 min
Views 20K
Website development *CSS *JavaScript *Development of mobile applications *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 файлов, но с сервера они грузятся параллельно. Как такое может быть?


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


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


Читать дальше →
Total votes 54: ↑46 and ↓8 +38
Comments 150

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

Reading time 8 min
Views 13K
Programming *Assembler *System Programming *Compilers *Go *


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


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


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

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

Читать дальше →
Total votes 32: ↑30 and ↓2 +28
Comments 21

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

Reading time 8 min
Views 10K
Флант corporate blog System administration *Cloud computing *DevOps *Kubernetes *
Translation
Прим. перев.: Эта статья опубликована в официальном блоге Kubernetes и написана двумя сотрудниками Intel, принимающими непосредственное участие в разработке CPU Manager — новой возможности в Kubernetes, о появлении которой мы писали в обзоре релиза 1.8. В настоящий момент (т.е. для K8s 1.11) эта фича имеет статус бета-версии, а подробнее о её предназначении читайте далее в заметке.

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

Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Comments 1

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

Reading time 11 min
Views 45K
High performance *PHP *Programming *Web services testing *


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

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

Reading time 4 min
Views 14K
Southbridge corporate blog System administration *Server Administration *DevOps *
Translation

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


image

Читать дальше →
Total votes 28: ↑26 and ↓2 +24
Comments 0

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

Reading time 4 min
Views 51K
Python *Programming *
Translation


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

Читать дальше →
Total votes 35: ↑28 and ↓7 +21
Comments 30

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

Reading time 10 min
Views 5.7K
Computer hardware
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 →
Total votes 21: ↑20 and ↓1 +19
Comments 2

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

Reading time 11 min
Views 36K
.NET *C# *
image

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

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

Reading time 3 min
Views 8.5K
UltraVDS corporate blog Nginx *Apache *IIS *


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

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

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

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

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

Reading time 6 min
Views 1.8K
OTUS corporate blog Open source *Database Administration *
Translation
Перевод статьи подготовлен специально для студентов курса «Базы данных».




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

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

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

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


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

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

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

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

Reading time 8 min
Views 5.4K
High performance *JavaScript *Programming *Client optimization *TypeScript *

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



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


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


Читать дальше →
Total votes 24: ↑21 and ↓3 +18
Comments 5

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

Reading time 6 min
Views 8.3K
VK corporate blog VK API *GitHub *Web services testing *

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

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

Читать далее
Total votes 8: ↑6 and ↓2 +4
Comments 6

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

Reading time 6 min
Views 19K
ICL Services corporate blog High performance *CPU

Loongson 3A5000


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

Читать дальше →
Total votes 22: ↑19 and ↓3 +16
Comments 37
1