Понять с точностью до наоборот

Aug 13, 2014 16:16

На днях мой подаван узнал про утечку памяти в Java 1.6 в методе String.substring(...) и вот сегодня… В общих чертах: функция findUnmatchedPair4Patten(Pattern notMatched) берёт текстовый файл, грузит весь в память, ищет в нём пары строк требуемого формата и возвращает первую, которой предшествует строка удовлетворяющая первому паттерну и которая не ( Read more... )

шиза косила наши ряды, программирование, работа

Leave a comment

Comments 5

vlad_suh August 17 2014, 18:09:30 UTC
Круто. Теперь утечка будет гарантировано.

Reply

feinsgular August 19 2014, 09:38:10 UTC
Понять с точностью до наоборот

Reply


vlad_suh August 17 2014, 18:13:28 UTC
Ну это продвинутый подаван.

У меня было так:
Я смотрю на безумную мешанину из скобок и вложенных методов. И спрашиваю:
- А что ты хотел вот этим сделать?
- Ну, эклипс сказал, что не хватает скобки и я поставил...
Судя по виду кода, он так сделал раз пять, и вместо нормального анонимного класса с методом типа Listener получили три вложенных класса.

Reply


vlad_suh August 17 2014, 18:16:23 UTC
Вот, кстати, интересно, а что мешало Sun сразу в этом методе сделать проверку, если исходный char[] в e раз больше полученной строки - делаем новую.

Reply

feinsgular August 19 2014, 09:44:59 UTC
Думаю это историческая проблема, так сказать наследие. На методах substring не указаны версии появления, что вполне логично: они скорее всего появились в самом начале. JVM 1.0 вышла в 96-ом и тогда экономия памяти везде скорее всего казалась разумной, а о том, что кто-то будет, скажем, грузить весь файл в память и потом его обрабатывать скорее всего никто не подумал.

Reply


Leave a comment

Up