12(11) vs 9(8) Ява - производительность
От: Ватакуси Россия  
Дата: 22.06.20 11:44
Оценка:
Вы замечали улучшение (или ухудшение) производительности при переходе на последнии версии?
Если да, то в чём это выражалось и какие причины (если известно, конечно)?
Все будет Украина!
Re: 12(11) vs 9(8) Ява - производительность
От: varenikAA  
Дата: 23.06.20 02:59
Оценка:
Здравствуйте, Ватакуси, Вы писали:

В>Вы замечали улучшение (или ухудшение) производительности при переходе на последнии версии?

В>Если да, то в чём это выражалось и какие причины (если известно, конечно)?

Последний раз читал, что последняя версия GraalVM быстрее в некоторых примерах, чем на чистом си,
однако это не спасает, если кодить на clojure — лучший на мой взгляд на сегодня язык для прикладного программирования,
но если начинаешь подключать зависимости,то старт программы превращается в тихий ужас(25-30 сек на i5 SSD 8Гб ОЗУ)
  Список зависимостей
(defproject cljira "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :min-lein-version "2.0.0"
  :dependencies [[org.clojure/clojure "1.10.0"]
                 [compojure "1.6.1"]
                 [hiccup "1.0.5"]
                 [org.clojure/java.jdbc "0.6.0"]
                 [clj-http "3.10.0"]
                 [org.clojure/data.json "0.2.7"]
                 [com.h2database/h2 "1.4.193"]
         [http-kit "2.3.0"]
                 [ring/ring-defaults "0.3.2"]]
  :plugins [[lein-ring "0.12.5"]]
  :ring {:handler cljira.handler/app}
  :profiles
  {:dev {:dependencies [[javax.servlet/servlet-api "2.5"]
                        [ring/ring-mock "0.3.2"]
                         [http-kit "2.3.0"]]}})



При этом, копаясь в архивах нашел чат клиент-серверный(swing + RTI) на чистой яве, скомпиленые запускаются приятно шустро.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: 12(11) vs 9(8) Ява - производительность
От: Географ Россия нет
Дата: 23.06.20 17:52
Оценка: 14 (2) :)
Здравствуйте, Ватакуси, Вы писали:

В>Вы замечали улучшение (или ухудшение) производительности при переходе на последние версии?

В>Если да, то в чём это выражалось и какие причины (если известно, конечно)?

Легко! Правда, сравнивать буду 7-ю и 8-ю. Тема-то одна и та же, по моему. И суть вопроса прояснится, думаю.
Пишу сейчас и уже давно, на 7-й версии. Много своего кода написано за последние 15 лет .
И вот пришлось беседовать с апологетом кода на 8-й (т.е. стримы, функциональное программирование). И писать код для собеседования.

Написал, работает код! Но работает не на стримах. Попенял мне тот дяденька. По доброму попенял, надо признать.

Я согласился, мол, пора и мне на стримы, особенно если по работе попросят.
Но чем-то задело за живое. Стал я сравнивать своё решение, на 7-й версии, и от дяденьки, на 8-й.
Прислал он мне своё решение моей задачки. Короче у него получилось, ничего не скажешь. Хотя и не совсем понятный код получился .
И сравнив, вдруг осознал. что код-то у него — в 2-3 раза медленнее исполняется!
И это понятно — в одном потоке одновременно несколько зависимых друг от друга действий, в одном стриме, ведь не сделаешь без извращений)))
Т.е стрим надо два раза запускать, скажем, а я, будучи ограничен средствами в 7-й версии, могу в одном цикле эту пару действий сделать.
Проверял много раз в разных вариантах — всё время в 2-4 раза медленнее стримы его работают.
А ведь в задачке той матрицы надо было сканировать, а их размер очень разный, и гигабайты они могут весить.
Короче, сказал ему об этом. А он обиделся. И на работу не взял .
Но это и не плохо. Тут как раз другая работа нашлась, существенно интереснее. Делай всё сам, язык выбирай, версию...

И мне даже 8-я опять не нужна, не то что 11-12
Re[2]: 12(11) vs 9(8) Ява - производительность
От: StanislavK Великобритания  
Дата: 24.06.20 08:14
Оценка:
Здравствуйте, Географ, Вы писали:

В>>Вы замечали улучшение (или ухудшение) производительности при переходе на последние версии?

В>>Если да, то в чём это выражалось и какие причины (если известно, конечно)?

Г>Легко! Правда, сравнивать буду 7-ю и 8-ю.

Г>И мне даже 8-я опять не нужна, не то что 11-12

Мне кажется, что вопрос был про версию jvm, а не языка.

В тему, хотя эти ссылки легко гуглятся:
https://optaweb.org/blog/2019/01/17/HowMuchFasterIsJava11.html
https://technology.amis.nl/2019/06/04/performance-3-reasons-to-stick-to-java-8-for-the-moment/

Реально думаю, что разницу можно заметить только на каких-то очень специфических примерах.
Re[2]: 12(11) vs 9(8) Ява - производительность
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 24.06.20 19:19
Оценка:
Здравствуйте, Географ, Вы писали:

Г>И это понятно — в одном потоке одновременно несколько зависимых друг от друга действий, в одном стриме, ведь не сделаешь без извращений)))

Г>Т.е стрим надо два раза запускать, скажем, а я, будучи ограничен средствами в 7-й версии, могу в одном цикле эту пару действий сделать.

