Illustrator가 백그라운드에서 2 % 속도로 조절되는 이유는 무엇입니까?


8

정기적으로 Adobe Illustrator에서 .jsx 스크립트를 실행하여 특정 파일 형식으로 많은 파일을 저장합니다.

  • Illustrator가 활성 앱인 동안 5 개 파일 에서 스크립트를 실행하는 데 23 초가 걸립니다 .

  • Illustrator가 가장 중요한 앱이 아닌 경우 5 개 파일 에서 스크립트를 실행하는 데 5 분 이상 걸립니다 .

  • Activity Monitor 에 따르면 Illustrator는 포 그라운드에있을 때75 %의 CPU를 사용 하지만 백그라운드에있을 때는 2 % 미만으로 조절됩니다 .

  • Activity Monitor에 따르면 App Nap이 사용되지 않습니다 .

왜 이런 일이 일어나고 그것을 바꿀 수있는 방법이 있습니까?

Illustrator를 기다리는 동안 다른 작업을 수행하고 싶습니다. 그대로, Illustrator를 포 그라운드로 유지해야합니다.

내가 시도한 것 :

sudo sysctl debug.lowpri_throttle_enabled=0

Time Machine 백업을 가속화하기 위해 노력 했으므로이 경우 도움이 될 수 있습니다. 효과가 없었습니다 .

또한 App Nap를 비활성화하려고 시도했습니다.

defaults write NSGlobalDomain NSAppSleepDisabled -bool YES

효과가 없었습니다 .

TinkerTool을 시도했지만 lowpri_throttle_enabled 설정 을 변경하는 것은 GUI 일뿐이라고 생각 합니다. 효과가 없었습니다 .

답변:


6

이것은 Adobe 문제인 것 같습니다. 특히 AI 용 코드베이스는 멀티 스레드가 아닙니다.

Adobe 포럼에서 정확한 문제를 해결하는 토론을 찾을 수있었습니다. Illustrator를 CPU에 다중 스레드로 만들기

Illustrator의 성능은 끔찍하며 가장 기본적인 작업을 제외하고는 느리고 느립니다. 그것은 멀티 코어 및 멀티 스레드 CPU 시대에 지금은 우스운 단일 CPU 스레드에만 묶여 있으며 수년간 이런 방식으로 사용되었습니다. 백그라운드 작업을 처리 할 수 ​​없으며 Photoshop 및 inDesign과 같은 다른 Adobe 소프트웨어와 기능 및 성능면에서 완전히 차이가 있습니다.

강조 광산

불행히도, 코드가 백그라운드 CPU 작업을 지원할 수 없다면 Mac의 관점에서 속도를 높이기 위해 할 수있는 일은 없습니다. 포럼의 모든 사용자가 (그런지) 받아들이므로, 유일한 해결책은 Adobe의 업데이트를 기다리는 것입니다.

왜 이렇게

일반적으로 백그라운드에서 응용 프로그램은 "일시 중지"되었습니다. 기술적으로는 우선 순위낮습니다 . 이것은 CPU가 더 많은 명령을 실행할 기회가있을 때까지 실행이 중지된다는 것을 의미합니다. 일반적으로 IO 페치 작업 중입니다. 이 프로세스 관리를 "CPU Scheduling"이라고하며 하드웨어가 사용자를 위해 처리하는 것입니다. 응용 프로그램은이를 허용해야합니다 (제어를 포기).

멀티 스레딩의 일반적인 오해는 작업이 더 빠르게 실행된다는 것입니다. 이것은 사실이 아니며 CPU 리소스를 더 잘 사용하기 위해 더 많은 일이 동시에 발생 합니다. 마치 공항과 컨퍼런스 센터 사이에서 사람들을 셔틀하는 단일 택시 (인적 항공사)가 셔틀을하는 것과 같습니다. 그들은 모두 같은 속도로 가고 있습니다. 바로 지금 당신이 더 많이 움직이고 있습니다.

"멀티 스레드 가능"응용 프로그램은 하드웨어가 CPU 시간을 관리 및 예약하고 할당 할 수있는 CPU가 더 많고 백그라운드 작업이 더 많은 리소스를 가져와 작업을 수행 할 수 있도록합니다.


