Size: a a a

2020 June 13

N

Nick in pro.jvm
Constantine
А если вот допустим есть код который работает на stream, а в спринге допустим точно такая же работа кода, но всё на for -loop

Он скажет, что это идентичный код, просто по разному реализован🤔
вопрос в упоротости и финансировании разработки)) уверен в IDEA эта фича драйвилась не один месяц и не одним человеком
источник

C

Constantine in pro.jvm
Nick
понять бы надо ли оно кому
Знаешь чего хотелось бы, чтоб например есть у меня в проекте функция работающая за O(2^n), но в зависимостях моего проекта есть спринг и в нём есть функция которая выводит такой же результат как и моя функция, но уже за O(n log n)

Так вот, хотелось бы плагинчик, который бы предлагал мне заменить свою ведосипедо-функцию на функцию из спринга, так как в спринге реализация лучше🤔
источник

N

Nick in pro.jvm
Constantine
Знаешь чего хотелось бы, чтоб например есть у меня в проекте функция работающая за O(2^n), но в зависимостях моего проекта есть спринг и в нём есть функция которая выводит такой же результат как и моя функция, но уже за O(n log n)

Так вот, хотелось бы плагинчик, который бы предлагал мне заменить свою ведосипедо-функцию на функцию из спринга, так как в спринге реализация лучше🤔
короче миру надо писать говоноалгоритмы быстро, чтобы просто реализовать функционал, а потом подбирать оптимальные по критериям (время/память/поддержка спец фич конкретного процессора и т.п.) аналоги для замены
источник

A

Anton in pro.jvm
Nick
короче миру надо писать говоноалгоритмы быстро, чтобы просто реализовать функционал, а потом подбирать оптимальные по критериям (время/память/поддержка спец фич конкретного процессора и т.п.) аналоги для замены
звучит как идея для стартапа
источник

N

Nick in pro.jvm
Если кто начнет пилить отпишитесь)))
источник

U

UsernameAK in pro.jvm
интересный вопрос: в джаве GC достаточно умён, чтобы рефкаунтить объекты, которые не требуют обработки сборщиком мусора (например, объекты в которых не может быть циклических зависимостей)?
источник

C

Constantine in pro.jvm
Nick
короче миру надо писать говоноалгоритмы быстро, чтобы просто реализовать функционал, а потом подбирать оптимальные по критериям (время/память/поддержка спец фич конкретного процессора и т.п.) аналоги для замены
Почему сразу  миру надо писать говоноалгоритмы ??

Плагинчик будет предлагать из зависимостей заменить говоноалгоритмы на супер алгоритмы🤔
источник

N

Nick in pro.jvm
Constantine
Почему сразу  миру надо писать говоноалгоритмы ??

Плагинчик будет предлагать из зависимостей заменить говоноалгоритмы на супер алгоритмы🤔
На супер-говно-алгоритмы))
источник

N

Nick in pro.jvm
Вообще именно эта тема с заменой алгтритмов гуляла в голове давно, но она требует большого людского ресурса для реализации, т.к. понятно чтт относительно легко сделать если алгоритм тупой, но как только в код вствляется например логирование в некоторых случаях, то здесь прос ую.замену уже сделать становтся на порядки сложнее
источник

U

UsernameAK in pro.jvm
central hardware
большинство программистов сходу напишут код который хуже того, что в нормальной либо и в данном случае тебе уже ничего кроме человека на ручной проверке не поможет
не всегда плохой код хуже хорошего
источник

U

UsernameAK in pro.jvm
точнее всегда
источник

U

UsernameAK in pro.jvm
но не всегда имеет смысл его оптимизировать
источник

U

UsernameAK in pro.jvm
это может быть более трудозатратно, чем юзать неоптимизированный код, при том разница в производительности может быть минимальна
источник

N

Nick in pro.jvm
UsernameAK
это может быть более трудозатратно, чем юзать неоптимизированный код, при том разница в производительности может быть минимальна
Причем для некоторых алгоритмов на маленьких данных даже может ухудшаться
источник

VS

Vladimir Sitnikov in pro.jvm
UsernameAK
интересный вопрос: в джаве GC достаточно умён, чтобы рефкаунтить объекты, которые не требуют обработки сборщиком мусора (например, объекты в которых не может быть циклических зависимостей)?
GC работает так, что RC будет не помогать, а мешать. Многие JIT умеют превращать объекты в список полей, что, например, хорошо убирает аллокации итераторов
источник

U

UsernameAK in pro.jvm
Vladimir Sitnikov
GC работает так, что RC будет не помогать, а мешать. Многие JIT умеют превращать объекты в список полей, что, например, хорошо убирает аллокации итераторов
а как GC собирает POJO?
источник

U

UsernameAK in pro.jvm
и ещё: в теории JVM может аллоцировать объекты на стеке если видит что можно?
источник

VS

Vladimir Sitnikov in pro.jvm
UsernameAK
а как GC собирает POJO?
Зависит от GC. Но, мне понравилось как сказал Лёша Ш: GC в Java это скорее liveness preserver, нежели garbage collector. Иными словами, большинство GC не пытаются найти мусор, а они ищут живые объекты, и копируют их в укромное место
источник

U

UsernameAK in pro.jvm
UsernameAK
и ещё: в теории JVM может аллоцировать объекты на стеке если видит что можно?
.
источник

VS

Vladimir Sitnikov in pro.jvm
UsernameAK
и ещё: в теории JVM может аллоцировать объекты на стеке если видит что можно?
Объекты на стеке -- нет (в Oracle JVM). Но, если VM видит, что ссылка на объект никуда не утекает (с учётом inline), то, как я писал выше объект превратится в список полей, которые уже могут либо вообще исключиться (если не используются), либо расположиться на стеке
источник