Пара new в горячем методе может вообще не попасть в кучу — а после безобидного if внезапно вернуть аллокации обратно. Разбираемся, как C2 принимает такие решения, где ломается скалярная замена и как проверить всё это через JMH и диагностические флаги JVM. Разобраться в JVM
Человек готовит договор для внешней стороны, закрашивает в нём чёрным прямоугольником номер счёта, сохраняет в PDF, отправляет. Прямоугольник на месте, ничего не видно, всё в порядке.Номер счёта при этом уезжает вместе с файлом. Целиком, в открытом виде — его достаёт любой…
Модуль weakref позволяет создавать "слабые" ссылки на объекты."Слабой" ссылки не достаточно, чтобы объект оставался "живым": когда на объект ссылаются только "слабые" ссылки, сборщик мусора удаляет объект и использует память для других объектов. Однако, пока объект не удалён, "слабая"…
У вас есть регулярные задачи? Скажем, провести планерку по понедельникам в 10:30, сформировать отчет клиенту по четвергам в 18:00? Или клиент по вторникам накатывает обновления, и админ должен с 10:00 быть на постоянной связи? Нужно начинать рабочий день с чек-листа? 20 числа оплатить аренду? Если вы работаете в Redmine, вы не можете штатными средствами поставить регулярную задачу. Придется каждый раз ставить ее вручную. Это лишнее время, лишнее внимание и риск ошибки. Читать дальше →