Архив метки: java

Зачем выставлять стартовые параметры -Xmx и -Xms у JVM на одно значение

В стартовых параметрах Java есть два параметра -Xmx и -Xms, которые отвечают за то, какой объем heap вы хотите выделить вашему приложению при старте (-Xms), и какой максимальный объем памяти (-Xmx) вы хотите выделить для программы за все время ее работы.

Опыт показывает, что для улучшения производительности крупного «тяжелого» Java-приложения лучше всего этим двум параметрам давать одно и то же значение. Как выбрать конкретное значение, рассказывается в другой статье. В данной заметке я просто приведу несколько аргументов в пользу этой стратегии.

Читать далее

Собрать библиотеку hsdis для просмотра ассемблерного кода. Насколько глубока кроличья нора?

Библиотека hsdis удобна для преобразования листинга машинного кода, создаваемого JIT-компилятором, в читаемый ассемблерный код. Просмотр ассемблерных инструкций может пригодиться для проверки и отладки какого-то критического участка кода, который, например, чувствителен к latency.

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

Читать далее

Что надо знать программисту об устройстве современного процессора

Данная статья — всего лишь краткое введение в основные концепции устройства современного процессора. Цель статьи — дать основы, чтобы не повторяться при объяснении каких-то нюансов в других статьях. Все отсылки из тех статей к техническим подробностям и деталям будут вести сюда.

Читать далее

Что такое нестабильность latency (jitter), и как с нею бороться

При написании low-latency приложения мы боремся не только за low-latency, но и за стабильность этой low-latency.

Читать далее