Eli의 여백

바쁜 나날들 사이에서 생각났던 이런저런 것들을 적어봅니다.

IT/문제해결

좋은 컴퓨터에서도 이유 없이 엑셀에 렉이 걸릴 수 있다

Eli♪ 2019. 7. 12. 13:08

---- (2021.07.14 추가)
최근 블로그 유입을 보다가 놀랐는데 이 글이 엑셀도 고사양을 필요로 한다는 식으로 잘못 이해되는 경우가 있는 것 같다. 어디까지나 아래의 글 내용은 엑셀에 렉걸리는 이유가 사양 이외의 다른 이유가 있을수도 있다는 것을 보여주는 예시이다. 즉 일정 사양 이상 (내 생각에는 최소 4코어 CPU에 램 8기가, 권장은 6코어 이상 CPU에 램 16기가) 인데 엑셀에 렉이 걸리면 사양이 딸려서 렉걸리는게 아닐 가능성이 높으니 스펙업을 할 게 아니라 본문에도 언급하였듯이 빠른 fix 등의 방법을 알아보란 얘기다. 이하의 글을 읽는데 오해 없길 바란다.
그리고 액셀은 애초에 주어진 리스트에 대해서 간단한 연산을 수행하는 목적으로 만들어진 '스프레드시트'라서 정렬이나 필터 연산에 최적화되어있지 않으므로 수십만 개 이상의 데이터를 다룰 때 퍼포먼스를 제대로 챙기려면 전용 DBMS를 고려해보는게 맞을 것이다. 이런 DB제어류들은 애초부터 그러한 작업에 최적화되어 있으며 필요한 정보만 읽고 처리과정도 직렬화되어있기 때문에 램에 올라가는 데이터도 적고 정렬이나 필터 연산에 대해서 엑셀보다 훨씬 빨라질 수 있다. 엑셀과 그나마 비슷한 것은 단일 파일에 모든 DB정보를 쓰는 sqlite같은 것들이 있다. 해당 파일만 있으면 어디서든 잘 열려서 일반 파일과 비슷한 느낌으로 사용할 수 있으니 참고하기 바란다.
-----------------------

(이하 2019.07.12 작성내용)
엄청나게 전문적인 용도는 아니었지만, 학부 때의 나는 데이터 정리 등에 엑셀을 주로 활용했다. 하지만 지금은 엑셀을 거의 쓰지 않는다. 복잡한 수식 계산이 있는 것은 MATLAB으로 하면 그만이고, 엑셀은 논문에 쓸 그래프 그리는데는 최악에 가깝기 때문이다. 그리고 엑셀에서 기본 지원이 안되는 기능들도 많기도 하고.. 예를들면 cubic spline이라던가..

적어도 내가 써본 작업 내에서의 엑셀은 렉이 걸릴 일이 없었다. 사무용으로 엑셀을 사용하는데 내가 써본 범주를 크게 벗어나지 않는다고 생각했다. 그래서 문서작업 위주의 사무용 컴에는 인텔 i5에 램 16기가정도면 웬만한 작업에는 렉이 걸릴수가 없다고 생각했다.

그런데 최근 타인의 자료를 수백 개 정도 받아서 주어진 양식으로 취합하는 작업을 맡게 되면서 CPU나 램과 상관없이 엑셀에도 렉이 걸릴 수 있다는 걸 알게 되었다.

일단 문제상황 설명 전에 스펙부터 적고 가겠다.
OS: 윈도우 10 엔터프라이즈 1903
CPU: 인텔 i7 8700K (8세대, 6코어 12스레드, 하이퍼스레딩 on) + 사제 공랭쿨러
RAM: 삼성램 DDR4 40GB (2133MHz, 논오버)
그래픽: GTX 1060 6GB
엑셀: MS오피스 엑셀 2019

