Рубрика «java» - 123

Интринсик или intrinsic-функция — функция, которую JIT-компилятор может встроить вместо вызова Java- и JNI-кода с целью оптимизации. Важный вывод из этого — intrinsic-функции не доступны в режиме интерпретатора. По умолчанию в HotSpot используется два JIT-компилятора C1 и C2, таким образом, может быть доступна реализация intrinsic-функции для каждого из JIT-компиляторов. Различия в реализации intrinsic-функций для разных JIT-компиляторов обуславливаются различным внутренним представлением кода (intermediate representation — IR).

В HotSpot реализовано несколько сотен интринсиков (их количество растёт от релиза к релизу). Описание всех intrinsic-функций можно найти в исходниках OpenJDK в файле vmSymbols.hpp. Ниже приведены полные списки интринсиков для JDK 7 (vmSymbols.hpp), JDK 8 (vmSymbols.hpp), JDK 9 (vmSymbols.hpp) и JDK 10 (vmSymbols.hpp).
Читать полностью »

На примере «JEP 110: HTTP/2 Client» (который в будущем появится в JDK) Сергей Куксенко из Oracle показывает, как команда его запускала, где смотрела и что крутила, чтобы сделать его быстрее.

Предлагаем вам расшифровку его доклада с JPoint 2017. В целом речь тут пойдет не про HTTP/2. Хотя, конечно, без ряда деталей по нему обойтись не удастся.

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

Банковскими услугами в России активно пользуется более 50% населения. Вне зависимости от возраста, специальности и размера бюджета, клиенту важно получать полную и достоверную информацию о состоянии счетов и быстрые ответы на свои вопросы. Для этого банки оптимизируют телефонию, разрабатывают скрипты разговора, создают роботов для ответов на типовые запросы. Помимо технологии, внедряются прогрессивные методики обучения, проходит регулярное тестирование знаний сотрудников и оценка качества обслуживания, но все держать в голове невозможно. Особенно, если в продуктовой линейке банка десятки различных продуктов, проходят акции и действуют специальные предложения для клиентов.

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

Как создавали большую энциклопедию для сотрудника - 1Читать полностью »

Объект в футляре

Это пятая и последняя статья серии, посвящённая использованию класса Optional при обработке объектов с динамической структурой. В первой статье было рассказано о способах избежания NullPointerException в ситуациях, когда вы не можете или не хотите использовать Optional. Вторая статья посвящена описанию методов класса Optional в том виде, как он появился в Java 8. Третья — методам, добавленным в класс в Java 9. В четвертой статье я представил класс, который расширяет возможности класса Optional на случай, когда при неудаче при обработке данных в методе нам необходимо обрабатывать информацию об этой неудаче.

В этой статье мы рассмотрим вопрос, стоит ли Optional использовать во всех тех местах, где могут появиться нулевые значения. Я приведу также мнение Brian Goetz, архитектора языка Java v Oracle об этом классе, и конечно, исполню данное в прошлой статье обещание — поощрю каждого читателя, прочитавшего все статьи серии, ценным подарком.
Читать полностью »

Apache Ignite: распределенные вычисления в оперативной памяти - 1

Привет!

Мы продолжаем интересоваться новыми решениями от компании Apache. Рассчитываем выпустить в мае книгу «High Performance Spark» Холдена Карау (книга в верстке), а в августе — книгу «Kafka: The Definitive Guide» Нии Нархид (еще в переводе). Сегодня же хотим предложить краткую ознакомительную статью об Apache Ignite и оценить масштаб интереса к теме.

Приятного чтения!
Читать полностью »

Недавно вышла новая версия распределённой SQL базы данных Apache Ignite, предлагаю взглянуть на новые фичи с позиции .NET.

Ignite Cluster

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

На прошлой неделе случился релиз десятки — и хотя Graal был доступен и раньше, теперь он стал ещё доступней — Congratulations, you're running #Graal! — просто добавьте

-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler

Что конкретно это может нам дать и где можно ожидать улучшений, и какие велосипеды надо начинать выпиливать?

Пример, который я буду рассматривать — частично надуманный, однако, основанный на реальных событиях.

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

Несколько дней назад зарелизилась новая версия Nginx — 1.13.10. Главная фича данного релиза — это нативная поддержка проксирования HTTP/2, и, как следствие, gRPC.

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

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

Но дело в том, что многим перформанс не интересен. Существует ещё множество проблем, которые куда важней, чем ускорение приложения на 1%. Поэтому больше половины докладов на этой конференции представляют собой вполне разумный материал, который каждый может попробовать использовать у себя.

Обзор программы докладов по перформансу делался в отдельном посте, — поэтому в этой статье мы не выбрасываем их вообще, но описания будут максимально краткими.

За более подробной информацией — добро пожаловать под кат.

Программа JPoint: из жизни разработчика - 1Читать полностью »

Привет! Представляю вашему вниманию перевод статьи "REST API Best Practices" автора Krishna Srinivasan.

REST становится общим подходом для представления сервисов окружающему миру. Причина его популярности заключается в его простоте, легкости использования, доступе через HTTP и другие. Существует неправильное представление о том, что все данные, доступные через сеть, считаются REST, но это не так. В этой статье я собираюсь объяснить вам некоторые best practices, которые вы должны всегда помнить при реализации собственного REST приложения. Я бы хотел услышать ваш опыт в REST приложениях, поэтому если вы знаете best practies, которые не упомянуты в этой статье, пожалуйста, поделитесь с нами в комментариях.

Disclamer: все best practies основаны на моем личном опыте. Если вы имеете другое мнение, не стесняйтесь отправлять его мне на email, и мы обсудим его.

Здесь представлен список best practices, которые будут обсуждаться в этой статье:

1. Конечные точки в URL – имя существительное, не глагол
2. Множественное число
3. Документация
4. Версия вашего приложения
5. Пагинация
6. Использование SSL
7. HTTP методы
8. Эффективное использование кодов ответов HTTP
Читать полностью »


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