Windows 10에서 로드 대화 상자 디스크 액세스 속도 저하

Windows 10에서 로드 대화 상자 디스크 액세스 속도 저하

TL;DR 내 하드 드라이브 조합으로 인해 로드 대화 상자가 로드되는 데 최대 6초가 소요됩니다. 이는 코드를 통해서도 확인되며 어떤 안도감을 찾을 수 없습니다.

나는 Windows 7을 오랫동안 사용하고 8을 완전히 무시했습니다. 7년차인 만큼 아주 긴 스타트업 시간을 견뎌야 했지만 그 외에는 모든 면에서 성능에 만족했습니다.

Windows 10이 출시되기 직전에 저는 최소한 시대에 뒤처지지 않으려고 과감하게 Windows 10을 설치했습니다. 동시에 시작 문제를 완화하기 위해 설치할 새 SSD를 얻었습니다. 모든 것이 기대했던 것보다 훨씬 더 순조롭게 설치되었고, 곧바로 다시 속도를 되찾았습니다. 성장통은 내 옆구리에 가시 하나가 있는 것을 제외하고는 거의 존재하지 않았습니다. 가끔 로드 대화 상자를 열면 나타나기까지 5~10초 정도 걸릴 때도 있었습니다.

(뛰어나와 "전원 프로필"이라고 말하기 전에 하드 드라이브의 회전 속도를 절대로 낮추지 않도록 설정되어 있습니다.) "가끔"이라고 말한 이유는 어떤 프로그램이 이 작업을 수행하고 있는지 파악하는 데 시간이 걸렸기 때문입니다. 처음에는 그것이 전부라고 생각했지만 Chrome과 다른 사람들은 그 동작을 패치한 것 같습니다. 매번 이러한 동작을 생성하는 가장 큰 버전은 Gimp 2.8입니다. 무엇을 하든 새 파일을 저장하거나 로드하려고 하면 대화 상자가 나타날 때까지 5~10초 정도 기다려야 합니다.

처음에는 Windows 10 자체의 버그라고 생각했지만 Chrome 등의 성능이 향상됨에 따라 Gimp의 문제임이 틀림없다고 생각했습니다. 이는 해당 프로그램에서 처음 접한 이상한 현상은 아닐 것입니다. 그러나 하드웨어에 좀 더 가까이 다가가 보니 그것이 Gimp의 잘못이 아니라는 것을 알게 되었습니다.

저는 Unity 게임 프로그래밍을 하고 있으며 현재 C#(및 오래된 Mono 라이브러리)을 사용하여 범용 저장/로드 대화 상자를 작성하고 있습니다. 처음 파일 브라우저를 작동하게 했을 때 속도가 당밀처럼 느렸습니다. 이것을 제 방법이 좋지 않았기 때문이라고 생각했지만, 최적화를 하게 되면서 대기 시간의 대부분이 다음과 같은 원인으로 인해 발생한다는 것을 알게 되었습니다. 한 줄의 코드:

string[] drives = System.IO.Directory.getLogicalDrives();

이를 측정한 후 이 지연은 Gimp의 속도 저하인 5.5초와 동일했습니다. Windows에서 "C:, D:, E: 및 F: 드라이브가 있습니다"라고 말하는 모든 것입니다. 나내 로드 대화 상자의 수정 사항을 해킹했습니다.그래서 이 드라이브 정보 지연을 표시하고 프로그램이 실행될 때마다 ~5-6초 지연이 있음을 확인했습니다. 하드 드라이브 경로 목록을 얻기 위해 시스템 API 호출을 듣기 위해서입니다.

이것이 얼마나 나쁜지 살펴보기 위해 위에 링크된 동일한 프로그램을 아내의 노트북, 형제의 노트북, 아버지의 데스크톱(Windows 10의 세 가지 모두) 및 어머니의 Mac Mini(MacOS 대상으로 다시 컴파일한 후)에서 실행했습니다. . 각각의 모든 지연은 내가 예상했던 것과 정확히 일치하는 10밀리초에 불과합니다. Mac Mini는 빌어먹을 프로그램을 로드하는 데 약 20초가 걸렸지만, 일단 실행되면 꽝, 단 한 줄의 코드에서 하드 드라이브를 로드하는 데 10분의 1초도 채 안 걸렸습니다.