사무용 컴으로는 절대 꿀리지 않는다고 생각할 수 있는 구성이다. 업데이트도 항상 꾸준히 한다. 성능쪽에도 꽤 신경을 써서 은행 보안프로그램은 충돌이 나지 않게 죄다 가상머신으로 필요할 때 돌리고, 게임도 안깔고, 안드로이드 에뮬레이터같은것도 하나도 없다. 빡빡한 계산이나 논문작업을 할 때 빼고는 주로 켜놓는건 오피스류를 제외하면 크롬 브라우저, PC카톡, MATLAB 정도? 이마저도 업무용이다. (그런데 크롬 탭이 수십개긴 하다. 크롬은 웬만큼 저사양 CPU아니면 램을 퍼먹긴해도 다른 프로그램 성능에 영향은 거의 없다.)

그런데 이런 컴으로 기껏해야 몇천 개 정도 되는 셀에서 특별한 수식 연산을 하는 것도 아닌데 엑셀의 CPU 점유가 폭증하면서 논리코어 2개를 100% 소모했다 (하이퍼스레딩 on 상황). 그리고 그러한 상황에서 엑셀에 마우스를 클릭하면 20~30초 뒤에나 해당 셀이 찍히고 (셀 찍히기 전까지는 활성화도 안됨), 셀을 선택해서 복사하면 복사하는데 1분이 넘게 걸렸다. 도저히 작업을 할 수가 없는 상황이었다. 창 드래그는 물론 안된다. 20초 후에 갑자기 창이 순간이동한다.

문제가 발생한 엑셀파일 (내용 모자이크처리)

모든 엑셀 창을 껐다가 다시 켜면 또 빨라진듯 하다가 작업 몇개만 해도 다시 느려지면서 CPU 30퍼를 점유 (1개 물리코어 풀점유) 했다. 램을 퍼먹는것도 아니었다. 뭐가 충돌났나 싶어서 엑셀 옵션에서 pdf변환 빼고 추가기능도 다 껐다. 허사였다.

바쁘지만 이대로는 안되겠다 싶어 인터넷을 뒤졌다.
1. 옵션-고급에서 하드웨어 가속 해제 (실패)
2. 레지스트리 그래픽 키 및 DisableAnimations, DisableHardwareAcceleration 추가 (실패)
3. 프로그램 추가/제거에서 MS 오피스 찾아서 우클릭-변경-빠른 fix (성공. 작업전에 워드나 파워포인트 등 모든 오피스 프로그램을 닫아야 함)

3번에서 성공하고 나서 일단 한시름 덜었다.

문득 드는 생각이

최근에 유튜브에서 어떤 컴퓨터가게 아저씨 영상 (아마 허수아비 였던 것 같다) 을 본 적이 있는데,
손님 중 한명이 엑셀 렉 안걸리게 고사양으로 해주세요. 이렇게 말하는 것을 보았다.
그 때는 개소리라고 생각했다. 엑셀에 고사양??
당연히 컴터 가게 주인도 어이없어하면서 i3를 추천해주더라.
(근데 요즘시대에 저전력구성도 아니고 i3는 좀.. 창 몇개만 띄워도 충분히 CPU때문에 스로틀 걸린다. 사무용으로는 i5정도 맞추면 오래쓰고 적당하다.)

또 얼마전에 연구실 선배가 엑셀에 렉걸린다고 컴터 바꿔야되는거 아니냐고 해서 가보니까 미뮤(안드로이드 에뮬레이터)를 2개나 띄워놓고 렉걸린다고 하는 것을 보았다. 당신이 이런거 돌리니까 그런거지 이러면서 뭐라 했던 기억이다. 뭔가 억울한 표정으로 쳐다보는 선배를 뒤로 하고 나왔었다.

그런데 지금 다시 생각해보니 그 때 그 사람들도 이러한 문제를 겪었던 것이 아닐까? 하는 생각이 들었다. 컴터를 잘 모르는 사람들이라 사양을 높이면 되겠지 이 생각을 한 것 같았다. 하지만 그건 사양문제가 아니었던 것이다.

나는 오늘 깨달았지만, 아직 이런 문제를 겪어보지 못한 사람들에게 이 글을 남긴다.
2019/7/12 금요일, 연구실에서