문제

RDP (터미널 서버 세션 또는 단일 사용자 시스템에 대한 원격 액세스)를 통해 대부분의 사용법이 원격 사용자가 사용하는 상당히 그래픽으로 집중적 인 응용 프로그램 (C ++ 또는 C#, 그래픽 API 미정)을 개발하고 있다고 가정합니다. 필수적이지 않은 "눈 구인"효과와 애니메이션을 피해야한다는 것은 분명합니다. 내 질문은 다음과 같습니다.

  • RDP 프로토콜을 가장 효율적으로 사용하기 위해 무엇을해야합니까? (예 : RDP가 클라이언트에 직접 프리미티브를 그리는 일부 그래픽을 원격 할 수있는 아이디어가 있습니다. 그러나 GDI에만 해당되는 것입니까? 이중 복구 브레이크를 사용하여 비트 맵 모드를 강제로 사용합니까? 클라이언트 측 비트 맵 캐시는 "그냥" "또는 글꼴과 아이콘과 같은 특정 물건 만 캐시합니까?)

  • RDP 스트림이 실제로 전송되는 내용 (특히 비트 맵 대 그리스 프리미티브)에 대한 통찰력을 제공하는 RDP 프로토콜 분석기가 있습니까? (나는 몇 가지 악기를 추가한다고 상상할 수 있습니다 rdesktop 이를 수행하는 소스이지만 이미 뭔가 존재할 수도 있습니다).

도움이 되었습니까?

해결책

내 경험에 따르면 나는 애니메이션에 관해서는주의를 기울일 것입니다. 특히 RDP에 대한 성능을 심각하게 죽일 수있는 컨트롤이 사라질 수 있습니다.

이중 청분도 몇 가지 문제를 일으킬 수 있지만 개인적으로는 이에 대한 해결 방법으로 너무 많은 일을 할 필요가 없었습니다. 기사 Raymond Chen은 가능한 함정을 잘 설명합니다.

기본적으로 원격 세션 (RDP, Citrix 등)에서 실행되는지 코드를 확인하는 것이 좋습니다. 보세요: GetSystemMetrics( SM_REMOTESESSION ) - 런타임에 특정 기능을 활성화 할 것인지 비활성화할지 결정할 수 있습니다.

다른 팁

내 아이디어는 RDP에서 이루어진 최적화 작업이 이미 설명하는 문제의 90%를 다루기 때문에 RDP에 대한 최적화에 대해 걱정하지 않으면 이미 눈길을 끄는 것들을 제거하고 있습니다. 응용 프로그램이 RDP를 통해 사용하므로 지속적인 형태를 다시 그리기하는 작업을 피할 수 있다고 생각합니다.

우리의 응용 프로그램은 RDP를 염두에 두지 않았습니다. 고객이 모든 고객이 원격 위치에서 RDP (Citrix, 해당 특정 경우 Citrix)를 통해 사용될 것이라고 말했을 때와 같은 걱정을했습니다. RDP로 인해 고객이 느리게 문제를 일으키지 않은 한 줄의 코드 라인.

기억하다... 조기 최적화는 악합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top