그래서 지금 나는 헤매고 있습니다. 전원 프로필은 드라이브의 전원을 끄지 않도록 설정되어 있습니다. 내 BIOS는 SSD에 대해 AHCI로 설정되어 있습니다. 페이지 파일을 동적이 아니도록 설정했습니다. 인덱싱과 Windows Search 서비스를 비활성화했습니다. 모든 것이 조각 모음되었습니다. 상황을 확인하기 위해 Windows 7로 다시 부팅하기도 했습니다. 어떤 프로그램에도 로드 대화 상자 지연이 없었지만 작은 로드 도구를 실행했을 때 드라이브를 로드하는 데 지속적으로 5.5초가 표시되었습니다.

이 5초 동안 CPU/메모리 또는 디스크 액세스가 크게 급증하지 않는다는 점에 유의해야 합니다. 다음은 작업 관리자가 백그라운드에 있는 프로그램 실행 후의 스크린샷입니다.imgur 링크.

다음은 디스크 관리 스크린샷입니다.imgur 링크. 디스크 0은 SSD이고, 디스크 1은 최신 1TB 드라이브, 디스크 2는 구형 Caviar Black 1TB 드라이브, 디스크 3은 Caviar Green 2TB 드라이브입니다(다시는 안 됨. 20분 디스크 종료 기능이 내장되어 있습니다. 반복되는 테스트에는 여전히 각각 5초의 지연이 있기 때문에 이것이 원인이 아니라고 합리적으로 확신합니다.

내가 시도할 수 있는 다른 것에 대한 통찰력을 가진 사람이 있습니까? 기본적으로 개별 드라이브가 문제를 일으키는지 확인하기 위해 일부 드라이브의 연결이 끊어진 상태로 부팅하는 것으로 축소되었습니다(디스크 관리에서 디스크 0과 1을 제외한 모든 항목을 오프라인으로 설정하려고 시도했지만 소용이 없었습니다). 어떤 도움이라도 주시면 감사하겠습니다.

편집하다:추가 조사 결과: 모든 HDD(블루레이 드라이브 포함, SSD 하나만 남음)를 분리한 후에도 문제가 지속됩니다. 인터넷 연결을 완전히 끊고 네트워크 검색을 비활성화한 후에도 문제가 지속됩니다.

게다가 5.5초라는 표시는 아주 견고한 숫자인 것 같습니다. 내 도구의 "디스크 워크" 시간(각 디스크의 첫 번째 디렉터리 수준을 읽는 데 걸리는 시간)은 매우 다양하지만 디스크 읽기 시간은 항상 5.550-5.580 범위에 있습니다. 이는 일종의 5.5초 시간 초과가 어딘가에서 발생하고 있음을 나타내는 것 같습니다.

편집 2:2개의 1TB 드라이브만 연결된 상태에서 Windows 7로 부팅했습니다. 로드 시간은 여전히 ​​5.5초의 대기 시간에 종속되어 있습니다.없이SSD가 관련되어 근본 원인에 대한 나의 주요 이론이 무너졌습니다. 이는 마더보드의 입력 드라이버에 문제가 있을 수 있음을 의미합니다.

내 하드웨어, 관련성이 있는 경우를 대비해 다음을 수행합니다.

  • 프로세서:AMD 페놈 II X4 965-블랙
  • 마더보드:기가바이트 GA-790XTA-UD4
  • 동영상:AMD HD 5770
  • SSD:OCZ 아크 100 240GB
  • HDD:WD 블랙 1TB(2013)
  • HDD:WD 그린 2TB(2011)
  • HDD:WD 블랙 1TB(2010)

답변1

고르어떤 사람의 아들실업가.

그것은존재하지 않는 플로피 드라이브. 자신이 갖고 있지 않은 추진력을 기대하는 사람은 아무도 없습니다!

내 마더보드에는 플로피 컨트롤러가 있는데, 이는 연결되어 있는지 확인하는 것이 클럭 사이클 낭비로 간주되었던 시대의 기술인 것 같습니다. 내가 달릴 때마다 System.IO.Directory.GetLogicalDrives()유령 드라이브가 시간 초과되기를 기다리고 있었습니다.

BIOS를 열고 플로피를 완전히 비활성화하는 설정을 찾았는데, 이로 인해 문제가 완전히 사라졌습니다. 이제 Gimp도 완벽하게 로드됩니다.

나는 정말 훌륭한 형사입니다.

답변2

참고 -- 사용 중지 중플로피 디스크 드라이브>플로피 디스크 드라이브장치 관리자가 나를 위해 일했습니다. BIOS를 다시 시작하고 조작하기에는 너무 게으른 편이었습니다.

관련 정보