Под Linux есть ли язык с более низкой задержкой, чем C? (кроме ассемблера) - PullRequest
0 голосов
/ 22 июня 2011

Я искал разные языки (в основном функциональные), которые предлагают большой потенциал для пропускной способности и параллелизма.Однако для чувствительных к времени ожидания приложений (под которыми я подразумеваю потенциал реагирования на событие <1 мс), по-видимому, они находятся за их пределами.</p>

Я могу сделать это в C, но мне было интересно, если что-нибудь появилось, предлагая низкую задержку и высокий параллелизм, или они (как я подозреваю) взаимоисключающие?

Примечание: ВВ предыдущем вопросе было много дискуссий по поводу «взаимоисключающего» бита - но я думаю, что оно стоит - если вам нужна чрезвычайно низкая задержка, вы не можете получить массовый параллелизм.Я бы очень хотел быть неправым в этом!: -)

Ответы [ 3 ]

4 голосов
/ 22 июня 2011

Разница между C и asm вряд ли будет основным фактором задержки ответа. В конце концов, прежде чем достичь вашего кода, система должна будет сначала выполнить достаточное количество кода на C в ядре Linux, чтобы планировать свой процесс. Вам было бы лучше делать такие вещи, как включение потоковых обработчиков прерываний, установку приоритетов в реальном времени и отключение функций BIOS, которые могут вызывать прерывания режима управления системой.

1 голос
/ 22 июня 2011

Что вы подразумеваете под латентностью?С не намного больше, чем портативный ассемблер.Большинство инструкций C напрямую связаны с инструкциями процессора.Затраты C очень минимальны по сравнению с другими языками.Если вы имеете в виду задержку, как в программировании DSP, вам, вероятно, нужно проверять время ввода и вывода, а не саму обработку.

0 голосов
/ 22 июня 2011

Erlang кажется языком, который используют большие пушки для подобных вещей.

...