저는이 문제에 대해 Apple의 선임 기술 고문과 1 년 이상 협력 해 왔으며 그 전에 얼마 동안 다른 선임 고문과 협력하고있었습니다. 우리는 여러 차례에 걸쳐 Apple 엔지니어에게 보내기 위해 "데이터 캡처"를 수행했으며, 여러 차례에 걸쳐 Activity Monitor, 이미지 캡처에서, 그리고 icdd가 / Users / user_name에서 유지 관리하는 plist에서 진행중인 작업을 보여주기 위해 화면 녹화를 수행했습니다. / Library / Application Support / icdd / deviceInfoCache.plist (Xcode로 표시)
이 시점에서 무슨 일이 일어나고 있는지에 대한 가장 좋은 추정치는 다음과 같습니다.
icdd (Image Capture Device Database) 프로세스는 스캐너가 사용중인 네트워크에오고가는 것을 확인합니다. 아이콘 파일 목록을 해시 테이블에 유지하려고 시도하며 위에서 언급 한 deviceInfoCache.plist 파일에도 씁니다. 그렇습니다-이것은 미친 듯이 들립니다-스캐너의 아이콘 파일에 대한 참조를 유지합니다. 그러나 어떤 이유로 든이 파일의 거의 모든 항목이 존재하지 않는 .icns 파일을 가리키고 있다는 것은 더욱 미묘합니다. 내가 본 여러 시스템 중 파일에 수천 개의 항목이 있었지만 일부 .icns 파일 만 시스템 중 하나에 존재했지만 다른 시스템에는 존재하지 않았습니다. 이 파일이 커지면 icdd는 .plist 파일에 항목이 있는지 확인하고 파일을 수정하는 데 많은 시간을 소비한다고 생각합니다. 나는 두 가지 이유로 이것을 믿는다. 먼저 노트북을 집으로 가져 가면 icdd 프로세스는 때때로 CPU의 약 100 %에서 계속 실행되지만, 죽일 때마다 매번 약 0.0에서 0.1 %로 "정상"으로 돌아갑니다. 따라서 집에서 열 때 항목에 대한 정보를 처리하려고 시도하는 경우가 종종 있습니다. 그러나 사용량이 많은 네트워크에서 중단하면 즉시 100 % 가까이 돌아옵니다. 이미지 캡처에 표시된 스캐너 수가 줄어들면 (자주 발생하지만 어떤 이유로 주기적으로 급증) icdd는 결국 중단됩니다. 둘째, deviceInfoCache.plist 파일을 삭제하면 항목 수가 다시 누적 될 때까지 icdd가 잠시 동안 합리적으로 동작합니다. icdd는 이러한 항목의 사본을 메모리에 유지하므로 사용자 계정에서 파일을 삭제하면 icdd가 즉시 다시 씁니다. 그리고 물론 파일을 삭제하기에 충분한 시간 동안 icdd를 종료 할 수 없으므로 터미널을 통해 다른 관리자 계정에서 파일을 로그 아웃하고 삭제해야합니다. icdd는 다시 로그인 할 때 파일을 다시 만들지 만 항목이 비교적 적고 잠시 동안 제대로 작동합니다.
스케일에 대한 아이디어를주기 위해 Apple 엔지니어들은 Image Capture에 85 대의 스캐너가 표시되는 것을보고 충격을 받았습니다. 그러나 종종이 숫자는 동일한 시스템과 동일한 기간에 약 6으로 설정됩니다. deviceInfoCache.plist 파일에는 icdd 문제가있는 것으로 보았던 시스템에서 8,000에서 12,600 사이의 항목이 있습니다. 2016 년 12 월에 새로운 MacBook Pro를 설치 한 시점부터 plist 파일을 삭제했을 때 새로 생성 된 파일의 초기 항목 수는 44 개였으며 며칠 동안 icdd cpu 사용량은 0.0 %에 가깝습니다. 그러나 캠퍼스에서 약 5 일이 지난 후 plist 파일은 전체 964 개를 갖습니다. icdd cpu 사용량은 대학의 바쁜 네트워크에서 30 %에서 90 % 사이에서 정기적으로 바운스됩니다. 집에있을 때 plist 파일은 하루 동안 항목 수를 0에서 2까지만 증가시킵니다. 이전 plist 파일의 12,600 개 항목 중 2 개만 "deviceName"을 포함하고 나머지는 "iconPathLocation"을 포함하며 존재하지 않는 .icns 파일을 가리 킵니다. 현재 plist에는 여전히 "deviceName"을 포함하는 2 개의 항목이 있으며 나머지는 존재하지 않는 "iconPathLocation"을 포함합니다. 존재하지 않는 .icns 파일을 가리 킵니다. 현재 plist에는 여전히 "deviceName"을 포함하는 2 개의 항목이 있으며 나머지는 존재하지 않는 "iconPathLocation"을 포함합니다. 존재하지 않는 .icns 파일을 가리 킵니다. 현재 plist에는 여전히 "deviceName"을 포함하는 2 개의 항목이 있으며 나머지는 존재하지 않는 "iconPathLocation"을 포함합니다.
따라서 단기 솔루션은 사용자 계정에서 로그 아웃 한 상태에서 터미널을 통해 다른 관리자 계정에서 plist 파일을 삭제하는 것입니다. 이 정보가 선임 고문으로부터 Apple 엔지니어에게 제공되면 Apple 엔지니어는 왜 icdd가 이런 식으로 행동하고 문제를 해결하는지 파악할 수있는 충분한 정보를 갖게 될 것입니다. 물론 단기 솔루션을 확인하고 찾은 내용을 Apple에 계속보고하면 도움이 될 것입니다.