반응형

자바의 메모리구조를 이야기하기전에 JVM에대해서 설명해보자


JVM은 Java Virtual Machine의 약자로써

일반적인 프로그램이 OS위에서 동작하는데 반해

자바 프로그램은 OS위의 JVM에서 동작한다.


이것은 플랫폼에 독립적인 자바의 특징을 보여주며,

자바로 작성된 프로그램이 플랫폼에 무관하게 동작하고,

이러한 프로그램이 최적의 성능으로 돌아가기 위해서는

JVM의 동작을 잘 이해하는 것이 필요하다.


JVM의 영역은 크게 아래와 같이 나뉜다.

1. Class Loader

 > JVM에서 Runtime Data영역으로 클래스를 로드하고 Linking한다. 

 > Runtime시 동적으로 로드가 가능하다.

2. Execution Engine

 > Class Loader에서 Runtime Data영역으로 로드된 클래스의 바이트 코드를 실행 

 > 실행 엔진은 자바의 바이트코드를 명령어 단위로 읽어서 실행

3. Garbage Collector

 > Garbage Collection을 수행하는 모듈 쓰레드를 지칭한다.

 > 사용되지 않는 메모리를 확보하는등의 메모리 관리를 수행한다.

4. Runtime Data Area

 > JVM이 OS로부터 할당받는 메모리 영역으로 6가지로 나뉜다.


JVM의 기본적인 수행 절차는 다음과 같다.

1. 자바로 프로그램 코드를 작성(.java)

2. 컴파일 과정을 통해 바이트코드 생성(.class)

3. 클래스 로더에서 런타임 데이터 영역으로 적재한다.

4. 적제된 코드에 대한 정보를 런타임 영역이 가지고 있고

5. Execution Engine을 통해 실행된다.


JVM의 런타임 영역은 다음과 같이 나뉜다.

1. 클래스 영역

2. 스태틱 영역

3. 상수 영역

4. 힙 영역

5. native 메소드 영역

6. PC 레지스터


힙 영역에서 GC가 일어나는데

힙은 기본적으로 Young영역과 Old 영역으로 나뉜다.


이렇게 두가지로 나뉜 배경에는

첫째로 대부분의 객체는 금방 접근 불가능한 상태가 되며,

두번째는 오래된 객체에서 신규 객체로의 참조는 거의 없다는 것을 전재로 한다.


객체가 Young영역에서 Old영역으로 이동하는것을 Minor GC라고 하고

Old영역이 가득차 객체가 삭제되는 것을 Major GC라고 한다.


Young영역은 또 크게 3가지 영역으로 나뉘는데,

객체가 가장 먼저 등록되는 Eden영역,

그리고 이 객체들이 이동하는 두개의 Survivor영역이다.

하나의 Survivor영역이 가득차면 살아남은 객체를 두번째 Survivor영역으로 이동하고

가득찬 Survivor영역에서 GC가 일어난다.

그렇기때문에 두개의 Survivor영역중 하나는 무조건 비어있어야한다.


Major GC가 일어나면 STW(Stop the world)라는 현상이 발생하는데

JVM내에서 GC를 제외한 어플리케이션이 멈추는 현상으로

이는 서비스에 치명적이기 때문에 Major GC를 최소화하는 전략이 중요하다.


GC의 알고리즘은 몇가지로 나뉘는데 

1. 시리얼 알고리즘

- 적은 메모리와 적은 코어에 적합 (정렬방식)

2. 병렬 알고리즘

- GC를 처리할때 멀티 쓰레드를 지원

3. CMS 알고리즘

-  STW 시간이 짧지만 메모리와 CPU의 사용이 많음 (바둑판방식)

4. G1(Garbage First)알고리즘

- 최신 알고리즘. 성능이 가장 좋다. 대규모에 적합

- Young영역을 나눠서 GC. STW 발생

- Old 영역을 나눠서 STW없이 GC. 


등이 있다.


반응형
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,

게임 용어

IT 2017. 9. 5. 12:38
반응형

[유저관련 지표]


UV (Unique visitor) : 일정기간 내에 게임의 접속(방문)한 실제 유저 수로 한 유저가 여러번 방문해도 1로 카운트 한다.


DAU (Daily Active User) : 일단위로 측정한 UV


