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

habr.com: Как не мусорить в Java

Интересная статья на habr.com о том, как писать на Java low-latency приложения так, чтобы в heap не создавался мусор и значит не вызывался сборщик мусора, который может привести к непредсказуемым задержкам в самый непододящий момент торгового дня. Почитайте также и комментарии.

Реклама

Все опции JVM

Чтобы посмотреть, какие опции поддерживает ваша версия Java, запускаем:

java -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal

и получаем на экране полный список:

Читать далее

Жил был программист Richard Rose

Жил был программист Richard Rose.

После работы на ведущие банки мира (Goldman Sachs, Morgan Stanley, Bank of America, UBS и прочее), он решил, что настало время уйти на вольные хлеба и реализовать свои идеи и наработки в коммерческом продукте. План состоял в том, чтобы создать движок, совмещавший OMS и соединение с рынком, который бы способен был перемещать сообщения с задержкой в микросекунды и даже меньше. Движок был написан на Java.

Читать далее

Java 11 и Epsilon GC

В Java 11 представлен новый экспериментальный сборщик мусора Epsilon GC. Несмотря на название, он не собирает мусор, а только аллоцирует память и не освобождает её. Соответственно, по исчерпании свободной памяти, возможен креш с OutOfMemory. Для чего такой сборшик мусора может пригодиться?

Читать далее

Java для торговых приложений? Вполне!

Как вы можете использовать Java для финансовых торговых приложений? Ведь Java тормозная, жрёт много памяти, сборщик мусора останавливает приложение, когда захочет. Разве Java годится для low-latency? Для этого непременно нужно писать на C, C++, а еще лучше на Verilog и использовать FPGA, не меньше! Java для high-frequency trading? Да вы шутите!? Java для алгоритмической торговли? Не смешите мои тапки!

Так или примерно так реагируют некоторые разработчики на использование Java в финансовых приложениях, где критичны скорость работы и высоки требования к latency.

Уверяю вас Java вполне подходит для финансовых торговых приложений и вот несколько причин почему.

Читать далее

Три книги по оптимизации Java

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

Эти книги особенно полезны для Java-разработчиков финансовых приложений. Ведь в финансовых приложениях как никогда верно высказывание «время — деньги». Если приложение медленно работает или зависает для выполенения какой-то фоновой задачи, например, сборки мусора, перекомиляции кода, когда требуется выставить заявку на рынок или обработать новые цены, важный момент может быть упущен и потери могут быть невосполнимыми.

Читать далее

Java-эксперты, которых надо знать в лицо

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

Читать далее

Top 15 вопросов по многопоточности в Java, которые могут задать на интервью в инвестиционном банке

Весьма толковый блог Java Reivisted разработчика, который работает в той же сфере, что и я. В его посте — краткая выжимка по многопоточности в Java, что может понадобиться освежить память перед интервью в инвестиционном банке.

Во имя высокой скорости обработки данных и снижения latency в брокерских отделениях банков стараются выжать из железа по-максимуму. Многопоточность тут важна и играет существенную роль, особенно в приложениях связанных с торговлей, доступом к биржам, обработкой рыночных данных, в движках алгоритмической торговли, в системах управленяи ордерами, в smart order routing системах. Чем ближе ваше приложение к рынку, тем ниже должна быть latency, тем выше требования к разработчикам, пишущим данные приложения.

Чтение на выходные: 12 факторов приложений готовых для облака

Интересный сайт 12factor.net про лучшие практики программирования приложений и выкатывания их на продакшен с упором на облачные прилодения. 

Сайт сделан в виде документа-манифеста с главами и иллюстрациями. Есть версия и на русском. Поучительное и полезное чтение.

И вот еще презентация на эту тему c демонстрацией этих принципов на Heroku, начиная с середины. Пользуясь этой презентацией, я завел пробный аккаунт на Heroku и вывел пробное Java-приложение, склееное с помощью Spring Boot. В результате я полюбил Spring Boot еще больше. Для low-latency он конечно не подойдет, но для рядовых приложений подходит прекрасно. Считаю, что Spring Boot должен освоить любой уважающий себя Java-разработчик: всегда пригодится. 

В качестве развития этой темы компания Pivotal дополнила 12 факторов еще тремя и опубликовала короткую книгу Beyond the 12 Factor App: Exploring the DNA of Highly Scalable, Resilient Cloud Applications

3 книги о Java и concurrency и плюс еще одна

Многопоточное программирование в Java в частности и в программировании вообще является обширной и сложной темой. В связи с изменениями в процессоростроении, произошедшими уже упочти 15 лет назад многопоточное программирование выходит в скиллах программиста low-latency систем на первый план. Для самостоятельного вдумчивого освоения этой темы требуется уйма времени и хороший учебный материал.

Читать далее