패스스루 역할을 하는 X Window Server

패스스루 역할을 하는 X Window Server

Xorg(또는 모든 X 윈도우 서버)가 X 서버의 "스텁"을 생성하여 응용 프로그램의 API 호출을 수락한 다음 호출을 처리하고 프레임 버퍼를 업데이트하고 작성하는 대신 완전히 무시하도록 설정이 있습니까? 메모리 부족? 그래픽 애플리케이션(예: Firefox)을 실행할 수 있어야 하지만 그래픽 출력에는 크게 관심이 없고 렌더링 오버헤드를 최대한 줄이고 싶습니다. 그래픽 렌더링으로 인해 변경되지 않는 웹 페이지 타이밍을 얻으려고 합니다.

또는 모든 X 서버 API 호출을 "로그"하고 디스크에 덤프한 다음 나중에 다시 재생하여 그래픽 렌더링에서 웹 타이밍을 분리하면서도 응용 프로그램이 보고 있는 내용에 대한 스냅샷을 계속 생성할 수 있는 방법이 있습니까? ? 다른 시점의 스크린샷?

답변1

당신이 찾고있는 Xvfb. 매뉴얼에서:

   Xvfb  is  an X server that can run on machines with no display hardware
   and no physical input devices.  It emulates a  dumb  framebuffer  using
   virtual memory.

답변2

1996년에 이 작업을 수행할 수 있는 프로그램이 있었는데 최근에야 debian에서 제거되었습니다. 요청을 필터링하고 X11 서버에 응답하는 xmon두 부분으로 나뉘었고 , 요청을 억제할 수 있는 GUI도 있었습니다. 아무것도 그리지 마세요. 이는 여전히 배포되는 프로그램의 포크(요청 및 응답을 추적하는 데 사용됨)입니다 . 그러나 찾기 위해서는xmondxmonuixscope원천오늘 컴파일 하려면 xmon약간 광신적 이어야 합니다 . 디버깅할 X11 버그가 더 이상 없기 때문에 제거된 것 같습니다...

맨스몬:다음 다이어그램은 xmon과 xmon 데몬 간의 관계를 보여줍니다. 클라이언트와 서버도 마찬가지입니다.

                             ----------
                             | xmonui |
                             ----------
                                 |
                                 v
        ------------         ----------
        | client 1 |<------->|        |
        ------------         |        |       ----------
             :               | xmond  |<----->| server |
             :               |        |       ----------
        ------------         |        |
        | client n |<------->|        |
        ------------         ----------
                                 |
                                 v
                       monitor output to stdout

시도해 볼 수 있는 또 다른 최적화는 Xvfb깊이가 1(단색)인 매우 작은 화면(예: 64x64 픽셀)을 만들고 Firefox 창을 화면 밖에 배치하여 보이지 않기 때문에 렌더링되는 양이 많지 않도록 하는 것입니다.

관련 정보