엑셀 CPU 사용 제한


31

실행할 때 엑셀이 액세스 할 수있는 CPU 사용량을 제한하는 방법이 있습니까? 거대한 배열 수식을 계산하는 VBA 스크립트가 있습니다. 전체 계산은 CPU의 100 %를 사용하는 데 20 분 정도 소요될 수 있지만 시간 동안 내 컴퓨터를 사용할 수 없으며 50 % CPU 사용률로 백그라운드에서 컴퓨터를 실행하여 다른 작업을 계속할 수 있습니다. 어떤 제안?

내 OS는 Windows 7 Enterprise 64 비트이고 Excel 버전은 2007-32 비트입니다.


1
윈도우? 어떤 버전?
DavidPostill

Windows 7. 게시물에 추가하겠습니다
learningAsIGo

8
멀티 코어 CPU를 구입 하시겠습니까? 이미 가지고있는 사람 (누군가?)이 있고 Excel에서 모든 코어를 사용하는 경우 (Excel에서 알 수없는) 작업 관리자에서 선호도를 설정하십시오.
user20574

2
이것은 질문에 대한 답은 아니지만 수천 개의 셀을 계산하고 업데이트하기 전에 창 업데이트를 끄십시오. 차트가 있으면 끄십시오. VBA는 느리지 만 실제로 느릴 때는 대개 하나 또는 둘 다 비난합니다.
Coxy

1
@cat : 아니요, Windows 작업 관리자에서 100 % CPU 사용은 모든 논리 프로세서에서 100 %를 의미합니다. 하나의 코어 만 채워지면 25 % (하이퍼 스레딩이있는 일반 듀얼 코어) 또는 ~ 36 % (터보 부스팅)입니다.
Martheen Cahya Paulo

답변:


54

여러 수식에서 VBA 함수를 호출하거나 스크립트에서 여러 수식을 다시 계산하거나 생성하는 경우 Excel 의 다중 스레드 계산 기능을 반드시 사용해야합니다 . 각각은 각 수식에 대해 VBA 함수의 여러 인스턴스를 실행하거나 vba 스크립트가 단일 스레드에서 실행되는 동안 여러 셀을 동시에 다시 계산합니다.

Excel 옵션 ... 고급 탭 ... 수식 섹션에서 Excel에서 수식을 다시 계산하기 위해 사용하는 스레드 수를 제한 할 수 있습니다.

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


VBA 하위는 문제가 아니며 VBA 코드가 생성하는 Excel 배열 수식입니다.
learningAsIGo

@learningAsIGo 맞아, 나는 대답을 단순화했다. 스레드 수를 1로 설정하면 도움이되는지 알려주십시오.
mtone

1
이것은 트릭을 한 것으로 보입니다. 나는 그것을 3 코어로 설정했고 CPU의 75 %에서 최대를 유지하여 다른 일을 할 충분한 공간을 남겨 두었습니다. 감사!
learningAsIGo

27

우선 순위를 낮추는 대신 작업 관리자에서 선호도를 변경하십시오. CPU가 두 개 이상인 경우 Excel에서 사용할 CPU 수를 제한 할 수 있습니다. 이렇게하면 다른 CPU가 다른 작업을 수행 할 수 있습니다.

프로세스 탭에서 Excel을 마우스 오른쪽 단추로 클릭하고 선호도 설정을 선택하십시오. Excel을 실행할 CPU를 선택하십시오.


3
선호도를 위해 Windows는 각 코어를 CPU로 간주합니다. (이것은 듀얼 또는 쿼드 코어가있는 경우 작동합니다.)
jpmc26

1
코어에 대해 구체적으로 이야기한다면 HyperThreading 스레드는 왜 안됩니까? 또한 고유 한 논리적 CPU입니다. 즉, HT가있는 쿼드 코어 CPU에는 8 개의 논리 CPU가 있습니다.
Ruslan

HandBrake를 실행할 때 항상이 작업을 수행하고 트랜스 코딩 프로세스를 일시 중지하거나 중지하지 않고 한 시간 동안 인터넷을 탐색하려고합니다. 시간이 지나면 코어가 프로그램으로 다시 릴리스되고 친화력 "리셋"이 언급된다는 것은 언급 할 가치가 있다고 생각합니다.
MonkeyZeus

2
@MonkeyZeus 일반적으로 프로세스가 종료 될 때 선호도는 저장되지 않습니다. 현재 실행중인 프로세스에만 적용됩니다. HandBrake가 새로운 프로세스 자체를 생성했거나 새로운 프로세스를 시작했을 수 있습니다.
jpmc26

알아두면 좋겠다! 나는 새로운 프로세스를 스스로 시작하지 않았으므로 스스로 스폰해야합니다.
MonkeyZeus

7

작업 관리자를 열고 "세부 사항"또는 "프로세스"탭 (Windows 버전에 따라 다름)으로 전환 한 다음 excel.exe 프로세스를 마우스 오른쪽 단추로 클릭하고을 선택하여 Excel 프로세스의 우선 순위를 낮출 수 있습니다. 우선 순위가 낮습니다. 다른 프로세스에 더 많은 CPU 시간을 제공해야합니다.


