JS Object는 나름 v8 엔진이 객체 모델 스스로 판단해서
정적인 멤버가 반복된다 싶으면
스태틱 클래스로 바꿔버려서 (hidden class)
최종 어셈블리 수준으로 성능 향상시켜줌
하지만 자바 Map은 리얼 순도 100% 맵임
HashMap인 경우 링크드 리스트 노드를 해시 버킷에 넣어서 최적화
TreeMap의 경우 링크드 리스트 노드를 트리에 넣어서 최적화하는 원리
그래서 메모리가 연속된 정적 클래스 vs 링크드 리스트의 싸움이 되어버리며
자바가 JS보다 성능 20배 느리면서 개쳐발림
많이는 안써도 내가 만든 typia도 원리가
정적인 수준의 최적화된 AOT 컴파일된 코드를 생성해줘서
속도 향상하는거라
자바에서 Map 쓴다 들으면
이래저래 본인 입장에서는 그냥 웃음벨
엌ㅋㅋㅋㅋㅋㅋㅋ
곧있으면 늙은이 ㅇㅇㅇ(175.223) 댓글로 등판할 예정
많이 안 쓰는 이유가 뭘까??? ㅋㅋㅋ 누가 if문 1000배 빠른 라이브러리 만들었다면 가져다 쓸거임?
응 많이 씀, fastify 플러그인 들어가기로 얘기되서 더 많이 쓸 예쩡
그리고 NodeJS 기준으로는 validation이랑 serialization이 메인 스레드 사용하는 연산이라, 동접자 수에 지대한 영향을 미침. 실제로 벤치상 30배 정도 차이 벌어져서, 이거 때문에 채택되는거
그렇구만
늙은이 ㅇㅇㅇ(175.223) 등판 완료!
이새낀 아는게 해시맵 트리맵 차이밖에 없음 ? 이쯤되면 어디 메모장에 저장한듯 ㅋㅋㅋ
그게 v8 최적화의 핵심 원리거든. 아, 하긴 자바 SI는 그딴거 모르면서 쓰지?
성경같은거임? 적어서 들고다니면 마스터한거같음?
대충 키워드 보이는거 꺾어서 일차원적으로 비꼰다고 그게 아픈 말이 되겠어?
ㅇㅅㅇ
v8엔진이 할 수 있는 최적화를 Jvm이 못할거라 생각하는게 놀랍네...
아니 자바 Map은 DTO를 쓰라고 만들어놓은 개념도 아니고, 자바가 동적 언어도 아닌데 hidden class 최적화가 당연히 없지 이 사람아 ㅋㅋㅋ
내가 잘 몰라서 그러는데 JVM이 해시맵을 다른 자료구조로 바꿔서 최적화를 해줌?
182.209// 당연히 아니지, 해야할 이유도 없고
너무 당당하게 JVM에서 해준다길래 뭔가 숨은 내용이 있나 했음
근데 v8 엔진 최적화 수준이 jvm보다 높음. 그래서 v8이 할 수 있는데 jvm이 못하거나 못 받아들이거나 뒤늦게 받아들였는데 생태계 개판나서 안되는것들 많음