Т.е. унылость — это специфика. Понял, сорри, не буду лезть и слушать.
Вернемся к лямбдам — это даже не «Рабинович напел», тут уровни косвенности зашкаливают. Это безуспешная попытка пересказа статьи, автор которой таки читал презентацию из первоисточника.
Конечно, в этом нет ничего плохого — это полный п ужас!
1. Никогда, никогда не помогайте GC (особенно через finalize), только хуже сделаете.
2. Если возможно (т.е. вы не завязаны на legacy code) — не юзайте finalize(), мы кричим об этом годами, но никто не слышит.
3. Если все-таки необходимо завязываться на освобождение ресурсов — только <*>Reference. Не забудьте, * — подставить Soft/Weak/Phantom — по необходимости.
Ага. :) Так и хочется побурчать про оформление результата — бери пример с Леши. ;)
> Цифра — во сколько раз самый продвинутый SSE4.1 код быстрее, чем std::memcpy, реализованный через rep movs
> Penryn — 1.6x
> Nehalem — 1.5x
> Sandy Bridge — 1.008x
1. Таки на Нехалеме лучше юзать SSE код — полтора раза это полтора раза. ;)
2. Сразу же вопрос, а таки если для SandyBridge сдеать AVX код? ;)
Интересно другое:
1. последний нехалем (впрочем SandyBridge устроит ;) ) и насколько rep movs быстрее самой быстрой среди известных сложных реализций копирования.
2. Что rep movs стал даже быстрее чем копирование через non temporal?
Уважаемые Java программисты.
Не путайте, плиз, Java Memory Model и то как работает Memory Management.
Это разные вещи. Java Memory Model — не настраивается.
Небольшое уточнение:
Работа с final требует StoreStore барьера в конце конструктора. StoreStore барьер это no-op на x86 & SPARC, но таки требуется на ARM & PPC.
> Более того, кэп утверждает, что в данном случае замеры не особо-то и нужны, достаточно знать, как реализованы эти структуры данных.
Но в данном случае майор знает, что капитан не прав. Делать умозрительные (без измерений) заключения о перформансе — это в 98% случаев попасть мимо.
Например можно сделать тест где итерация по LinkedHashMap будет медленее чем по HashMap так как из-за ограничений на порядок элементов получим большее количиство cache miss. Но этот тест также будет сферическим конем.
Вернемся к лямбдам — это даже не «Рабинович напел», тут уровни косвенности зашкаливают. Это безуспешная попытка пересказа статьи, автор которой таки читал презентацию из первоисточника.
Ндяяя. Тоска. Ужасная тоска.
Финализатор — это плохо.
Финализатор «помогающий GC» — это еще хуже.
пужас!1. Никогда, никогда не помогайте GC (особенно через finalize), только хуже сделаете.
2. Если возможно (т.е. вы не завязаны на legacy code) — не юзайте finalize(), мы кричим об этом годами, но никто не слышит.
3. Если все-таки необходимо завязываться на освобождение ресурсов — только <*>Reference. Не забудьте, * — подставить Soft/Weak/Phantom — по необходимости.
> Цифра — во сколько раз самый продвинутый SSE4.1 код быстрее, чем std::memcpy, реализованный через rep movs
> Penryn — 1.6x
> Nehalem — 1.5x
> Sandy Bridge — 1.008x
1. Таки на Нехалеме лучше юзать SSE код — полтора раза это полтора раза. ;)
2. Сразу же вопрос, а таки если для SandyBridge сдеать AVX код? ;)
1. последний нехалем (впрочем SandyBridge устроит ;) ) и насколько rep movs быстрее самой быстрой среди известных сложных реализций копирования.
2. Что rep movs стал даже быстрее чем копирование через non temporal?
Таки хотелось бы посмотреть на цифры — насколько быстрее.
Детали на уровне микро — секрет? ;)
Не путайте, плиз, Java Memory Model и то как работает Memory Management.
Это разные вещи. Java Memory Model — не настраивается.
Работа с final требует StoreStore барьера в конце конструктора. StoreStore барьер это no-op на x86 & SPARC, но таки требуется на ARM & PPC.
Все встречали.
java.lang.String. :)
Ужос ужос ужос.
Не используйте SortedMap, там где Sorted не нужен. ;)
это неправда.
Но в данном случае майор знает, что капитан не прав. Делать умозрительные (без измерений) заключения о перформансе — это в 98% случаев попасть мимо.
Например можно сделать тест где итерация по LinkedHashMap будет медленее чем по HashMap так как из-за ограничений на порядок элементов получим большее количиство cache miss. Но этот тест также будет сферическим конем.
Не нужно делать ничего пока оно не надо! ;)