170 похожих чатов

Какие сейчас best practices по конфигурированию ThreadPoolTaskExecutor (без подробных замеров

на проде)? Или формулы из Java concurrency in practice достаточно?

7 ответов

21 просмотр

Напомни, пожалуйста, какая там формула?

Ilya- Автор вопроса
Evgenii Morozov
Напомни, пожалуйста, какая там формула?

https://imgur.com/a/g5yJNVK Number of threads = Number of Available Cores * (1 + Wait time / Service time) Мне тут предложили сделать corePool = INT_MAX на приложении, где очень большой I/O time, я чувствую, что это нехорошо, но хочется какой-нибудь железобетонный пруф из нескольких источников

Ilya
https://imgur.com/a/g5yJNVK Number of threads = Nu...

corePool = INT_MAX звучит как "сожрать всю RAM ещё на старте"

Ilya
https://imgur.com/a/g5yJNVK Number of threads = Nu...

INT_MAX точно не надо. Это сколько туда задач вкинешь, они все параллельно будут работать. Я бы заморочился с формулой. Если можно определить эти wait-time / service-time, то прям по науке бы что-то было 😊 Ещё интересно что там с системой, которую мы будем нагружать. Сколько она выдержит одновременных запросов. И насколько быстро будет их обрабатывать.

Ilya- Автор вопроса
Evgenii Morozov
INT_MAX точно не надо. Это сколько туда задач вкин...

Обрабатывает долго, выдержит много. Надо как-нибудь померить будет ради интереса

Ilya
Обрабатывает долго, выдержит много. Надо как-нибуд...

КешэдПул может быть удобнее в этом случае.

Ilya- Автор вопроса
Evgenii Morozov
КешэдПул может быть удобнее в этом случае.

Действительно, выглядит как-будто то, что доктор прописал. Спасибо, гляну. For very large or unbounded pools, you can also bypass queueing entirely and instead hand off tasks directly from producers to worker threads using a SynchronousQueue

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта