C на Linux: запуск 25 параллельных процессов значительно быстрее, чем запуск 24

Моя C-программа использует fork () для создания новых процессов, и я измеряю время, необходимое для выполнения каждого из этих процессов. Фактически, я позволяю им делать работу 10000 раз и измерять это время.

Измерения выполняются с помощью gettimeofday (…), и результаты печатаются после каждого процесса, если они завершены.

К этому моменту: запустив 24 параллельных процесса, эти времена центрируются примерно на 180 000 мксек. Но когда я увеличиваю до 25 процессов, время падает и составляет около 100 000 usec. Это что-то конкретное Linux? Что, создавая больше процессов, я получаю больше ресурсов от ОС?

Или это совершенно невозможно, и я неправильно измеряю время? Следует отметить, что измерения возрастают для 1-> 24 процессов и капель на 25-м.

Interesting Posts

Проблема с pkg за прокси-сервером

libvirt qemu не может получить доступ к изображению внутри моего домашнего каталога, даже как root?

Какое приложение можно использовать для изменения уровней звука в GNOME 3 (резервный)?

Как использовать grep с файлами в произвольной кодировке, без установленного языкового стандарта и без sudo?

Как установить новую раскладку клавиатуры в KDE 4?

идентификация встроенных разделяемых библиотек

Два приложения GUI как разные пользователи на одном экране

Как скопировать файл из одного приложения в другое?

Настройка RAID на работающем сервере Ubuntu 14.04

Почему команда «find | grep 'filename' 'намного медленнее, чем «найти« имя файла »?

Где хранится фактическая строка среды?

Изменить позиции по умолчанию для подтверждения

Проверьте, прошел ли вход в систему через SSH через Active Direcory

Настройка курьера для пересылки определенных сообщений на внешние адреса

Проблема с gpg при использовании apt

Linux и Unix - лучшая ОС в мире.