Есть такая неприятная ситуация, когда память в куче заканчивается, и сборщик мусора тратит все больше и больше времени, пытаясь ее безрезультатно освободить, потому что объекты еще используется. Когда на это тратится почти 100% процессорноного времени, JVM может внезапно выбросить OutOfMemoryException в треде, который попытался выделить еще память. Как правило, это означает полную смерть треда, а может и всего приложения. Что еще неприятнее, отловить эту ситуацию изнутри практически нереально.
Но, как оказалось, можно хотя-бы сообщить об этом наружу, что можно использовать чтобы послать, скажем, письмецо с сервера о том что сервис помер, или даже убить и перезапустить его.
Делается это опцией для JVM:
java ... -XX:OnOutOfMemoryError="shell command; ..."
Ну а что туда подставить, сами можете догадаться. Это может быть шелл-скрипт, который через mail пошлет вам письмо, либо найдет pid этой JVM, пристрелит и запустит ее или что угодно еще.
Показаны сообщения с ярлыком java. Показать все сообщения
Показаны сообщения с ярлыком java. Показать все сообщения
четверг, 30 июня 2011 г.
среда, 20 октября 2010 г.
Словесный понос 0.1.1
Пофикшена потрясающая бага со шрифтом в Windows XP (слишком мелкий). Как? Смотрите сорец :)
git repository
download *nix
download win
git repository
download *nix
download win
понедельник, 18 октября 2010 г.
Словесный понос
Недельки три назад я разразился удивлением по поводу Write Attack - маленькой программки для тех, кто хочет просто написать некоторую статью, но у него "творческий кризис". Суть ее в общем-то проста. Это обычный текстовый редактор, который, во-первых, имеет лимит времени, во-вторых - цель по количеству слов. Во время "работы" над текстом функции сохранения, копирования, вставки - отключаются. Если вы не успели набрать заметку вовремя, она просто будет уничтожена.
Это должно как-то мотивировать на написание текстов, повышая креативность.
Но вот ведь есть одна проблема - во-первых готовая сборка есть только под Windows, во-вторых - она же криво работает под wine, в третьих - мне лень собирать ее под что-то еще (и я не уверен что она работать будет правильно - ведь выделять в ней текст можно, а в любой системе с X11 выделение и копирование это одно и то же. Ну и потом, мне захотелось полностью скопировать ее функционал.
Так что я написал свою версию, не обремененную вышеперечисленными недостатками. Она работает везде. Я пробовал ее и там и сям, не нашелся только Mac, но если вдруг... я уверен, что работает и там. Правда, вам придется поставить JRE, чтобы ее запустить. Она простая, в ней нет ничего лишнего. Поставить цели, сделать Start, и писать. Успели - радуйтесь, не успели - ну, напишите еще разик :)
git repository
download *nix
download win
Это должно как-то мотивировать на написание текстов, повышая креативность.
Но вот ведь есть одна проблема - во-первых готовая сборка есть только под Windows, во-вторых - она же криво работает под wine, в третьих - мне лень собирать ее под что-то еще (и я не уверен что она работать будет правильно - ведь выделять в ней текст можно, а в любой системе с X11 выделение и копирование это одно и то же. Ну и потом, мне захотелось полностью скопировать ее функционал.
Так что я написал свою версию, не обремененную вышеперечисленными недостатками. Она работает везде. Я пробовал ее и там и сям, не нашелся только Mac, но если вдруг... я уверен, что работает и там. Правда, вам придется поставить JRE, чтобы ее запустить. Она простая, в ней нет ничего лишнего. Поставить цели, сделать Start, и писать. Успели - радуйтесь, не успели - ну, напишите еще разик :)
git repository
download *nix
download win
среда, 18 августа 2010 г.
Немножко про тюниг GC в Java
Для начала немножко хороших статеек:
http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#gc_pause
http://www.petefreitag.com/articles/gctuning/
А все потому что было приложение, которое тормозило. А тормозило потому что много новых объектов создавалось и бросалось. И никак это пофиксить было нельзя. Но чуть увеличенные Xms и Xmx и смена GC на CMS решили практически все.
http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#gc_pause
http://www.petefreitag.com/articles/gctuning/
А все потому что было приложение, которое тормозило. А тормозило потому что много новых объектов создавалось и бросалось. И никак это пофиксить было нельзя. Но чуть увеличенные Xms и Xmx и смена GC на CMS решили практически все.
Подписаться на:
Сообщения (Atom)