본문 바로가기
📔개발자 일기 | | TIL

[20220307] 개발자 일기 & TIL

by 캔 2022. 3. 7.

문제가 있었던 서버의 로그 중에 "java.lang.OutOfMemoryError: Java heap space"이 있었다. 결국 JVM의 힙 메모리가 부족할 수하다는 것인데, 기존 다른 팀원분들은 톰캣의 catalina.out에 문제가 있지 않은가 추측하고 있다. 근데 로그가 찍혔다는 것은 결국 catalina 자체에 문제가 있다기보다 heap 용량이 초과되어 생기는 문제가 아닐까 생각하고 있다.

 

코드의 변수 선언 중에 BigDecimal을 사용한 부분이 있다. 쓰지도 않는 변수를 나열했다는 부분인데, BigDecimal은 float과 double의 부정확한 소수점 문제를 해결하기 위한 데이터 타입으로, 두 원시형 타입보다 더 많은 소수점 자릿수를 정확하게 표현할 수 있다. 그러다 보니 당연히 변수의 크기도 클 것인데, 구글에 검색해보니, 32 바이트라고 한다. 최대 크기가 그렇다는 것인지 아니면 변수 선언 시 정해지는 크기인지는 불분명하다. 어쨌든 크기가 큰 변수를 잔뜩 선언해 놓으니까 연결이 유지되는 동안은 메모리가 많이 필요해져서 서버가 다운되는 것 같다고 생각하고 있다.

 

http://javamoods.blogspot.com/2009/03/how-big-is-bigdecimal.html

 

How big is BigDecimal?

Lately, there was a debate in our company about rounding of numbers, more specific on how, when and where to do that. One of the questions...

javamoods.blogspot.com

 

'📔개발자 일기 | | TIL' 카테고리의 다른 글

[20220310] 개발자 일기 & TIL  (0) 2022.03.10
[20220309] TIL  (0) 2022.03.09
[20220306] 개발자 일기 & TIL  (0) 2022.03.06
[20220303] 개발자 일기  (0) 2022.03.03
[20220302] 개발자 일기 & TIL  (0) 2022.03.02