👉 Java SpringBoot에서 성능을 측정하는 간단한 방법
System.currentTimeMillis()
를 활용하여 DB의 INSERT 성능 비교
👉 System.currentTimeMillis()
의 기능
- Java에서 제공하는 메서드
- 현재 시각을 1970년 1월 1일 00:00:00 (UTC)부터의 밀리초로 반환
- 주로 성능 측정, 타임 스탬프 생성, 기간 계산 등에 활용
👉 성능 측정하는 코드 예시(INSERT)
public ChatMessage createAndSave(String content, Long userId, Long chatRoomId, ChatMessageType type) {
ChatRoom chatRoom = chatRoomService.findByRoomId(chatRoomId);
User sender = userService.findById(userId)
.orElseThrow(() -> new IllegalArgumentException("유저가 아닙니다"));
ChatMessage chatMessage = ChatMessage.create(content, sender.getId(), sender.getUsername(), sender.getAvatar(), type, chatRoom.getId());
long start = System.currentTimeMillis();
ChatMessage savedChatMessage = chatMessageRepository.save(chatMessage);
long end = System.currentTimeMillis();
log.info("MongoDB 쓰기 : {} ms", (end - start));
return savedChatMessage;
}
- end 시간에서 start 시간을 뺀 값(save하며 소요된 시간)을 터미널 로그로 확인할 수 있음
👉 결과 화면
- 터미널에서 로그를 통해 측정된 시간을 확인할 수 있음
👉 측정 결과
- 연속적으로 빠른 채팅이 발생했을 때 MongoDB는 MariaDB보다 평균적으로 약 53% 더 빠른 성능을 보였음
- MariaDB는 중간에 한 번씩 오래 소요되는 경우가 있어서 평균 시간이 더 오래 걸림