CAFE

[나만의비법〃]다들 파일오픈에러에 고통받으시죠? 이제 고통에서 헤어나세요

작성자[하칸]이뿐시아|작성시간14.10.07|조회수7,829 목록 댓글 29


긴글을 싫어하시는분께선 스크롤을 아래로 쭉쭉 내려 해결책만 참고하시기 바랍니다.



파일오픈에러에 관한 정보에 관심이 있으신분이라면 천천히 훑고 내려가주셔도 무방합니다.


본문을 읽기에 앞서 다음 사항을 참고하세요.



1. 일단 제가 적을 방법은 100퍼센트 에러를 막아주는것이 아닙니다.

2. 해당 방법을 사용할경우 아주 가끔 약간의 렉이 발생할 수 있습니다.

3. 200렙제 이전 던전의 뺑뺑이시 파일오픈메시지 없이 걍 튕기거나,

창 - 전체화면 전환시 먹통되는 현상은 해결되지 않습니다.


어디까지나 파일오픈에러에 대해서만 서술하며 해결책을 제시합니다.







일단 해결책 제시에 앞서 다들 잘못알고 계시는듯한 부분이 있어서 그부분부터 설명하겠습니다.

왜 파일오픈에러가 발생하느냐?에 대한것인데요.

프로그램 개발자 특히 C랭귀지에 대해 좀 오래 파보신분이라면 당연히 알고계시는 분들이 계시겠지만

의외로 없으신건지 저처럼 관심이 없어서 그러려니 하시는건지 자세히 설명을 적어주시는분들이 없네요.


첫째. 파일오픈 에러는 프로그램 코드에서 경로를 잘못 지정하여 발생하는 에러가 아닙니다.


몇몇 검색을 하다가 http://cafe.daum.net/MagicWeaver/O5q8/4052 이런 게시물을 보았습니다.

글쓴이 분은 잘못알고 계십니다.


일단 경로가 잘못지정되었다면 한참 플레이중에 에러가 발생하는게 아니라

애초에 해당 파일에 접근할때마다 에러가 나야 정상입니다.

하지만 다들 아시다시피 파일오픈 에러는 정말 시도때도 없이 발생합니다.

저 게시물 댓글에도 그부분을 지적해주신게 있구요.


그 댓글중에 답도 있습니다.


하칸_이그드라실 14.09.06. 18:38

저 오류 메시지가 계속 같은 파일로만 뜨나요? 제 경우는 게임을 1~2시간 이상 하다보면 뜨는데 언제나 다른 파일 이름이 뜨죠.

메모리가 초과되어서 더 이상 파일이 들어가지 못할 때 뜨는거 같더군요. 이건 테일즈 자체에서 메모리 관리가 부실하다는 이야기 밖엔.


이 내용입니다.



뭐 다들 개발진이나 운영진이 무능해서 이런 오류도 못잡고 유저들을 괴롭히는구나 합니다.

하지만 제 입장은 이렇네요.



둘째. 이 에러는 개발자 입장에서 매우 수정하기 까다롭다.


쉬웠으면 진작에 잡았겠지요. 그런데 못잡고 있죠.

이유가 뭘까요?


아시다시피 테일즈위버는 지금 릴리즈 된지가 벌써 10년이 넘은 오래된 게임입니다.

윈도 98시절부터 플레이 해왔던 게임이나 말 다했지요...지금도 98에서 돌아갈지는 의문입니다만...어쨌든

당시 기준 32비트에 최적화 되어있으며 해당 클라이언트들도 그시절 환경에 따라 설계되고 개발이 되었습니다.

지금에와서 그걸 뜯어고치기엔 엄청난 대공사가 될꺼라 추정합니다.


코어를 새로 짜고 디버깅하고 그걸 반영하면 추정하기론

못해도 몇주에서 길게는 두어달까지 디버깅작업을 하면서 버그를 수정하고 작업해야 하며

그동안은 신규 컨텐츠 같은것을 낼 여력이 힘듭니다.

버그 잡아야 하거든요^^;


