powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Сколько в runtime будет создано экземпляров лямбда?
7 сообщений из 7, страница 1 из 1
Сколько в runtime будет создано экземпляров лямбда?
    #39341407
iPOJO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: java
1.
2.
3.
4.
5.
6.
7.
ExecutorService exec = Executors.newWorkStealingPool();
for(int i = 0; i < 10; i++){
    Context ctx = new Context();
    exec.submit(() -> {
        Operations.foo(ctx);
    });
}


1) Экземпляр лямбды в рантайм будет создаваться каждый раз разный или один раз на все контексты?
2) А если убрать контекст?
Код: java
1.
2.
3.
exec.submit(() -> {
    Operations.foo2();
});


3) Что быстрее будет работать, данный подход или же создавать new ForkJoinTask(ctx) для ForkJoinPool? Что дешевле - создание нового экземпляра лямбда или новой RecursiveTask / RecursiveAction?
4) Можно ли переиспользовать отработанный ForkJoinTask, например, вернув его состояние в первоначальное?
...
Рейтинг: 0 / 0
Сколько в runtime будет создано экземпляров лямбда?
    #39341408
iPOJO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Суть вопросов одна - избавиться от необходимости создавать новые объекты для отправки блока кода с контекстом в пул потоков.
...
Рейтинг: 0 / 0
Сколько в runtime будет создано экземпляров лямбда?
    #39341414
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iPOJO1) Экземпляр лямбды в рантайм будет создаваться каждый раз разный или один раз на все контексты?
2) А если убрать контекст?


1) Новый на каждый вызов, даже если контекст один
2) Тогда будет один экземпляр
Поведение может зависеть от реализации JVM
http://stackoverflow.com/a/27524543

iPOJO3) Что быстрее будет работать, данный подход или же создавать new ForkJoinTask(ctx) для ForkJoinPool? Что дешевле - создание нового экземпляра лямбда или новой RecursiveTask / RecursiveAction?

Надо мерять. ForkJoin это таки ещё и Join.
http://www.javaworld.com/article/2078440/enterprise-java/java-tip-when-to-use-forkjoinpool-vs-executorservice.html?page=2


iPOJO4) Можно ли переиспользовать отработанный ForkJoinTask, например, вернув его состояние в первоначальное?
reinitialize()?
...
Рейтинг: 0 / 0
Сколько в runtime будет создано экземпляров лямбда?
    #39341415
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iPOJOСуть вопросов одна - избавиться от необходимости создавать новые объекты для отправки блока кода с контекстом в пул потоков.
А что создавать объекты дорого?
...
Рейтинг: 0 / 0
Сколько в runtime будет создано экземпляров лямбда?
    #39341427
iPOJO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, спасибо.
BlazkowiczНадо мерять. ForkJoin это таки ещё и Join.

Кто-то уже делал небольшие шаги в этом направлении. https://habrahabr.ru/post/313350/

BlazkowicziPOJO4) Можно ли переиспользовать отработанный ForkJoinTask, например, вернув его состояние в первоначальное?
reinitialize()?
Отлично! Тогда можно сделать пул тасков и брать отработанные. Опять-таки, блокирующая очередь будет дороже, чем каждый раз new ForkJoinTask() ? А что, если сделать пул на неблокирующих очередях, причём на каждый поток пула своя очередь тасков?

BlazkowiczА что создавать объекты дорого?

Перфекционизм, м@ть его. Десять тысяч запросов в секунду, сотни операций на один запрос, за минуту работы 60 млн. новых ненужных объектов =(
...
Рейтинг: 0 / 0
Сколько в runtime будет создано экземпляров лямбда?
    #39341431
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iPOJOПерфекционизм, м@ть его. Десять тысяч запросов в секунду, сотни операций на один запрос, за минуту работы 60 млн. новых ненужных объектов =(

Так создание множества маложивущих объектов это крейсерский режим работы GC. Я думаю хуже будет если ненужный объект переживает сборку.
...
Рейтинг: 0 / 0
Сколько в runtime будет создано экземпляров лямбда?
    #39341436
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iPOJOПерфекционизм, м@ть его. Десять тысяч запросов в секунду, сотни операций на один запрос, за минуту работы 60 млн. новых ненужных объектов =(

Код должен быть простой. Ты НЕ УГАДАЕШЬ как лучше, пока не попробуешь.
Все оптимизации пишутсяпод простой код. Так что выверты могут работать дольше :D
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Сколько в runtime будет создано экземпляров лямбда?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]