최근에 제가 올린 애드온중 이 애드온 때문에 렉을 유발합니다 라는 문의를 많이 받게 됩니다.
그런데 제가 받은 문의중 대부분의 경우는 일시적인 렉 현상이거나, 그 애드온의 근본적인 원인이 아닌 경우가 많았습니다.

이에 따라 어떤 애드온이 렉을 유발하느냐에 대해서 알아보는 법을 팁으로 작성해볼까 합니다.
참고로 쉬운 내용과 어려운 내용이 있으니 잘 확인해 보시기 바랍니다.

아울러 애드온 개발자들한테 문의 하실때도 아래 사항을 체크해주시고 문의하면 개발자들이 아주 좋아할 겁니다.. (..)


1. [초급] 우선 lua 오류 메세지 보기를 켭니다.

게임에 접속하신 후 ESC - 인터페이스 설정 - 도움기능 설정을 클릭합니다.
도움 기능 설정창 우측에 Lua 오류 메세지 표시 를 체크 한 후에 확인 버튼을 누릅니다.

이 기능을 설정하고 나면 애드온에 오류가 있을시, 팝업창으로 오류 메세지와 함께 오류가 있는 애드온을 알려줍니다. 이 메세지를 복사하여서 애드온 개발자에게 문의를 해주시면, 애드온 오류 수정에 큰 도움이 됩니다.

참고로. 애드온에 오류가 있을 경우 위 기능을 설정하지 않더라도 내부적으로 오류 내용을 계속 해서 기록하게 되며, 따라서 실시간으로 작동하는 애드온에서 (레이드 프레임, 공격대 경보 애드온, 데미지 미터기 등 전투 관련 애드온) lua 오류가 있을경우 오류 메세지를 기록하는 기능 때문에 (아쉽게도 이 기능은 끌 방법이 없습니다.) 클라이언트에 엄청난 렉이 발생하게 됩니다. 

이를테면 현재 인벤 레이드 프레임 1.6.5 버전에서 일체형 소환수를 사용할 경우, lua 오류 메세지를 보실 수 있는데 이 오류 때문에 엄청난 렉이 생기는 것입니다.

대부분의 경우는 오류 메세지 창만 켜놓아도 어떤 애드온이 렉을 유발하는지 쉽게 알 수 있습니다.



2. [고급] scriptProfile 기능을 이용합니다.

제가 게시한 글 중에서 scriptProfile 관련 렉 감소 팁을 보신 적이 있을 겁니다.
이 scriptProfile 기능은 애드온 또는 내부 스크립트 부하를 감지하는데 사용되는 기능이므로 scriptProfile 이 켜져 있으면 클라이언트의 데이터 수집량이 급격히 늘어나 렉을 유발하는 것입니다.

그리하여 일반적으로 사용할 때는 반드시 꺼주셔야 하나, 원래 용도가 애드온의 부하를 감지하는 기능이므로 잠시동안 이 기능을 활용해서 어떤 애드온이 CPU를 많이 사용하는지 (렉을 유발하는지) 확인할 수 있습니다.

우선, scriptProfile 의 결과를 쉽게 볼 수 있는 애드온을 설치합니다.

이 애드온은 LDB 디스플레이 기반 애드온이므로 LDB 디스플레이 애드온이 없으신분은 LDB 디스플레이 애드온도 설치하셔야 합니다. LDB 디스플레이 애드온은 ChocolateBar 를 추천합니다. 이미 있으신분은 패스 합니다.


모두 설치하셨으면 게임 내에서 scriptProfile 기능을 활성화 합니다.
아래 명령어를 입력합니다.

/console scriptProfile 1

scriptProfile 은 UI 재시작 후에 작동하므로 다음 명령어를 입력합니다.

/reload

재시작을 완료하였으면 ChocolateBar 위에 iCPU 애드온이 보일 것입니다. 아래와 같이 나타납니다.


눈치가 빠르신 분은 이해 하셨겠지만 왼쪽부터 순서대로 
애드온 이름 / 전체 CPU 사용 시간 / 실시간(2.5초) 간 CPU 사용 시간 / 메모리 사용량 / 실시간(2.5초) 메모리 사용량 변화량 입니다.

