Почему RDP настолько быстро по сравнению с другим программным обеспечением дистанционного управления?

Я рекомендовал бы использовать модуль подпроцесса вместо os.system, потому что он действительно окружает выход для Вас и поэтому намного более безопасен: http://docs.python.org/library/subprocess.html

subprocess.call(['ping', 'localhost'])

24
задан Matthew Scharley 16 August 2009 в 11:43
поделиться

2 ответа

RDP - это особый протокол, который позволяет передавать операции рисования экрана низкого уровня. Он также знает о объектах растрового изображения на экране. Например, он распознает, когда отрисовывается значок, и кэширует его (обычно в формате сжатия с потерями) на стороне клиента.

Другое программное обеспечение не имеет этого низкоуровневого доступа: оно ждет изменения экрана, а затем повторно передать снимок экрана или измененных регионов. Всякий раз, когда экран изменяется, должно быть передано представление растрового изображения. Поскольку в целом это сжатие с потерями, оно также выглядит хуже.

15
ответ дан 29 November 2019 в 00:04
поделиться

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

Как он определяет, когда на экране происходят изменения?

Некоторые продукты RC делят экран на плитки и периодически сканируют буфер кадра экрана, чтобы определить, произошли ли какие-либо изменения.

Другие подключаются непосредственно к ОС . Раньше это делалось путем перехвата видеодрайвера. Теперь вы можете создать драйвер зеркала, в котором ОС «зеркалирует» все операции рисования. Это, очевидно, намного быстрее.

Как он отправляет эти изменения по сети?

Некоторые продукты (например, VNC) всегда отправляют растровые изображения любой области, которая изменилась.

Другие отправляют фактическую операцию, которая вызвало изменение. например, визуализировать текстовую строку s с использованием шрифта f в координатах (x, y) или рисовать кривую Безье с использованием заданного набора параметров и, конечно, визуализировать растровое изображение. Это опять же намного быстрее.

В обоих случаях протокол RDP использует более быстрый (и более сложный для реализации) метод. Я считаю, что на самом деле он использует протокол T.128.

Растровые изображения обычно сжимаются. Некоторые продукты (например, Carbon Copy) также поддерживают синхронизированные кеши растровых изображений на обеих сторонах соединения, чтобы добиться еще большей производительности.

15
ответ дан 29 November 2019 в 00:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: