Мы написали очень простую программу на C ++, чтобы изолировать ошибку.Приложение принимает число в качестве аргумента, создает это количество потоков и отправляет все эти потоки в цикл обработки событий.Если мы запустим приложение с> 3-мя потоками (включая основной поток), top покажет, что оно занимает более 100 МБ в виртуальной памяти.Однако, если мы запустим его с потоками <= 3, он будет работать с виртуальной памятью около 36 МБ.Мы <code>strace запустили приложение и выяснили, что в первом сценарии есть mmap
размером около 65 МБ, который отображается анонимно и не отображается.Проблема в том, что использование памяти увеличивается с увеличением количества потоков.И у нас есть большое количество двоичных файлов, которые имеют большое количество потоков, поэтому, похоже, много потерянного пространства.Почему это происходит?SLES11 64bit.