콘텐츠로 이동

성능

대시를 열고 성능을 고르세요. 이 패널은 한 화면에 두 가지를 올려놓습니다. 헤드셋이 무엇을 하고 있었는지, 그리고 그동안 PC가 무엇을 하고 있었는지입니다. CPU 이력과 그 위의 프로세스는 어떤 데스크톱 도구든 보여 줄 수 있지만, 그 순간 컴포지터가 무엇을 하고 있었는지는 어느 도구도 모릅니다 — 그리고 헤드셋을 벗는 순간 쫓던 끊김은 사라집니다.

성능 영역. 맨 위에 프레임 타임 그래프가 가로로 놓이고, 그 아래에 코어별 그리드가, 옆에는 GPU와 메모리와 장치 표시가 있습니다.

같은 데이터를 담은 배열 네 가지가 함께 제공됩니다. 스트립(기본값), 클래식, 콘솔, 그리고 손목 거리에서 읽도록 크게 만든 확대입니다. 설정의 일반, 성능 영역, 레이아웃에서 바꾸세요. 이 페이지의 나머지는 스트립의 이름을 씁니다.

맨 위에 프레임별 그래프 두 개가 있습니다. APP MS · 프레임당 · 최근 n초와 GPU MS · 프레임당 · 최근 n초입니다. 한 프레임이 한 픽셀이므로 창에는 스트립의 너비만큼 프레임이 들어가고, 라벨은 그것이 지금 주사율에서 몇 초에 해당하는지 알려 줍니다. 점선은 헤드셋의 프레임 예산을 나타냅니다. 흐리게 그려진 프레임은 vrOS 자신이 제 속도로 렌더링하지 않던 구간에서 온 것입니다 — 숨기지 않고 보여 주며, 지어내는 대신 FPS와 평균 수치에서 빼 둡니다.

히치 마커는 같은 프레임 위치에서 두 스트립 모두에 찍히는 점입니다. 한 프레임의 피크 — 앱 프레임 간격과 총 GPU 시간 중 큰 쪽 — 가 최근 45프레임 중앙값의 1.5배 이상이면서 동시에 그보다 5 ms 이상 클 때 그 프레임을 히치로 셉니다. 고정된 기준값이 아니라 방금 전까지 기계가 하던 일에 대한 비율이므로, 꾸준한 40 fps 월드에서는 마커가 생기지 않고 매끄러운 월드의 스파이크 하나에서는 생깁니다. 스트립 헤더는 창 안의 개수를 셉니다.

스트립 레이아웃에서는 스트립 아래의 최근 60초 · 초당 1개가 지난 1분을 초당 막대 하나로 담고, 그 초에 히치가 있었으면 빨갛게 표시합니다. 막대를 가리키거나 게임패드로 그래프까지 이동하면 그 초에 CPU를 가장 많이 쓴 프로세스의 이름이 나옵니다. 패널을 열기 전의 막대에는 이름이 없습니다. 프레임 이력은 헤드셋이 연결되어 있는 동안 계속 접히지만, 프로세스 도장은 대시가 열려 있는 동안에만 존재하기 때문입니다.

CPU 미터에는 합계와 CPU 모델 이름이 실립니다. 그 아래에는 논리 프로세서마다 막대가 하나씩 있고, n 스레드 · 최대 p%라는 설명이 붙습니다. 그리드는 어떤 스레드 수에도 맞게 줄바꿈되며, 확대만 이 그리드가 없는 레이아웃입니다.

코어 칸마다 가느다란 두 번째 막대가 자랄 수 있습니다. DPC와 인터럽트 시간, 즉 그 코어가 드라이버 안에서 쓴 시간입니다. 0에서 25퍼센트까지의 고정된 자체 눈금을 쓰므로 절반 높이가 약 12퍼센트이고, 0일 때는 아예 그려지지 않습니다 — 건강한 기계에서는 대부분의 코어가 아무것도 그리지 않아 바쁜 코어가 대비로 드러납니다. 칸이 담을 만큼 넓을 때만 그려지므로, 콘솔 레이아웃과 스레드 수가 아주 많은 경우에는 사용률 막대만 보입니다.

한 코어에 드라이버 시간이 있다면 용의자는 화면의 앱이 아니라 드라이버입니다. 이 값을 측정한 기계에서는 SteamVR 말고 아무것도 실행하지 않았는데도 한 코어가 드라이버 시간을 5~12퍼센트 계속 지고 있었습니다 — 그 코어의 사용률 막대는 9.23퍼센트였으니, 그 코어 부하의 절반이 지연된 드라이버 작업이었고, 단순한 사용률 퍼센트는 그것을 눈에 띄지 않는 짧은 막대로 그립니다. USB 장치를 꽂거나 빼거나, 큰 파일 복사를 시작하면 수치가 움직이는 것을 볼 수 있습니다.

