Mac App Store에서 다운로드 (스토어 다운로드)가 CPU를 많이 소비하는 이유는 무엇입니까?


52

나는 Xcode 업데이트 및 OS X 업데이트와 같은 큰 다운로드와 그런 종류의 것들에서 종종 이것을 알았습니다.

기본적으로 우리는 다운로드를 진행하는 데 시간이 오래 걸리는 것을 본다

여기에 이미지 설명을 입력하십시오

오늘 (현재) Xcode 7.2.1을 다운로드하고 있습니다.

storedownloadd가 전체 코어를 페깅하는 것처럼 보이며이 작업의 약 30 %가 커널에서 처리됩니다.

내가 당황한 것은이 "일"이 무엇입니까? 왜이 일을해야합니까? 초당 몇 메가 바이트로 스트림을 해독하는 데 많은 리소스가 필요하지 않기 때문에 처리량은 얼마입니까? 인터넷을 통해 수백 개의 연결을 사용하여 이와 같은 큰 파일을 다운로드하고 (비트 토런트와 같은 프로토콜을 사용하여) 무결성 검사를 실행할 수 있으며 리소스 사용으로 발생하는 상황과 가까운 곳에서는 접근하지 않습니다.


1
자동으로 다운로드하기 위해 업데이트가 필요하지 않고이 CPU 사용량을 없애려면 Apple 메뉴-> 시스템 환경 설정-> App Store로 이동하여 "백그라운드에서 새로 사용 가능한 업데이트 다운로드"(El Capitan) 옵션을 선택 취소하십시오. )를 누른 다음 컴퓨터를 다시 시작하십시오.
— rakslice

답변:


30

XCode를 업데이트 할 때 동일한 문제가 발생 storedownloadd했습니다 .20 분 동안 CPU 코어를 페그하십시오.

디버거를 사용하여 storedownloadd로 침입하려고 시도했는데 실제로 스택 추적이 길고 내부에서 많은 시간을 보냈습니다 Security::CodeSigning.

많은 작은 파일의 디지털 서명을 하나씩 재귀 적으로 확인하고 있다고 생각합니다. 전체 패키지가 다운로드 될 때 확인하는 대신 왜 그렇게하는지 알 수 없습니다. 또한 내부에서 많은 문자열 조작을 볼 수 있습니다 Security_CodeSigning::RequirementLexer::RequirementLexer.

무엇을하든 storedownloadd너무 느려요!


스택 추적 내용을 어떻게 볼 수 있었습니까? (일반적으로 디버그 기호가 필요하지 않습니까?) Xcode를 사용하여 storedownloadd를 디버그 했습니까? 악기? 어떻게합니까?
— Steven Lu

@StevenLu 예, Xcode를 사용했습니다. 디버그 기호가 없다고 생각합니다. 함수 이름은 아마도 해당 함수를 선언하는 공유 라이브러리에서 온 것입니다.
— Navin

1
그래도 깔끔합니다. 나는 그것을 더 자주 시도해야한다. 감사합니다
— Steven Lu

2
다운로드가 시작되기 전에 그렇게하고 있습니다 ... 코드 서명을 확인하면 로컬 파일에서 수행됩니다. 다운로드하기 전에 전체 로컬 xcode 설치의 무결성을 확인하고 있습니까?
— user2707001

1
다운로드 할 업데이트가있을 때 지금하고 있지만 아직 다운로드하지 않습니다. 모든 경계선을 사용할 수 없게 만듭니다. 방금 활동 모니터에서 그것을 죽이고 하루 동안 내 빌드를 더 빨리 얻었습니다.
— Lassi Kinnunen

11

CPU 사용량은 조잡한 코딩과 암호화 / 압축 해제로 인해 발생합니다. 8 개의 가상 코어가 장착 된 쿼드 코어 노트북 시대의 엔지니어들은 CPU를 매우 부주의하게 여겼습니다.

누군가는 storedownloadd일상을 최적화하는 것에 대해 애플을 쫓아 야합니다 . 애플이 깨진 디자인 을 로 대체 할 때까지 1 년 이상 깨진 네트워킹을 견뎌야한다고 생각했다 .discoverydmDNSresponder

더 어두운 생각은 상점이 업로드 및 전송을 위해 데이터를 압축하고 있음을 시사합니다. Microsoft는 이 작업을 여러 번 수행했지만 Apple의 사례에서 문서화 된 사례를 보지 못했습니다.


1
우리가 고려해야 할 한 가지는 패키지 데이터를 실제로 계산 집약적으로 압축 해제 하는 것 storedownloadd입니다 . 이 시점에서 특히 사악한 것을 의심 할만한 이유는 많지 않습니다.
— Steven Lu

실제로 언급해서 죄송합니다. 그래서 가장 타당한 것은 파일 압축 해제와 관련이 있다고 생각합니다.
— Steven Lu

1
Steven은 압축 해제조차도 긴 다운로드 기간 동안 의미가 없습니다 (압축 해제는 일반적으로 다운로드가 끝날 때 발생 함). 암호화 만 의미가 있습니다. 코드가 제대로 최적화되지 않은 곳에서 발견 된 것과 같은 상황이라고 생각합니다 (Ars Technica 인용은 Apple이 핵심 OS X 루틴을 수정하는 방법을 보여줍니다. 테스터가 아닌 사용자의 전체 Mac 경험의 일부가 될 것입니다).
— Foliovision

일반 사용자 작업보다 우선 순위를 부여한 것은 이치에 맞지 않습니다. 실행하면 xcode가 느린 Mac에서 훨씬 느리게 빌드됩니다. 5 분만 조금 느리게가 아니라 20 분 느리게 회전합니다.
— Lassi Kinnunen

8

터미널에서 방금 죽였습니다 ;-) ... 느린 광대역에서 1.5MB / s를 가져옵니다.

killall storedownloadd

그래서 당신은 소프트웨어 업데이트를 얻지 못할 것입니다 ... 나에게 해결책처럼 들리지 않습니다.
— Calimo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.