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

Сообщение Re[3]: Покажите, пожалуйста, профит от функционального прогр от 04.08.2024 11:35

Изменено 04.08.2024 11:36 vsb

Re[3]: Покажите, пожалуйста, профит от функционального программ
Здравствуйте, Эйнсток Файр, Вы писали:

vsb>> у меня получилось не с первого раза


ЭФ>Да, лишнее было создание объекта-точки в куче.


На самом деле нет.


    int hits = stream
        .filter(iteration -> {
          var random = ThreadLocalRandom.current();
          double x = random.nextDouble();
          double y = random.nextDouble();
          return x * x + y * y <= 1;
        })
        .sum();


Вот этот код работает почти в 3 раза медленней. Почему — не знаю. Видимо особенности реализации стримов. Вообще Java тут в каком-то плане свинью подкладывает, не самый лучший язык для таких вещей. Предполагаю, что на Rust всё будет гораздо лучше оптимизироваться (но проверять это, конечно, я не буду).
Re[3]: Покажите, пожалуйста, профит от функционального прогр
Здравствуйте, Эйнсток Файр, Вы писали:

vsb>> у меня получилось не с первого раза


ЭФ>Да, лишнее было создание объекта-точки в куче.


На самом деле нет.


    long hits = stream
        .filter(iteration -> {
          var random = ThreadLocalRandom.current();
          double x = random.nextDouble();
          double y = random.nextDouble();
          return x * x + y * y <= 1;
        })
        .count();


Вот этот код работает в 2.5 раза медленней. Почему — не знаю. Видимо особенности реализации стримов. Вообще Java тут в каком-то плане свинью подкладывает, не самый лучший язык для таких вещей. Предполагаю, что на Rust всё будет гораздо лучше оптимизироваться (но проверять это, конечно, я не буду).