В живота на всички нас ги има онези гадни периоди на депресия и мрак. Докато те траят, през главата ти често минават мисли за алкохол, наркотици и дори самоубийство. Но най-накрая моя такъв период, продължил последните две години и половина, приключи – Eclipse вече не хвърля грешки поради недостиг на памет!
Странно е как може да се занимавам сериозно с професионално програмиране на Java от толкова много време и все пак да допуска такава глупава аматьорска грешка(*). Изключението в заглавието е най-честата причина работната ми среда да забива. Дълго време си мислех, че Java е зъл демон смучещ памет, вместо човешки души и че 2GB са приятен, но недостатъчен лукс. Но когато сложих и третото чипче и Eclipse продължи да гърми с OutOfMemory, без дори да заеме цялата физическа памет, ситуацията започна да ме съмнява. След кратко допитване до познати, открих че следния ред в конфигурацията прави магии:
Цялото това нещо минава и за сървъра на който съм качил нещата. Защо се получава и каква е цялата врътка с това PermGen може да прочетете тук. Аз вече съм един щастлив java developer, който отново си е пуснал всичките добавки към работната среда и не му се е налагало да я рестартира няколко дена. Отново, да се чуди човек как не ми е хрумнало да се поинтересувам защо става така пред последните две години и половина.
(*) Всъщност, в същия ден разбрах, че проекта който търкалям през половината от това време всъщност не ползва connection pool и Hibernate-а смело прави нови връзки за щяло и нещяло. Един от онези редки моменти, за които съм благодарен на човешката (моята) глупост – реших си проблемите с паметта и скоростта за пет минути, без много труд.