Сообщение Re[3]: Покажите, пожалуйста, профит от функционального прогр от 04.08.2024 11:35
Изменено 04.08.2024 11:36 vsb
Re[3]: Покажите, пожалуйста, профит от функционального программ
Здравствуйте, Эйнсток Файр, Вы писали:
vsb>> у меня получилось не с первого раза
ЭФ>Да, лишнее было создание объекта-точки в куче.
На самом деле нет.
Вот этот код работает почти в 3 раза медленней. Почему — не знаю. Видимо особенности реализации стримов. Вообще Java тут в каком-то плане свинью подкладывает, не самый лучший язык для таких вещей. Предполагаю, что на Rust всё будет гораздо лучше оптимизироваться (но проверять это, конечно, я не буду).
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>> у меня получилось не с первого раза
ЭФ>Да, лишнее было создание объекта-точки в куче.
На самом деле нет.
Вот этот код работает в 2.5 раза медленней. Почему — не знаю. Видимо особенности реализации стримов. Вообще Java тут в каком-то плане свинью подкладывает, не самый лучший язык для таких вещей. Предполагаю, что на Rust всё будет гораздо лучше оптимизироваться (но проверять это, конечно, я не буду).
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 всё будет гораздо лучше оптимизироваться (но проверять это, конечно, я не буду).