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.