이 값을 근거로 움직이기 전에 알아 둘 것이 두 가지 있습니다.

  • 대부분의 코어가 DPC 0%로 보이는 것이 정상입니다. 집계 단위가 15.625 ms이므로, 초당 한 번 표본을 뜨면 수치가 약 1.5포인트씩 뛰고 조용한 코어는 정확히 0으로 표시됩니다.
  • 두 막대는 눈금을 공유하지 않습니다. 사용률은 0에서 100까지, 드라이버는 0에서 25까지이므로, 짧은 사용률 막대 옆에 더 높은 드라이버 막대가 있을 수 있습니다. 결론을 내리기 전에 숫자를 읽으세요.

코어를 가리키면 CORE i · p% · DPC d% · ISR n%가 나옵니다. CPU 미터를 가리키면 시스템 합계와 현재 상위 프로세스가 한 줄로 나옵니다. Linux에서는 같은 두 수치를 /proc/stat에서 가져옵니다. 플랫폼이 그 값을 줄 수 없으면 0으로 표시하는 대신 표시에서 항목을 뺍니다.

미터 보여 주는 것 황색 / 적색
RAM 설치량 대비 사용량 85% / 92%
페이지 커밋 한도 대비 커밋 사용량 85% / 92%
GPU 어댑터 사용률 퍼센트와 모델 이름 —
VRAM 전체 대비 사용 중인 전용 비디오 메모리 85% / 92%
공유 전체 대비 사용 중인 공유 시스템 메모리 아래를 보세요

공유는 VRAM이 시스템 메모리로 넘치는 것을 잡아내는 미터입니다. 게임이 갑자기 절반 속도로 도는 이유 중 하나가 그것입니다. 전용 VRAM이 95퍼센트 이상 찼을 때에만 무언가를 말하며, 그때부터 0.5 GB가 넘치면 경고하고 2.0 GB에서 오류를 냅니다. 그 문턱 아래의 공유 사용량은 정상이고 표시하지 않습니다.

기계가 카운터를 내주지 않는 미터는 —로 표시됩니다. 그것은 0이 아니라 정직한 부재입니다.

  • 타일. 이동 평균이 함께 붙은 FPS, APP MS, GPU MS, 세션 동안의 드롭, 그리고 세션 비율로 나오는 리프로젝션입니다 — 1퍼센트 이하면 비율 정상, 그보다 크면 비율 높음입니다.
  • I/O 행. 디스크 트래픽이 가장 많은 프로세스를, 읽기와 기타를 합한 값과 쓰기 값으로 보여 주고, 1/3은 순위에 오른 프로세스 중 지금 몇 번째를 보고 있는지 알려 줍니다. 행을 실행하면 차례로 넘어갑니다.
  • 가동 시간. VROS, 실행 중인 게임, 시스템입니다. vrOS 수치는 코어 프로세스 자신의 것이므로 컴포지터를 다시 시작해도 초기화되지 않습니다. 하루를 넘기면 1일 03:12처럼 표시됩니다.
  • vrOS 비용 행. 코어와 컴포지터의 CPU와 메모리, 컴포지터의 프레임 시간, 그리고 초당 제출·복사·드로우입니다. 유휴 상태에서는 0으로 표시되는데, 그것이 요점입니다.
  • 장치 밴드. 추적 중인 장치마다 칩이 하나씩 놓인 대시 캔버스의 별도 띠입니다 — HMD, 좌, 우, 그다음 트래커 순서로 최대 20개까지, 실제 개수는 제목에 적힙니다 — 각 칩에는 배터리 퍼센트가 붙어 50에서 황색, 25에서 적색으로 바뀝니다. 칩을 가리키면 모델과 일련번호가 나옵니다. 설정 → 일반에서 밴드를 끄거나, 패널 아래 대신 위에 둘 수 있습니다.

마우스를 올렸을 때 보이는 것은 전부 게임패드로도 닿을 수 있습니다. 패널을 걸어 다니면 막대 32개를 일일이 들르게 하는 대신 중요한 요소의 표시를 열어 줍니다.

항목 갱신 주기
프레임 스트립 성능이 활성 영역일 때에만, 초당 10회
타일, 미터, 이력 막대, 가동 시간, 시계 초당 1회
배터리 잔량 5초마다 1회
프로세스 표(I/O 행, 상위 프로세스) 대시가 표시된 동안 2초마다 1회
대시가 숨겨져 있는 동안의 모든 것 전혀 갱신하지 않음

프레임 타이밍 자체는 vrOS가 이미 쥐고 있는 데이터에서 컴포지터 프레임마다 한 번씩 읽습니다. 그래서 패널을 여는 순간 지난 60초가 이미 실제 값이고, 들여다본 시점부터 시작하지 않습니다. 시스템 전체를 훑는 것은 프로세스 표뿐이며, 스위치는 하나입니다. 설정 → 일반, 성능 영역, 프로세스 모니터입니다. 이것을 끄면 I/O 행과 상위 프로세스 이름이 사라지고 읽기도 아예 일어나지 않습니다.