나는 Xcode 업데이트 및 OS X 업데이트와 같은 큰 다운로드와 그런 종류의 것들에서 종종 이것을 알았습니다.
기본적으로 우리는 다운로드를 진행하는 데 시간이 오래 걸리는 것을 본다
오늘 (현재) Xcode 7.2.1을 다운로드하고 있습니다.
storedownloadd가 전체 코어를 페깅하는 것처럼 보이며이 작업의 약 30 %가 커널에서 처리됩니다.
내가 당황한 것은이 “일”이 무엇입니까? 왜이 일을해야합니까? 초당 몇 메가 바이트로 스트림을 해독하는 데 많은 리소스가 필요하지 않기 때문에 처리량은 얼마입니까? 인터넷을 통해 수백 개의 연결을 사용하여 이와 같은 큰 파일을 다운로드하고 (비트 토런트와 같은 프로토콜을 사용하여) 무결성 검사를 실행할 수 있으며 리소스 사용으로 발생하는 상황과 가까운 곳에서는 접근하지 않습니다.
답변
XCode를 업데이트 할 때 동일한 문제가 발생 storedownloadd
했습니다 .20 분 동안 CPU 코어를 페그하십시오.
디버거를 사용하여 storedownloadd로 침입하려고 시도했는데 실제로 스택 추적이 길고 내부에서 많은 시간을 보냈습니다 Security::CodeSigning
.
많은 작은 파일의 디지털 서명을 하나씩 재귀 적으로 확인하고 있다고 생각합니다. 전체 패키지가 다운로드 될 때 확인하는 대신 왜 그렇게하는지 알 수 없습니다. 또한 내부에서 많은 문자열 조작을 볼 수 있습니다 Security_CodeSigning::RequirementLexer::RequirementLexer
.
무엇을하든 storedownloadd
너무 느려요!
답변
CPU 사용량은 조잡한 코딩과 암호화 / 압축 해제로 인해 발생합니다. 8 개의 가상 코어가 장착 된 쿼드 코어 노트북 시대의 엔지니어들은 CPU를 매우 부주의하게 여겼습니다.
누군가는 storedownloadd
일상을 최적화하는 것에 대해 애플을 쫓아 야합니다 . 애플이 깨진 디자인 을 로 대체 할 때까지 1 년 이상 깨진 네트워킹을 견뎌야한다고 생각했다 .discoveryd
mDNSresponder
더 어두운 생각은 상점이 업로드 및 전송을 위해 데이터를 압축하고 있음을 시사합니다. Microsoft는 이 작업을 여러 번 수행했지만 Apple의 사례에서 문서화 된 사례를 보지 못했습니다.
답변
터미널에서 방금 죽였습니다 😉 … 느린 광대역에서 1.5MB / s를 가져옵니다.
killall storedownloadd