Информация об изменениях

Сообщение Re[41]: dotnet vs java 2016-2020 от 14.10.2016 16:42

Изменено 14.10.2016 16:43 Evgeny.Panasyuk

Здравствуйте, ·, Вы писали:

EP>>Речь о том что локальность (в частности C#-ский struct) позволяет более эффективно использовать железо — кэш, регистры и т.п. А не о том что нужно вручную колупаться в регистрах чтобы получить локальность.

·>В принципе new MyClass[100_000] вполне локален. Может быть немного неэффективен, но не настолько страшно, как малюют.

MyClass может содержать внутри ссылки на другие объекты, те в свою очередь ещё на другие, а сам массив может быть многократно перемешан/отсортирован — привет проседания на один-несколько порядков. Не говоря уже о дополнительной работе для GC.

·>На крайний случай всегда есть new byte[1_000_000] — но таких мест где это реально требуется — очень мало.

·>java быстро работать может — факт, пусть код выглядит похуже, это не show stopper.

"Похуже" — это такой аутотренинг с самоуспокоением? Там от языка-то практически ничего не остаётся — классы нельзя, GC нельзя, композицию нельзя и т.п.

Не помню точную цитату, но суть в следующем — на заре вычислительной техники кто-то возмутился по поводу компиляторов языков (что-то типа Fortran или Algol) мол зачем нагружать компьютер той рутинной работой (компиляцией), с которой хорошо справляются девушки.
Так вот эти нарезатели байт-буферов прям как те самые девушки занимаются рутинной механической работой, с которой прекрасно справляется компиляторы, тем более в 2016.
Re[41]: dotnet vs java 2016-2020
Здравствуйте, ·, Вы писали:

EP>>Речь о том что локальность (в частности C#-ский struct) позволяет более эффективно использовать железо — кэш, регистры и т.п. А не о том что нужно вручную колупаться в регистрах чтобы получить локальность.

·>В принципе new MyClass[100_000] вполне локален. Может быть немного неэффективен, но не настолько страшно, как малюют.

MyClass может содержать внутри ссылки на другие объекты, те в свою очередь ещё на другие, а сам массив может быть многократно перемешан/отсортирован — привет проседания на один-несколько порядков. Не говоря уже о дополнительной работе для GC.

·>На крайний случай всегда есть new byte[1_000_000] — но таких мест где это реально требуется — очень мало.

·>java быстро работать может — факт, пусть код выглядит похуже, это не show stopper.

"Похуже" — это такой аутотренинг с самоуспокоением? Там от языка-то практически ничего не остаётся — классы нельзя, GC нельзя, композицию нельзя и т.п.

Не помню точную цитату, но суть в следующем — на заре вычислительной техники кто-то возмутился по поводу компиляторов языков (что-то типа Fortran или Algol) мол зачем нагружать компьютер той рутинной работой (компиляцией), с которой хорошо справляются девушки.
Так вот эти нарезатели байт-буферов прям как те самые девушки занимаются рутинной механической работой, с которой прекрасно справляются компиляторы, тем более в 2016.