Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез
в винде мб есть способы лениво аллоцировать огромные буферы, через хаки вроде того что с memfd на линуксе
Читать полностью…но оверкоммитинг на линуксе включен везде, без него некоторый софт вообще откажется работать нормально
Читать полностью…если выключить оверкоммитинг, то да, mmap будет действительно резервировать
и соответственно терабайт аллоцировать уже не выйдет
вы понимаете что спорите о значении слова резерв и каждый понимает это по своему?
Читать полностью…Я хз как сейчас, но лет 10 назад при большом кол-ве тредов и ненастроенном Xss точно возникал OOM.
А после настройки Xss исчезал (Linux, Oracle JDK)
это разве не называется резерв? просто os тебя немного обманывает(но вроде как память тебе обещали)
Читать полностью…https://blogs.oracle.com/javamagazine/post/java-virtual-threads
Читать полностью…Только это платформенный создается с 1 мб, а виртуальный нет
Читать полностью…я не знал что винда так не умеет, думал стандартная механика
Читать полностью…...но кто в этой дискуссии вообще про него знал до этого момента?
Читать полностью…Ещё смотрите какая история
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
122552 <user> 20 0 11.9g 4.0g 1.2g S 5.5 12.8 10:25.86 idea
122757 <user> 20 0 13.6g 1.1g 51200 S 0.0 3.4 2:38.77 java
4052 root 20 0 13.4g 914972 14052 S 0.0 2.8 2:15.81 java
5642 <user> 20 0 6393844 779456 88892 S 3.6 2.4 17:46.18 jetbrains-toolb
7020 root 20 0 13.7g 693232 12864 S 0.0 2.1 3:22.60 java
4113 999 20 0 2240100 676052 37200 S 0.5 2.1 23:58.94 java
For JVM processes running on Linux x64, the default stack size is 1 MB, and this space is reserved by the OS each time you launch a new thread. This makes the math pretty simple. For example, 2,000 threads means that 20 GB of stack space needs to be reserved.
Читать полностью…он запрашивает, а не резервирует, пока вы только не начали специально ОС подкручивать
Читать полностью…Разница по выделению памяти между нативным и виртуальным исключительно в гранулярности
Читать полностью…на винде кстати мб резервирует, там же оверкоммитинга нет
Читать полностью…И я точно помню, что читал, что жвм сама динамически размером стэка для виртуальных управляет
Читать полностью…1мб - это один из классических лимитов. Тебе в любом случае нужно установить верхнюю планку, и резервировать сразу по ней довольно глупо.
Читать полностью…