No video

Алексей Шипилёв - Сжимай меня полностью

  Рет қаралды 13,551

JPoint, Joker и JUG ru

JPoint, Joker и JUG ru

Күн бұрын

Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября (Санкт-Петербург + трансляция).
Подробности и билеты: jrg.su/Ypf1HW
- -
. . . . Алексей Шипилёв, Oracle - Сжимай меня полностью
Java-конференция JPoint 2015
Москва, 20.04.2015
Контроль над использованием памяти - это ключ к написанию высокопроизводительного софта. В этом докладе мы покопаемся в кишках JVM и JDK, в поисках того, как платформа пытается сэкономить на памяти. Посмотрим на упаковку заголовков и полей объектов, сжатие указателей, учёт ссылок между поколениями в куче, кэш автобоксинга и т.п.
В качестве бонуса подглядим, как разработчики JDK пытаются незаметно сжать пользовательские стринги. Всё это обильно сдобрим описанием возможных граблей и измерениями производительности.

Пікірлер: 4
@ShamageMSK
@ShamageMSK 3 жыл бұрын
Честно, я нихуяшеньки не понял, но ощущается, как будто понял. Оч интересно и приятно слушать
@razmus89dragovich20
@razmus89dragovich20 4 жыл бұрын
класс, два плюса
@Alexander-mj3jk
@Alexander-mj3jk 9 жыл бұрын
К вопросу об utf-8. String.charAt() только алгоритмически выполняется за константное время. На практике - кешмиссы. На практике конечно оверхед charAt будет существенным, так что если б я делал utf-8, то добавил бы класс CharIterator, а в нем методы seekRelative, seekAbsolute, next, prev, currentIndex, currentChar. Как-то так.
@Alexander-mj3jk
@Alexander-mj3jk 8 жыл бұрын
+Yury Y да. Я о том, что если у нас есть указатель в середину, и мы знаем индекс этого символа, то относительно него продвижение вперед-назад на n символов будет за O(n). А на больших строках именно такая операция (как мне видится) - основная. И если у нас, допустим, есть позиция 10000 кодпоинта, а надо 11000, то мы можем отталкиваться от 10000 а не от 0, и мы потратим O(1000) а не O(11000). Ну и кроме того, надо на сам размер стринга смотреть. Потому, что если он например 11005, то лучше вообще на 11000 позиционироваться с конца. Вообще, в том стринге что есть сейчас, на самом деле, честных символов нет - из за долбаных суррогатов. Да, они весьма редки, но как говориться, - осадок остался. Если там где-то у вас в стринге есть суррогаты, то и length это уже не размер, и charAt это не факт что символ. Возможно, это лучше было б делать отдельным классом. Тогда стрингу оставили бы его O(1), а какой-нибудь utf8string занимал бы мало памяти.
Алексей Шипилёв - Performance Optimization 101
44:50
JPoint, Joker и JUG ru
Рет қаралды 17 М.
Parenting hacks and gadgets against mosquitoes 🦟👶
00:21
Let's GLOW!
Рет қаралды 13 МЛН
Мы сделали гигантские сухарики!  #большаяеда
00:44
Magic? 😨
00:14
Andrey Grechka
Рет қаралды 15 МЛН
Алексей Шипилёв - The Lord of the Strings: Two Scours
54:10
JPoint, Joker и JUG ru
Рет қаралды 11 М.
ЯЗЫК АССЕМБЛЕРА С НУЛЯ | #1 НАЧАЛО
54:43
The Tragedy of systemd
47:18
linux.conf.au
Рет қаралды 1,1 МЛН
Алексей Шипилёв - Близкие Контакты JMM-степени
57:49