당연히 CPU 사용 시간이 높으면 높을수록 컴퓨터에 부담을 주며, 렉을 유발할 가능성이 높은 애드온이죠.

또한, iCPU는 CPU 사용량이 가장 많은 애드온 부터 나타내는데, 위 스크린샷을 보시면 알겠지만 메모리 사용량과 CPU 점유량은 큰 관계가 없음을 아실 수 있을 겁니다.

흔히들 메모리 사용량이 많은 애드온이 렉을 유발한다고 많이 알려져 있으나, 실제로 애드온이 렉에 영향을 부분은 CPU 사용량 입니다.

그럼 위 화면에서 렉을 유발할 가능성이 가장 높은 애드온은? 맞습니다. Findparty (파티 찾기 도우미) 입니다.

여담으로, Findparty 의 경우는 현재 제가 업데이트 하고 잇는 애드온으로서, 프로그래머의 실력 부족으로 (죄송합니다..) 
파티 채널에서 채팅 하나당 약 1000번의 문자열 검색을 거치기 때문에 본질적으로 CPU 사용량이 높을 수 밖에 없는 애드온이며, 이에 따라 최근 버전에서는 인던 내부에서는 아예 꺼지게 해두었습니다.

어쨌든, 위 화면을 보시면 어느 애드온이 렉을 유발하는지 쉽게 알 수 있을 것입니다.
단, 지금 스샷은 전투를 거치지 않고 필드에서 약 15분 정도 접속한 후에 찍은 스샷인데. 실제로 렉 유발을 더 알아보기 위해서는 인던을 돌아 보셔야 합니다. 비 전투 상황에서는 아무런 처리를 하지 않는 애드온들이 많거든요.


위 스샷은 인스턴스 던전을 한 바퀴 돌고 난 후 스샷입니다. 변동이 좀 있죠?
위 스샷처럼 50개 까지 보는 것은 메모리 사용량 부분을 우클릭 해주시면 설정창에 나옵니다.

다만 위 스샷도 약 20분 정도만 데이터를 수집한 것으로서 제 애드온의 실제 상황과는 약간 거리가 있습니다.

정확한 결과를 얻기 위해서는 scriptProfile를 활성화 하고 나서 최소 1시간 정도 정도는 살펴 보셔야 한다는 점을 명심하여 주시기 바랍니다.

다시 말씀 드리지만, CPU 사용량이 높지 않는 애드온은 렉을 유발할 가능성이 거의 없는 애드온입니다.
따라서 애드온 때문에 렉이 의심 된다 하시는 분들은 위 방법을 활용해서 렉을 유발하는 애드온을 찾아 보시기 바랍니다.

끝으로, 확인이 끝나셨으면 위에서도 언급했다 시피 반드시 scriptProfile 기능을 꺼주셔야 합니다.
다음 명령어를 입력해 주시기 바랍니다.

/console scriptProfile 0

입력하신후 /reload 로 UI 재시작을 꼭 해주세요.

감사합니다.

※ 참고 : 라이브러리 (Ace3)를 사용하는 애드온은, 라이브러리를 별도로 설치하지 않으셨다면 라이브러리의 CPU 점유율도 해당 애드온에 모두 포함되어서 나타나게 됩니다. 기본적으로 Ace3 라이브러리는 다양한 기능 지원을 위해 CPU를 많이 사용합니다. 다만 Ace3 기반의 애드온은 상당히 많은편이며 하나만 설치해줘도 모든 애드온이 같은 라이브러리를 공유하기 때문에, 무거울 이유가 없는데 특정 애드온의 CPU 점유율이 비정상적으로 높게 나타난다면 Ace3 라이브러리가 범인일 가능성이 높다는 점을 참고하여 주시기 바랍니다.

※ 공격대 진행후 스샷입니다. 일반적으로 무겁다고 알려진 애드온들이 상위에 포함되어 있죠.


리카운트를 궁금해 하시는 분들이 많아서 하나 더 추가합니다.