Архив автора: alexkachanov

Инструменты для копания в JVM

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

Читать далее

Почувствовать машину

Термин «Mechanical Sympathy» ввел в обиход программистов разработчик Мартин Томпсон. Взял он его из мемуаров знаменитого шотландского гонщика Джеки Стюарта (Jackie Stewart) 60-ых годов, неизменного победителя всех гонок Formula-1 1965-1973 годов. Когда его спросили, как ему удается побеждать, он ответил:

You don’t have to be an engineer to be a racing driver, but you do have to
have mechanical sympathy.

Вам не надо быть инженером, чтобы быть хорошим гонщиком, достаточно просто чувствовать машину.

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

Какое отношение это все имеет к программированию?

Нет нужды пересказывать всё, что было уже сказано в многочисленных презентациях Мартина Томпсона, который даже свой блог назвал Mechanical Sympathy. Последние записи в блоге, увы, датированы 2013 годом, но статьи, опубликованные в нем, по-прежнему актуальны и интересны.

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

Данная статья является лишь моим скромным пересказом идеи mechanical sympathy.

Читать далее

Проблема: Spring Boot и «service returned Bad Request»

Може кому-то пригодится. Столкнулся давеча с такой ошибкой при создании проекта в Spring Boot:

spring init -d=web,camel demo
Using service at https://start.spring.io
Initializr service call failed using 'https://start.spring.io' - service returned Bad Request (unexpected 400 error)

Читать далее

15 наиболее известных HFT-компаний

В книге Майкла Льюиса «Flash Boys» много слов сказано о таинственных HFT-фирмах, которые якобы гребут деньги лопатой с помощью мощных компьютеров, хитроумных алгоритмов и докторов физических наук. Удивительно, что Майкл Льюис не называет эти компании напрямую, все время не договаривая, кого именно он обвиняет в «нечестной игре» на рынке акций США.

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

Читать далее