비율 계산 편하게 하려고 ('just lurk', 'quiet', 'chatty') 비율을 (15, 75, 10) 에서 (10, 80, 10)으로 변경했어.

지금 채팅 테스트를 할 때, 10초간 테스트 데이터가 생성되고 초당 50명이 채팅방에 참여해.

1초 단위로 봤을 때,

50명 중 5명(10%)은 채팅방에 참여만.

50명 중 40명(80%)은 채팅방 참여 후 5초 뒤 메시지 1회 전송.

50명 중 5명(10%)은 채팅방 참여 후 5초 뒤 10초 동안 초당 메시지 1회 전송.

그래서 지금 세팅에서 총 채팅 메시지 수는 (1(회) * 40(명) + 10(회) * 5(명)) * 10(초) = 900번.

가상의 유저가 만들어 지지 않을 때도 있어서 완벽히 500명의 유저가 동작하는걸 보장하지 않음.

약간의 loss가 있다.

초당 가상 사용자를 2배로 올렸는데 그렇다고 메시지가 2배로 증가하지 않는다.

대략 1000개가 안됨.

테스트 보고서

// useChatMessage.js 10 line
const THROTTLE_LIMIT = 50;
const BUFFER_LIMIT = 50;
const MESSAGE_LIMIT = 1000;

// useChatMessage.js 33 line
const handleSocketMessage = msg => {
				// throttling 적용 X
        setMessageList(prev => [...prev, msg]); 
				// throttling 적용 O
        pushBuffer(msg); 
        onThrottle();
};

위의 값만 변경해가며 측정함.

실험 대상은 message buffer의 유무, throttling 적용 유무로 총 4개의 상황을 가정함.