WAU (Week Active User) : 주단위로 측정한 UV


MAU (Monthly Active User) : 월 단위로 UV 측정


RU (Registered User) : 일정기간내에 게임에 등록된 유저 수


NRU (New Registered User) : 일정기간내에 등록된 신규 유저 수.


ARU (Accumulate Register User): 해당 기간까지의 등록된 누적 유저 수


재방문 UV : 해당 기간 동안 게임 클라이언트에 2회 이상 로그인한 회원 수


MUV (Multigame Unique Visitor): 해당 기간 동안 게임 클라이언트에 로그인하여 실제 게임을 플레이 한 회원 수


MTS (Mutigame Time Spent): 해당 기간 동안의 평균 실제 플레이 타임


TS(Time Spent) : 해당기간 동안의 유저1인당 플레이 타임


CCU (Concurrent User) : 특정 시점에 접속한 동시 접속자 수


MCU (Maxium Concurrent User) : 하루 동안 가장 높은 동시접속자 수치.


PCU (Peak Concurrent User) : MCU 동일어


ACU (Average Concurrent User) : 1일 동안의 평균 동시 접속자 수


Stickness : 고착도


EU (Executed User) : 인게임을 플레이한 유저로UV와 같이 비교대상으로 분석


 


 [매출 관련 지표]


BU (Buying user) : 구매유저, 일정기간내에 게임에 아이템 구매, 월정액 결제 등 돈을 지불한 유저


PU (Paying User) : BU 동일어


BU rate = BU/UV (순방문자대비 결제 유저 비율)


CAC(Customer Acquisition Cost) : 유저 확보 비용으로 유저 1인을 확보하는데 소모되는 비용


CRC (Customer Retention Cost) : 유저 유지 비용으로 일정기간내에 유저1인을 유지하는데 소모되는 비용


ARPU (Average Revenue Per User) : 일정 기간 내 유저 1인당 평균 수입


ARPPU (Average Revenue Per Paying User) :일정 기간내에 게임에 비용을 지불한 유저의 1인당 평균 수입


PPU (Percentage of Paying Users) : DAU 내에서 결제한 비율 또는 비율


LTV (Life time value) : 유저 1인당 게임에서 완전히 이탈할 때까지 지불하는 비용


Entry Cost : 여러 가지 가격대의 상품을 제공할 때 유저의 최초 구매가 어떤 가격대에서 많이 일어나는지 측정


Sales by Purchase : 사용자의 구매 활동을 통해 집계된 매출


Sales by Advertisement : 광고 노출을 통해 집계된 매출


CPI (Cost per Install) : 게임 다운로드 후 설치하면 보상


CPA (Cost per Action) : 설치된 앱을 실행하면 보상


CPP (Cost per Play) : CPA 이후 일정 기간 한번씩 실행할 때마다 보상


CPL (Cost per Level) : 정량적인 플레이에 대한 레벨을 설정한 뒤 보상


 


[투자 퍼블리싱 관련 용어]


MOU (Memorandum of understanding) : 투자 등 거래에 관해 합의한 사항을 명시한 사전 협의문서로 법적 구속력이 없으며 정식 계약 전 업무 준비/친선관계 개선/대외 홍보의 역할로 활용 한다.


Initial fee : 판권 제공/계약 체결 시 판권 부여를 대가로 수령하는 금액으로 흔히 계약금이라고 한다.


Running Royalty : 퍼블리셔가 개발사에게 매출액의 일정 비율을 지급하는 비용으로 러닝 개런티랑 동일하다.


MG(Minimum Guarantee) :  판권 제공자의 최소 러닝 로얄티를 보장해 주는 금액


RS (Revenue Share) : 판권제공사/퍼블리셔 간의 수익 분배 비율


PF (Project Financing) : 회사 지분에 대한 투자가 아닌 프로젝트 성공 수익에 대해 투자하는 투자 방식


KPI(Key Performance Indicator) : 핵심실행지표로 기업이나 조직의 목표달성과 전략을 위한 핵심측정지표


반응형

'IT' 카테고리의 다른 글

유용한 링크  (0) 2013.01.27
[팀블로그] 구글 에드센스 핀 등록  (0) 2013.01.20
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,