개인 자료란 (JE)

  서버 커뮤니티

Profile snamkes 대표칭호 없음
Profile

이해도 중급자 
게임버전 (JE) 1.20 
게임버전 (BE) 관련없음 
스크립트 버전 2.9.0-beta1 

안녕하세요..
보그엉 낚시 서버를 운영중인 소규모 서버의 총 개발자 입니다.

오늘 변수 파일의 총 용량을 봤는데 26MB여서 

궁금증에 열어봤더니 변수 총 개수가 6만 이라는 기록적인 수치를 기록 했습니다.

여기서 사람들이 더 많이 들어 온다면 큰일 날 거라고 판단 했기 떄문에 질문 글 올립니다.


 변수 파일을 다르게 관리 하는 법이 있을까요?

또는

변수를 하나의 집합체로 관리하는 법이 있을까요?


가능 하시다면 모든 방법을 알려주시면 적용 해보겠습니다 정말 감사합니다.
마크 서버 버전은 1.20.4 입니다.




3개의 댓글

qsef1256
2024.06.04

6만이면 그렇게 많은 건 아닙니다. 100만 개 넘어가는 케이스들도 좀 있습니다. 그래도 잘 돌아갑니다. 솔직히 말하자면 지금 상황에서 그렇게 최적화를 할 이유는 없습니다. 다만 플레이어 나 기능에 비해 변수가 지나치게 많다고 생각된다면 그건 문제가 맞으므로(스크립트 변수는 효율적인 편이 아닙니다, 변수를 다 메모리에 올려놓고 쓰기 땜시 많아지면 램 먹는 건 맞습니다) 애당초 변수를 그렇게 낭비하는 스크립트를 찾아서 제거하거나 수정하셔야 합니다.


변수를 다르게 관리하는 방법이라면 스크립트는 일단은 DB를 지원합니다. 값만 넣어 놓는 수준이라 DB를 쓰는 의미가 큰 건 아니지만 어쨌든 가능은 합니다. 근데... 진짜로 별 의미가 없습니다. 그냥 넣는 장소가 DB로 바뀌었을 뿐 여전히 성능 문제가 있습니다. 따라서 이 방법을 쓰고 해결 됬다고 생각하시는 건 추천하지 않습니다. DB 처럼 집합체로 관리한다고 뭐가 달라질까요? 안정성은 좀 오르겠네요. 근데 그걸 원하시는 건 아닐꺼고요. 애당초 인코딩 내지 직렬화 된 데이터를 DB에 직접 때려넣는 방식이라 그냥 값만 넣는 거지 값 보면 그냥 외계어라 DB를 이용해서도 제대로 된 관리는 불가능합니다. 위에서 말했다시피 애당초 변수를 그렇게 낭비하는 것 자체가 문제니까 그거부터 해결하세요.

snamkes
2024.06.04
@qsef1256

정말 긴 답변 너무 감사합니다 다시 다시 읽어서 꼭 서버에 잘 적용 해보겠습니다 감사합니다

슈퍼레몬
2024.06.07

1. 중요한 데이터가 아닌 것은 metadata tag에 집어넣으세요.

2. skript-yaml 에드온을 활용해보세요

3. 비슷한 내용(돈과 캐시등)은 한 변수에 떄려넣는 방법이 있긴 한데 추천하지 않습니다. 극단적으로 줄여야 할떄만 사용하세요