1
다중 스레드가 아닌 응용 프로그램이 백그라운드에서 왜 느려지는지를 간단히 설명 할 수 있습니까? 내 상상은 제안한다 : 한 번에 N 개의 스레드가 실행 중이며 Mac은 자동으로 "주"사용자 연결 스레드에서 85 %의 리소스를 사용하고 다른 모든 스레드에 대해 15 %가 나눕니다. 나는 이것에 대해 아무것도 모른다, 나는 단지 그것을 만들고있다.
앤드류 스위프트

1
일반적으로 단일 스레드 응용 프로그램은 백그라운드에서 "일시 중지"되고 전경에서 "실행"됩니다. 백그라운드에서 앱을 유지하려면 일시적으로 CPU를 "폴링"하고 일부 기능 (예 : 파일 저장)을 호출합니다. "CPU 할당"자체가 아닙니다. 포럼을 읽음으로써 8 및 16 코어 Mac Pro를 사용하는 사람들은 AI를 실행할 때 단일 코어 만 사용되는 것을 볼 수 있습니다. 즉, 전체 리소스를 활용하지는 않습니다.
Allan

1
이 설명으로 답변을 업데이트하려면 올바른 답변을 선택해 드리겠습니다.
앤드류 스위프트

1
@Allan 와우! 어도비 일러스트 레이터가 멀티 스레딩을 지원하지 않는다고 생각한 적이 없습니다! 나에게는 멀티 스레딩의 후보가 될 것 같습니다. 다시 말하지만, 마이크로 소프트는 엑셀 (다른 명백한 후보)로 멀티 스레딩을 지원하는데 오랜 시간이 걸렸으며, 지금도 그 구현은 그리 좋지 않습니다. 시간이 지날수록 점점 더 많은 앱이이를 지원할 것입니다.
Monomeeth

1
@Monomeeth-동의합니다. AI가 개발 곡선보다 훨씬 뒤떨어져 있다는 것을 믿을 수 없었습니다. 포럼에서 읽은 한 가지는 CC가 Adobe가 수익을 수집하고 제품을 수정하지 못하게 본질적으로 허용한다는 점을 애도하는 사용자였습니다. Apple이 자체 CPU로 이동하고 32 비트 앱에 대한 지원을 중단하면서 Adobe는 문제를 해결해야 할 수 있습니다.
Allan

0

이 답변은 Quora의 Adobe Illustrator (2001-2004) 제품 관리자 Mordy Golding의 답변입니다 .

벡터 그래픽에는 장단점이 있습니다. 슬프게도 이것은 단점 중 하나입니다. 벡터 그래픽이 선형 스택 순서로 그려지기 때문입니다.

하나의 간단한 예를 들어 하나의 사각형으로 된 단일 레이어를 사용하십시오. 해당 레이어를 100 번 복제하십시오. 맨 위 레이어 만 표시 되더라도 Illustrator는 각 사각형을 맨 아래부터 맨 위까지 그립니다. Illustrator는 이전 49가 완료 될 때까지 레이어 50을 그릴 수 없습니다. 이것은 어떤 픽셀이 궁극적으로 보이는지에 관한 포토샵과는 다릅니다.

더 개념을 확장. 코어가 4 개 있다고 가정 해 봅시다. 포토샵 파일을 가져 와서 4 개의 영역으로 분할하여 각 코어에 동시에 1 개의 영역을 그리도록 지시 할 수 있습니다. 한 그리드의 픽셀이 다른 그리드 영역의 픽셀에 영향을 미치지 않기 때문입니다. 사진을 여러 개의 독립적 인 영역으로 분할 할 수 있으므로 각 영역을 동시에 렌더링하기 위해 여러 개의 코어를 할당 할 수 있습니다.

그러나 Illustrator에서는 각 개체가 쌓인 순서대로 표시되는 순서대로 그려집니다. 따라서 이미지를 4 개의 격자로 나눠도 그리드에 관계없이 모든 아트 오브젝트를 오브젝트별로 빌드해야합니다. 렌더링하기 전에 모든 오브젝트가 그려 질 때까지 4 개의 코어가 모두 기다려야한다는 의미입니다.

이는 Illustrator에서 일부 기능 만 다중 코어 기능을 지원할 수 있음을 의미합니다. 예를 들어, 큰 파일을 인쇄하는 경우 Illustrator는 인쇄 스풀링을 다른 코어로 전달하고 문서로 돌아가서 즉시 작업을 계속합니다. 그러나 슬프게도 그리기 / 렌더링 아트와 같은 선형 작업의 속도를 높이는 것은 불가능합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.