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

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

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

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

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

Interesting Posts

Есть ли причина, по которой существуют разрешения владельца? Достаточно ли групповых разрешений?

Ошибка ошибки Zsh в zshrc

Псевдоним для перечисления верхнего файла и потребления каталога – самый короткий путь?

Как отключить поддержку X для emacs

Отправить сигнал на внешнюю клавиатуру USB? Или, как мне исправить fdopen ()?

Каковы гарантии одновременной записи в именованный канал?

Как предотвратить chgrp от очистки «бит setuid»?

Сохранить настройки setxkbmap?

Ошибка OpenVPN TLS

Как подождать, когда USB-накопитель будет распознан / смонтирован во время загрузки, чтобы начать собственный сервис?

Могут ли архивы tar включать имя пользователя / группы по умолчанию?

Каковы числа после версии в выводе политики apt-cache?

Почему я получаю синтаксическую ошибку с моей арифметикой Shell?

Фиксирование Lilo с системой uuefi и отсутствие оптического привода

Как остановить изменения прав доступа к yum

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