혹여나 코어부분 뜯어고치다가 돈복사나 템복사 버그라도 난무하는날엔

게임의 생사가 걸릴수도 있습니다.(그런데 사실 얼마전에 이미 돈복사는 있었지...?)

 그리고 해당작업 기간동안 돈이 안들어오는것도 문제가 될거구요.

위에선 굳이 이부분을 수정해야 하느냐, 이런상황이고 개발자가 멋대로 손대기는 힘든부분입니다.


그럼 컴퓨터 스펙업을 하면 되지 않느냐?


옛날에 비해 시간이 많이 지났죠, 지금은 메모리도 많이 늘어나고 코어도 보통 4~8개를 달고 다닙니다.

하지만 뭐... 그렇습니다. 프로그램이 그 메모리와 코어를 다 활용하지 못하게 구조가 짜여져 있습니다.

다들 아시다시피 테일즈위버는 듀얼코어든 쿼드코어든 코어를 1개만 활용합니다.

덕분에 아무리 스펙업을 해도 끈김이 완전히 사라지지않죠. 오히려 단일코어 클럭이 높은게 렉이 덜 발생하는 경우도 있습니다.

그리고 메모리를 아무리 확장해도, 테일즈위버 클라이언트는 절대 메모리가 1.5기가를 넘어서지 못합니다.


뿐더러 윈도우7 64비트 기준에선 1.2~3기가에 근접하면 반드시 파일오픈에러를 일으킵니다.

좀 메모리 관리하시는 분들이라면 플레이를 하다가 1.15기가를 넘어가면 걍 클라이언트를 한번 재시작하죠.


사용자가 게임에 접속하고 마을을 돌아다니면서 수많은 캐릭터들의 아바타와 몬스터정보, 유저, 스킬정보등을 메모리로 읽습니다.

일반적으로 안쓰는 메모리는 반환하는게 맞지만 테일즈위버라는 실시간으로 유저들과 스쳐지나가고 하는 게임에선

어느시점에서 메모리를 반환해야 할지 알수가 없습니다.


때문에 한동안 로드되지 않는 데이터를 GC(가비지 컬렉터)를 사용하여 청소하리라 추정하구요.

이는 개발자가 코드상에서 호출하여 "안쓰는 리소스(메모리)를 반환하라"라고 지시하는 코드지만

컴퓨터는 이 코드를 받고나서 바로 메모리를 탈탈 털어버리는게 아니라

한동안 가지고 있다가 정말 안쓰인다라고 판단될때 뱉어냅니다.


떄문에 시간에 따라 다르지만 매우 활동적으로 게임을 플레이하며

맵이동, 유저를 만나시는분들의 경우에는 심하면 수십분안에

좀 구석에 숨어서 느긋하게 잠수타시거나 하시는분들은 길게 몇십시간 후에도 파일오픈에러가 발생합니다.


그럼 반문하시는분이 있을지도 모르겠습니다.

"전 엄청 열심히 플레이 하는데 최소 몇시간은 버텨주는데요?"

네, 캐릭터를 자주 바꿔서 플레이 하시는분이시네요.


프로그램 개발자가 언제 메모리를 반환해야 할지 알수는 없어도

딱 이때는 메모리 반환해도 되겠다라고 파악가능한 시점이 있습니다.


프로그램이 종료될때와 캐릭터 선택창으로 넘어갈때입니다.

덧붙이면 캐릭터 선택창으로 자주 넘어가는건 파일오픈에러 뿐만 아니라

200렙전 던전 뺑뺑이때 말없이 튕기는 상황 방지에도 효과가 있습니다.





죄송합니다. 궁금증만 자아해내고 잡설이 길었네요


가장 중요한 본론이네요. 그럼 해결책은 무엇이냐?

당연한소리겠죠? 클라이언트가 쓸모없이 안쓰는 메모리부분을 강제로 뱉어내게 만들면됩니다.

그럼 직접 프로그램을 코딩해야 하냐구요? 당연히 아니죠