1
작동하지 않는 것 같습니다 : 우선 순위를 매우 낮게 설정했는데 여전히 컴퓨터보다 느립니다.
learningAsIGo

1
웹 브라우저의 우선 순위를 높이거나 동시에 수행하려는 작업을 시도하십시오. 나는 변화 우선 순위가 얼마나 효과적인 지에 대한 논의를 발견했다 .
Slithy Toves

3
@SlithyToves : 정말 중요하지 않습니다. 우선 순위는 여러 후보가있는 경우 CPU를 얻는 프로그램을 결정합니다. Excel을 매우 낮게 설정하면 다른 모든 프로그램이 완료 될 때 CPU 슬라이스 만 가져옵니다. 그러나 Excel 때 않습니다 CPU를 슬라이스를 얻을, 그 조각을 포기하지 않을 것이다. 다음 CPU 타임 슬라이스에 대한 경쟁을 잃을 것입니다.
MSalters

3

VBA 또는 선언을 통해 사용할 수있는 절전 및 대기 기능이 있습니다. 그러나 "과도하게 단순한 규칙"은 결코 Sleep ()을 사용하지 않는 것입니다. (Google ' "절대 사용하지 마십시오 ()"프로그래밍')

Application.Wait에 대한 문서 페이지 ( https://msdn.microsoft.com/en-us/library/office/ff822851.aspx ) 절전 모드와 대기 모드는 지정한 시간 동안 Excel이 응답하지 않게되므로 타임 슬라이스 "열차 사고"가 발생할 수 있습니다.

계산에 일종의 루프가 포함 된 경우 특정 목적을 위해 이것을 처리하는 한 가지 방법 (CPU 가용성에 대한 계산 시간을 잃음)은 예를 들어 DoEvents ()를 1 초 동안 반복하고 그런 다음 반환합니다.

DoEvents는 기본적으로 코드 / 통역사에게 OS 등의 시간을 포기하도록 지시합니다. 코드가 더 오래 걸리게됩니다. 또한 계산이 진행되는 동안 워크 시트를 편집 할 수 있으므로 마일리지가 다를 수 있습니다. 테스트.

예를 들어 https://stackoverflow.com/questions/469347/is-there-an-equivalent-to-thread-sleep-in-vba를 참조하십시오.



0

랩톱에 4GB의 메모리가있을 때도 같은 문제가있었습니다. 16GB로 업그레이드하자마자 문제가 중단되었습니다. 또 다른 가능한 해결책.


0

매크로 시작 부분 근처에 다음 두 줄을 추가하십시오.

'Turn off screen updating

 Application.ScreenUpdating = False

그리고 끝 근처 에이 두 줄 :

'Turn screen updating back on

 Application.ScreenUpdating = True

그러면 다른 일을하는 동안해야 할 일이 줄어 듭니다.


-2

64 비트 OS에서 32bi office를 사용하는 경우이 앱을 사용해야합니다. http://www.ntcore.com/4gb_patch.php

이 응용 프로그램은 엑셀이나 다른 사무실 32bit가 mo를 사용할 수있게합니다.


문제는 CPU 제한에 관한 것이며, AWE를 활용하지 않는 앱에서 AWE를 활성화하는 것에 대한 답변입니다.
Martheen Cahya Paulo

-5

OpenOffice 또는 LibreOffice를 사용하십시오. 스크립팅 성능은 MS보다 훨씬 효과적이며 문자 그대로 계산에 "스로틀"을 가질 수 있습니다.

편집 : 왜 downvote? 상기 봐 걸릴 매뉴얼을 하고 직접 참조하십시오. 예를 들어, 계산을 Java로 변환 하고 JVM의 모든 조절 기능을 사용하면 괜찮 습니다.


3
나는 공감하지는 않았지만 OP에서 질문 한 바로 그 질문에 대한 해결책 대신 해결책을 제안했기 때문이라고 가정합니다. "실행 중 CPU 사용률이 엑셀이 얼마나 액세스 할 수 있는지 제한 할 수있는 방법이 있습니까? "
Monkpit

@Monkpit OpenOffice에 대한 나의 이야기는 비슷한 문제에서 시작되었습니다. 포팅은 우리가 가진 모든 문서에 대해 대략 일주일이 걸렸지 만 그 후에는 MS Office를 다시는 사용하지 않을 것이라는 의견이 있습니다.
Alexey Vesnin

OpenOffice는 99 %의 사람들이 Office over Libre를 사용하므로 개발자 (아마도이 ​​사람처럼)를 사용한다는 이유로 Office보다 훨씬 우수합니다. 그래서 제가 다운 보트를했습니다.
Thomas Shera

@ThomasShera 글쎄, 나는 전혀 이해할 수 없다- 왜 그렇게 오랜 시간 동안 Microsoft 사람들은 물건을 고칠 수 없습니까? 아니, 새로운 물건을 필요는없는 포틀랜드는 - 당신의 제품이 실제로 ... 작동하지 않습니다
알렉세이 Vesnin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.