Евгений Быченко: в том то и дело, что не должен, тем более даже нет переключения контекста, но дефакто это происходит. Если поток сжирает 100% ядра, начинается разброс времени выполнения одной итерации цикла. Если цикл отдает управление между итерациями, это существенно сокращает разброс и улучшает среднюю. Мой вопрос именно в этом и заключается, почему так происходит и как с этим бороться?
Либо вы меня не поняли, либо я не понимаю ваш ответ. Что значит транк? что значит транк закончился? Почему он должен закончится? Я работаю с потоком (или однопоточным процессом), этот поток выполняет работу и нагружает логический ЦП на 100%. Если выполнена команда sleep это значит, что на время сна этого потока процессор может выполнять или другие задачи или спать. Что именно я не правильно описал?
Владимир Дубровин: хотелось бы чтоб приложение поверх юзерспейс-стека работало через шаред мемори, а не через сокеты, иначе действительно это все лишено смысла, нагрузка на файловую систему не предполагается.
Производители адаптеров Mellanox предлагают собственный TCP-стек с поддержкой всех популярных ОС "for Socket-Based Applications ". Про их изобретения можете что нибуть рассказать?
1. начинаю это понимать 2. задача добится гарантированного времени выполнения очень быстрых вычислений (масштаб времени десятки микросекунд) 3. устанавливал rt приоритет для процесса, ситуация улучшалась, но не радикально