이미 수많은 외부 프로세스 및 메모리 접근 프로그램들이 있습니다.

그런데 몇몇 프로그램은 프로세스에 직접 액세스 하면서 해킹툴로 오진당하거나 바이러스로 인식하는 경우도 있습니다.

 


제가 이것저것 써봤는데 일단 여태 써오면서 부작용이 없는 뷰티풀 메모리라는 프로그램을 추천합니다.


http://ddiggam.tistory.com/112 띠깜님이라고 하는 개발자님 사이트입니다.


제가 개발한 프로그램도 아니고 홍보도 아닙니다. 오해는 마셨으면 해요.

잘 쓰셨으면 센스있게 개발자님께 감사하단 댓글이라도^^;


주소로 접근하여 프로그램을 설치하시고


뷰티풀메모리 환경설정에서


최적화방법 선택 : "특정 프로세스 최적화" -> 선택하기



 

 프로세스 리스트에서 InphaseNXD.exe를 체크하고 확인을 누릅니다.





아래쪽에 메모리관리 창이 뜨시는게 신경쓰이시는분은

우클릭하셔서



나오는 메뉴의 정보창 보기 [ON]을 체크 해제 해줍니다.


최적화를 한번 타신후 테일즈 클라이언트 프로세스를 보시면


메모리 사용량이 확줄어드신것을 보실수 있습니다.


메모리부족으로 인해 파일읏 못읽어서 발생하는 문제와는 빠이빠이 하게 되는것이죠


단점이라면 최적화 할때 컴퓨터 성능이 안좋으면 순간적으로 렉이 발생합니다.

그리고 메모리를 반환하고 나서 다시 로드할경우가 잦아지기 때문에

맵이동을 할때 다른 플레이어들에게 접근시 기본아바타였다가 갑자기 아바타를 스르륵 갈아입는 모습이 보이실 수 있습니다.

당연 버그는 아니고, 반환한 메모리에 다시 불러들이느라 발생하는 현상입니다.


그 증거로 구석탱이 어디숨어있다가 메모리 최적화 된 상태로 사람이 바글거리는 네냐플 같은곳 진입시 메모리가 급증가합니다.





위 스샷을 보시면 170메가 였던 메모리가 급 300메가 이상으로 증가하였습니다.





계속이동하면 쭉쭉 늘어납니다.

스킬써도 남이 스킬쓰는걸 구경해도 메모리는 증가합니다.


혹시나 자신이 너무 활동적으로 게임을 플레이하여 메모리가 한계치에 도달할까봐 두려우신분은


뷰티풀 메모리 환경설정에서 저처럼 메모리 최적화 타임을 10분정도로 잡아줍니다.

이렇게 잡아준뒤로 파일오픈에러 못본지가 너무 오래되서 언제인지 기억도 안납니다.



긴글적느라 좀 지쳤네요 내일 출근도 해야하는데 ㅠㅡ

정말 매우 잡설이 길었습니다.


다시한번 덧붙이지만 100퍼센트 막아주는건 아닙니다...만 전 셋팅해준뒤로 파일오픈에러 구경 못한지 오래됬습니다.

높은확률로 예방합니다.


고통받는 다른 테일즈 유저분들도 고통에서 헤어나오시길 바라며 이만 글을 줄입니다.


여태까지 하이아칸 서버

개발자 직장인 클럽  냥파스의 클럽원 유공아 였습니다.










다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자마드리드 | 작성시간 17.06.28 감사합니다
    지금도 텔즈 프로세스가 안잡힙니다
  • 답댓글 작성자마드리드 | 작성시간 17.06.28 32비트 운영체제에서는 테일즈 최적화 안되고
    64비트에서는 됩니다
  • 작성자잡초같은 | 작성시간 17.08.24 메모리 관리 정보 감사합니다
  • 작성자[하칸]공허태세 | 작성시간 17.08.24 루모리팅기는 이유는 뭘까요..
  • 작성자하칸]모기형 | 작성시간 19.02.08 메모리 ㅇㄷ
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