Что именно нельзя сделать в одном стриме без извращений? Можно пример какой-нибудь?
Там же всё просто комбинируется. Стрим даёт просто перечисление, фильтрацию, группировку элементов и т.д. А все предикаты для фильтров можно задать свои и какой угодно сложности — хоть лямбдой, хоть отдельной функцией, как удобнее.
С уважением, Artem Korneev.
Re: 12(11) vs 9(8) Ява - производительность
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 15.07.20 07:58
Оценка:
Здравствуйте, Ватакуси, Вы писали:

В>Вы замечали улучшение (или ухудшение) производительности при переходе на последнии версии?

В>Если да, то в чём это выражалось и какие причины (если известно, конечно)?

По перфомансу разве что сборщики мусора стали лучше работать. А так переходить имеет смысл — хотя бы из-за лучшей поддержки контейнеров ал-я docker.
http://jvmmemory.com — простой способ настройки JVM
Re[3]: 12(11) vs 9(8) Ява - производительность
От: Географ Россия нет
Дата: 25.08.20 06:48
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Здравствуйте, Географ, Вы писали:


Г>>И это понятно — в одном потоке одновременно несколько зависимых друг от друга действий, в одном стриме, ведь не сделаешь без извращений)))

Г>>Т.е стрим надо два раза запускать, скажем, а я, будучи ограничен средствами в 7-й версии, могу в одном цикле эту пару действий сделать.

AK>Что именно нельзя сделать в одном стриме без извращений? Можно пример какой-нибудь?

AK>Там же всё просто комбинируется. Стрим даёт просто перечисление, фильтрацию, группировку элементов и т.д. А все предикаты для фильтров можно задать свои и какой угодно сложности — хоть лямбдой, хоть отдельной функцией, как удобнее.

Скорее всего так и есть, как Вы написали. Можно и на стримах достигать той же скорости. В тот момент речь шла только о новом стиле. Стиль, действительно, другой. Мне лично, пока, малопонятный. Но это дело вкуса и желаний.
Re[3]: 12(11) vs 9(8) Ява - производительность
От: Географ Россия нет
Дата: 25.08.20 06:52
Оценка:
Здравствуйте, StanislavK, Вы писали:

SK>Здравствуйте, Географ, Вы писали:


В>>>Вы замечали улучшение (или ухудшение) производительности при переходе на последние версии?

В>>>Если да, то в чём это выражалось и какие причины (если известно, конечно)?

Г>>Легко! Правда, сравнивать буду 7-ю и 8-ю.

Г>>И мне даже 8-я опять не нужна, не то что 11-12

SK>Мне кажется, что вопрос был про версию jvm, а не языка.


Если сравнивать один и тот же код под разные версии JVM то — да. Разницы существенной быть не должно.

Но если схожая логика реализуется на разных средствах языка разных версий (8 от 7 существенно отличается), то и тут можно поговорить о влиянии версии jvm.

SK>В тему, хотя эти ссылки легко гуглятся:

SK>https://optaweb.org/blog/2019/01/17/HowMuchFasterIsJava11.html
SK>https://technology.amis.nl/2019/06/04/performance-3-reasons-to-stick-to-java-8-for-the-moment/

SK>Реально думаю, что разницу можно заметить только на каких-то очень специфических примерах.
Re[2]: 12(11) vs 9(8) Ява - производительность
От: diez_p  
Дата: 25.08.20 21:18
Оценка:
Здравствуйте, Географ, Вы писали:

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


В>>Вы замечали улучшение (или ухудшение) производительности при переходе на последние версии?

В>>Если да, то в чём это выражалось и какие причины (если известно, конечно)?

Г>Легко! Правда, сравнивать буду 7-ю и 8-ю. Тема-то одна и та же, по моему. И суть вопроса прояснится, думаю.

Г>Пишу сейчас и уже давно, на 7-й версии. Много своего кода написано за последние 15 лет .
Г>И вот пришлось беседовать с апологетом кода на 8-й (т.е. стримы, функциональное программирование). И писать код для собеседования.
А что за задачка была, если не секрет?
Re[2]: 12(11) vs 9(8) Ява - производительность
От: Annatomy  
Дата: 28.08.20 12:17
Оценка:
Здравствуйте, Географ, Вы писали:

Г>Пишу сейчас и уже давно, на 7-й версии. Много своего кода написано за последние 15 лет .


Какая некрофилия, жесть!
8 уже не поддерживается, а ты до сих пор на бивнях мамонта 7 версии сидишь.
Не использовать новые версии и их фишки это путь к деградации и безработице.
Re[3]: 12(11) vs 9(8) Ява - производительность
От: gyraboo  
Дата: 28.08.20 12:31
Оценка:
Здравствуйте, Annatomy, Вы писали:

Г>>Пишу сейчас и уже давно, на 7-й версии. Много своего кода написано за последние 15 лет .


A>Какая некрофилия, жесть!

A>8 уже не поддерживается, а ты до сих пор на бивнях мамонта 7 версии сидишь.
A>Не использовать новые версии и их фишки это путь к деградации и безработице.

Это точно, фичи 8 джавы — лямбды, стримы — можно сказать новую жизнь в язык вдохнули. Без них уже трудно представить разработку. Есть джависты, которые бросали текущую и специально искали работу, чтобы именно на восьмерке попрогать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.