Преимущества производительности Rust по сравнению с C для ввода-вывода последовательного порта с микросекундной точностьLinux

Ответить
Anonymous
 Преимущества производительности Rust по сравнению с C для ввода-вывода последовательного порта с микросекундной точность

Сообщение Anonymous »

У меня есть программа на языке C, чувствительная ко времени, которая выполняет ввод-вывод через последовательный порт с точностью до микросекунды. На данный момент программа работает хорошо и соответствует нашим требованиям. У меня два вопроса:
  • Будет ли какое-либо существенное преимущество в переписывании этой программы на Rust, особенно с точки зрения производительности или надежности для таких операций с точным расчетом времени?< /li>
    В настоящее время программа записывает данные, считанные из последовательного порта, в файл ASCII. Отдельное приложение Qt запускает эту программу на языке C и отображает текущий размер файла. Теперь нам нужно изменить систему так, чтобы приложение Qt также могло отображать содержимое считываемых данных с периодичностью 1 или 2 секунды. Каким будет наиболее эффективный способ реализовать межпроцессное взаимодействие между программой C и приложением Qt?
Дополнительный контекст:
  • Целевая ОС — Yocto Linux
  • Программа C отвечает за сбор данных из последовательного порта.
  • Требования к времени очень строгие (уровень микросекунд). Это означает, что
  • Программе необходимо отправлять команды и считывать ответы через очень определенные короткие промежутки времени (измеряемые в миллионных долях). секунду).
  • Он использует высокоточные функции синхронизации для измерения и контроля этих интервалов.
  • Код пытается поддерживать согласованное время между операциями, корректируя для любых задержек.
  • Он использует планирование в реальном времени, чтобы гарантировать, что программа немедленно получит внимание процессора, когда это необходимо.
  • Система должна оставаться отзывчивой и эффективной.
Я был бы признателен за информацию о потенциальных преимуществах переписывания Rust и рекомендации по реализации новых требований IPC с помощью Qt. Заранее спасибо!
Я еще не пробовал переписывать программу на Rust. Моя текущая программа на языке C работает должным образом, отвечая требованиям точности на уровне микросекунд для связи через последовательный порт.
Что я пробовал:
  • Реализовано программа на языке C с функциями планирования в реальном времени и высокоточными таймерами.
  • Используются такие методы, как setpriority() и sched_setscheduler(), для обеспечения выполнения с высоким приоритетом.
  • Используется clock_gettime() с CLOCK_MONOTONIC_RAW для точного измерения времени.
  • Используется usleep() для точного контроля времени между операциями.
Чего я ожидаю:
  • Мне любопытно, сможет ли Rust обеспечить какое-либо улучшение производительности или дополнительную надежность за такое время- чувствительная операция.
  • Мне интересно, могут ли функции безопасности Rust быть полезными, не жертвуя точным контролем времени, который у меня сейчас есть в C.
  • Я' Мне интересно узнать, есть ли у Rust какие-либо конкретные преимущества для задач системного программирования, требующих таких жестких ограничений по времени.


Подробнее здесь: https://stackoverflow.com/questions/791 ... rt-i-o-and
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»