Перейти к основному содержимому

66 записей с тегом "JVM"

Посмотреть все теги

· 11 мин. чтения

1. Обзор

Виртуальная машина Java (JVM) — это виртуальная машина, которая позволяет компьютеру запускать программы Java. В этой статье мы увидим, как легко диагностировать работающую JVM.

У нас есть много инструментов, доступных в самом JDK, которые можно использовать для различных действий по разработке, мониторингу и устранению неполадок. Давайте взглянем на jcmd , который довольно прост в использовании и может предоставить различную информацию о работающей JVM. Кроме того, начиная с версии JDK 7, jcmd является рекомендуемым инструментом для расширенной диагностики JVM без снижения производительности или с минимальными потерями производительности.

2. Что такое jcmd ?

Это утилита, которая отправляет запросы диагностических команд на работающую JVM. Однако он должен использоваться на той же машине, на которой работает JVM. Дополнительные подробности доступны в его документации .

· 3 мин. чтения

1. Введение

В этом руководстве мы кратко рассмотрим и узнаем о кэш-памяти кода JVM .

2. Что такое кэш кода?

Проще говоря, JVM Code Cache — это область, где JVM хранит свой байт-код, скомпилированный в собственный код . Мы называем каждый блок исполняемого нативного кода nmethod . Метод n может быть полным или встроенным методом Java.

Компилятор «точно в срок» (JIT) является крупнейшим потребителем области кэша кода. Вот почему некоторые разработчики называют эту память кэшем JIT-кода.

· 2 мин. чтения

1. Обзор

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

2. Используйте класс потока

Метод getAllStackTrace() класса Thread дает трассировку стека всех запущенных потоков. Он возвращает Map , чьи ключи являются объектами Thread , поэтому мы можем получить набор ключей и просто перебрать его элементы, чтобы получить информацию о потоках.

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

· 7 мин. чтения

1. Введение

JVM поставляется с различными вариантами сборки мусора для поддержки различных вариантов развертывания. Благодаря этому мы получаем гибкость в выборе того , какой сборщик мусора использовать для нашего приложения.

По умолчанию JVM выбирает наиболее подходящий сборщик мусора на основе класса хост-компьютера. Однако иногда наше приложение сталкивается с серьезными узкими местами, связанными с GC, требующими большего контроля над используемым алгоритмом. Вопрос в том, «как можно выбрать алгоритм GC?»

В этой статье мы попытаемся ответить на этот вопрос.

2. Что такое GC?

· 5 мин. чтения

1. Обзор

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

В этой статье мы рассмотрим некоторые наиболее распространенные способы интеграции кода R в Java.

2. R-скрипт

Для нашего проекта мы начнем с реализации очень простой функции R, которая принимает вектор в качестве входных данных и возвращает среднее значение его значений. Мы определим это в специальном файле:

· 7 мин. чтения

1. Обзор

Анализ байт-кода является обычной практикой среди разработчиков Java по многим причинам, таким как поиск проблем с кодом, профилирование кода и поиск классов с определенными аннотациями.

В этой статье мы рассмотрим способы просмотра байт-кода файла класса в Java.

2. Что такое байт-код?

Байт-код — это промежуточное представление программы Java, позволяющее JVM преобразовывать программу в инструкции по сборке машинного уровня .

· 10 мин. чтения

1. Обзор

В этом руководстве мы более подробно рассмотрим новый компилятор Java Just-In-Time (JIT) под названием Graal.

Мы посмотрим, что из себя представляет проект Graal , и опишем одну из его частей — высокопроизводительный динамический JIT-компилятор.

2. Что такое JIT - компилятор?

Давайте сначала объясним, что делает JIT-компилятор.

· 11 мин. чтения

1. Обзор

JVM интерпретирует и выполняет байт -код во время выполнения. Кроме того, он использует JIT-компиляцию для повышения производительности.

В более ранних версиях Java нам приходилось вручную выбирать между двумя типами JIT-компиляторов, доступными в Hotspot JVM. Один оптимизирован для более быстрого запуска приложений, а другой обеспечивает более высокую общую производительность. Java 7 представила многоуровневую компиляцию, чтобы получить лучшее из обоих миров.

В этом руководстве мы рассмотрим JIT-компиляторы клиента и сервера. Мы рассмотрим многоуровневую компиляцию и ее пять уровней компиляции. Наконец, мы увидим, как работает компиляция методов, отслеживая журналы компиляции.

2. JIT-компиляторы

· 2 мин. чтения

1. Обзор

Иногда при программировании на Java может быть полезно программно найти версию Java, которую мы используем. В этом руководстве мы рассмотрим несколько способов получить версию Java.

2. Соглашение об именах версий Java

Вплоть до Java 9 версия Java не следовала Semantic Versioning . Формат был 1.X.Y_Z . X и Y обозначают основную и дополнительную версии соответственно. Z используется для обозначения выпуска обновления и отделяется символом подчеркивания «_». Например, 1.8.0_181 . Для Java 9 и более поздних версий версия Java следует семантическому управлению версиями. Семантическое управление версиями использует формат XYZ . Это относится к основным, второстепенным и патчам. Например, 11.0.7 .

3. Получение версии Java

· 5 мин. чтения

1. Обзор

В этом кратком руководстве мы познакомимся с несколькими различными способами получения размера кучи работающего Java-приложения.

2. джкмд

Чтобы найти информацию о куче и метапространстве работающего приложения Java, мы можем использовать утилиту командной строки jcmd :

jcmd  GC.heap_info