Java на habrahabr

Май 6, 2012

 

Безопасная публикация и инициализация Java-объектов, или #когдаужепочинятdoublecheckedlocking

Хабы: JAVA

Пост из серии «будни перформанс-инженеров» и «JavaOne круглый год».

К моему величайшему facepalm'у на прошедшем JavaOne была тьма вопросов про double-checked locking, и как правильно делать синглетоны. На большую часть этих вопросов уже ответил Walrus, а здесь я хочу подытожить. Надеюсь этим постом раз и навсегда поставить точку в разговорах про double-checked locking и синглетоны. А то мне придётся сделать резиновую печать с URL этого поста и ставить её спрашивающим на лоб.
Читать дальше →

Java на habrahabr

Февраль 15, 2012

 

JAVA / Немного про повторное использование объектов

Недавно я наткнулся на блог, который ведет Peter Lawrey. Там можно найти интересную информацию, которая касается производительности кода под JVM.

Там я нашел непривычный подход, который состоит в повторном использовании объектов. Непривычен он по нескольким причинам:

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

Java на habrahabr

Ноябрь 28, 2011

 

JAVA / [Опрос] Что вы предпочтете для осуществления простейшего эксклюзивного доступа, исходя из про

Java на habrahabr

Ноябрь 25, 2011

 

JAVA / Исследуем exception handling на HotSpot

(пост из серии «будни перформанс-инженеров»)

Меня в личке спросили, что я могу сказать по поводу производительности try-catch, ну и исключений вообще. Итак, вот мой развёрнутый ответ.

ru.java на livejournal

Май 6, 2011

 

Терабайты данных

Вопрос не совсем про java, но в контесте java приложения. Грубо говоря хранится лог, постоянно добавляются
новые записи, удаляются старые, редко делаются запросы найти небольшую группу данных по дате и 1-2 признакам.
Сейчас все лежит в MySql.

Неожиданно стало известно что объем данных станет 10 терабайт. 100 миллионов записей каждый день.
В чем такое сейчас принято хранить? У кого есть практический опыт?

Java на habrahabr

Март 19, 2011

 

JAVA / Java Performance на JavaOne 2011

На стремительно надвигающейся JavaOne в Москве мы снова представляем Java Platform (Performance). Будем рады вас там видеть!

Краткий анонс того, что мы будем делать в этом году:

  • оба дня на стенде «JVM Performance & Monitoring» мы будем по очереди тусоваться;
  • 12 апреля, 17:30, про настройку GC в синем зале рассказывает Владимир, есть слайды с питерской сессии;
  • 12 апреля, 18:30, оккупацию синего зала продолжают Алексей и Сергей с очередным Java Platform Performance BoF, есть старые слайды с питерской сессии;
  • 13 апреля, 12:30, в кроваво-красном зале Алексей рассказывает про бенчмаркинг, гораздо подробнее, чем было в Питере;
  • 13 апреля, 16:15, Сергей приходит в белоснежный зал рассказывать про Java Memory Model
Feedforward

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

Полная программа — на сайте конференции. Пока ещё можно зарегистрироваться по смешной цене :)

Java на habrahabr

Январь 14, 2011

 

JAVA / Сбор интересных вопросов по Java Performance

Привет, хабражители!

Грядут очередные конференции Java-разработчиков в Петербурге и Москве. Пока точные даты и места определяются, мы бы хотели заранее «закинуть удочку» для одной из наших сессий.

Для начала, о нас: мы бравые парни, по-крупному занимающиеся Java performance'ом. Мы работали в Sun Microsystems, теперь работаем в Oracle, в команде, посвящающей 100% своего времени разным перформансным штукам, в т.ч. методологиям тестирования, быстрым алгоритмам, оптимизациям в Java/C++ коде, моделям памяти, микроархитектурным изыскам на x86 и SPARC.

У нас в голове есть несколько возможных тем, о которых мы бы хотели вам рассказать: и про JMM, и про concurrency, и про performance вообще — настолько много, что хотелось бы посвятить больше времени нужным вещам. Кроме того, напрашивается встреча в формате «вопрос-ответ», когда и у вас будет достаточно времени для подготовки вопроса, и у нас — для подготовки хорошего ответа.

Так что, к делу: Какие у вас вопросы о производительности (Java)?

ru.java на livejournal

Ноябрь 2, 2010

 

Cloud Servlet Containers

Ув.All, существуют ли какие-то решения для обьединения нескольких Servlet Containers в один виртуальный ? Насколько я понимаю, решения типа Tomcat Cluster просто обмениваются информацией о сессиях а с точки зрения деплоймента, логов, JMX каждый сервер сам по себе ? Конечно, часть проблем можно решить с помощью shared диска - но хотелось бы чего-нибудь типа "поставил ОС, софт, задал имя кластера - готово, сервер стал мощнее". Даже за счет ограничения доступа к файлам и запуска тредов.

Спасибо

Java на habrahabr

Октябрь 28, 2010

 

JAVA / [Ссылка] Оптимизация производительности: эффективное взаимодействие с виртуальной машиной

У заказчика на production возникли серьезные паузы из-за Garbage Collector-а.
Изучая интернет наткнулся вот на эту презентацию. Написано на русском и просто.
Некоторые вещи для меня были новыми.

Garbage-First есть уже в 1.6.14 (http://habrahabr.ru/blogs/java/68501/)
Мануал по GC http://www.oracle.com/technetwork/java/gc-tuning-5-138395.html

ru.java на livejournal

Сентябрь 13, 2010

 

JBoss и открытые JAR-файлы

Началось всё с того, что пред-продакшн сервер выдал нам "too many open files". Выдалось это после второй попытки пропатчить наше мега-приложение. Мега-приложение грузится своим деплойером, расширяющим SubDeployerSupport, поэтому все силы были брошены сначала на него...

Но в процессе борьбы выяснилось, что в /proc лежит множество линков вида:
server/default/tmp/deploy/tmp1536561351976467536qwe.sar (deleted)

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

По мотивам был найден следующий пост: http://management-platform.blogspot.com/2009/01/classloaders-keeping-jar-files-open.html

Оказалось, что JarFile не закрывает открытые потоки!!! Это было откровением...

Вроде как понятен стал метод борьбы (указан в посте), но он почему-то не сработал для JBoss. Как минимум, мне нужно каким-то хитрым образом запихать свой класс-лоадер заместо URLClassLoader. Но там всё-равно ещё остаются открытые дескрипторы, которые я выловил указаной в посте хитрой утилитой http://blogs.sun.com/roller/resources/quinn/ZipFileMonitor.jar

Кто-нибудь сталкивался с такой проблемой? Как решали?
Может быть можно запатчить саму Java-машину? http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4167874 Вроде бы баг пофикшен для 7-й версии...