Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GraalVM 도입으로 JVM 백엔드 애플리케이션의 구동 초기 성능 문제 해결하기

kakao
November 01, 2024

GraalVM 도입으로 JVM 백엔드 애플리케이션의 구동 초기 성능 문제 해결하기

#GraalVM #JAVA #성능최적화 #애플리케이션최적화

GraalVM에 대해 소개하고, Java로 네이티브 애플리케이션을 개발하기 위한 GraalVM의 요구사항들을 설명합니다. GraalVM 도입 전후의 성능을 벤치마크하고 비교합니다. GraalVM으로 초기 성능 웜업 문제를 해결함으로써 얻은 운영상의 이점과 인사이트를 공유합니다.

발표자 : nathan.k
카카오톡 톡서버플랫폼에서 백엔드 개발을 하고 있는 네이슨입니다.

kakao

November 01, 2024
Tweet

More Decks by kakao

Other Decks in Programming

Transcript

  1.  +7. +BWB7JSUVBM.BDIJOF ਷+*5 +VTU - *O - 5JNF ஹ౵ੌ۽ز੘ೣ

    
 ೐۽Ӓ۔ਸप೯ೞݶ ࠺۽ࣗӝ҅য௏٘ܳࢤࢿ 
 प೯ജ҃ ۠ఋ੐೐۽౵ੌ੿ࠁ؋࠙ীҕѺ੸ੋ୭੸ചоמೣݒ਋ࡅܴ 
 Ӓ۞աҳز૒റࢿמ਷ݒ਋աࢄ +7.੄ୡӝࢿמޙઁ
  2.  (SBBM7.਷+7.জਸ"05 "IFBE - 0G - 5JNF ۽ஹ౵ੌೡࣻ੓ѱ೧ળ׮ 
 ҳز૒റࢿמ਷+*5ਵ۽ز੘ೞח)PUTQPUࠁ׮঑ب੸ਵ۽ࡅܰ׮

    
 ׮݅۠ఋ੐ജ҃ীࢲ৮੹൤୭੸ചػ)PUTQPUࠁ׮חוܻ׮ (SBBM7.  0SBDMF t(SBBM7.#SBOE3FTPVSDFT uIUUQT XXXHSBBMWNPSHHSBBMWN - CSBOE - HVJEFMJOFT 
  3. fun main(args: Array<String>) { val objectMapper = jacksonObjectMapper() val friend

    = objectMapper.readValue<KakaoFriend>("{\"name\":\"choonsik\"}") } data class KakaoFriend(val name: String) 
 +BDLTPO3F fl FDUJPO Exception in thread "main" com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.kakao.Main$KakaoFriend`: 
 cannot deserialize from Object value (no delegate- or property-based Creator): this appears to be a native image, in which case you may need to configure reflection for the class that is to be deserialized +TPO 9.- :.-١੄૒۳ച৉૒۳ചܳҳࢿ೧઱ח+BDLTPO 
 +BDLTPO਷DMBTT੄೐۽ಌ౭ী੽Ӕೞӝਤ೧SF fl FDUJPOਸࢎਊೠ׮
  4.  ز੸੄ઓࢿٜਸ੹ࠗஹ౵ੌఋ੐ী੿੄ೡࣻ੓׮ݶ 
 ª੹ࠗ੿੸௏٘۽޷ܻٜ݅যࢲࠢৈ઱Ҋ ஹ౵ੌѾҗޛীನೣغب۾ъઁೠ׮ݶ  
 (SBBM7.ী೙ਃೠ3FBDIBCJMJUZ.FUBEBUBܳઁҕ೧઱ݶػ׮  (SBBM7.੉ઁҕೞח5SBDJOH"HFOU

    
 5SBDJOH"HFOUо੸ਊػ࢚క۽)PUTQPU+7.জਸप೯ೞݶজ੉ઙܐؼٸө૑ 
 ߊࢤೠݽٚ࠺ݺद੸੄ઓࢿਸ୶੸೧ࢲ 3FBDIBCJMJUZ.FUBEBUB۽ٜ݅যળ׮ ز੸੉঻؍۽૒ٜਸࢎ੹੿੄ػ۽૒ਵ۽߄Բӝ
  5. ↟ (SBBM7./BUJWF۽ஹ౵ੌоמ೧૓1VTI(BUFXBZܳ 
 )PUTQPU+7. (SBBM7./BUJWF۽ппप೯೮ਸٸ߮஖݃௼ܳ૓೯ ↟ ӝزदр "1*୊ܻ۝ "1*਽׹दр ߓನद$16૑಴߸ച١ਸஏ੿

    ↟ "1*৬োҙػ߮஖݃௼ٜ਷  
 1VTI(BUFXBZ੄"1*઺о੢࠼ߣೞѱࢎਊغחѐ"1*ܳ؀࢚ਵ۽૓೯ ߮஖݃௼ ࢎղ߮஖݃௼بҳ 
 झۨ٘ѐ۽ࣽରഐ୹ 1VTI(BUFXBZ ׮ܲࢲ࠺झ੄"1* ׮ܲࢲ࠺झ੄"1* ࣽରഐ୹
  6. জӝز૒റ਽׹दр ծਸࣻ۾જ਺ &OWJSPONFOU 
 
 /PEFTQFD 
 $16DPSFT +7.)FBQ(J# 


    
 )PUTQPU 
 &DMJQTF5FNVSJOĄ0QFO+%,+3& 
 
 (SBBM7. 
 0SBDMF(SBBM7.
  7. জӝز૒റ਽׹दр ծਸࣻ۾જ਺ &OWJSPONFOU 
 
 /PEFTQFD 
 $16DPSFT +7.)FBQ(J# 


    
 )PUTQPU 
 &DMJQTF5FNVSJOĄ0QFO+%,+3& 
 
 (SBBM7. 
 0SBDMF(SBBM7.
  8. 514࠺Ү &OWJSPONFOU 
 
 /PEFTQFD 
 $16DPSFT +7.)FBQ(J# 
 


    )PUTQPU 
 &DMJQTF5FNVSJOĄ0QFO+%,+3& 
 
 (SBBM7. 
 0SBDMF(SBBM7. 514 514 ର੉ ֫ਸࣻ۾જ਺
  9. 1SP fi MF - (VJEFE0QUJNJ[BUJPOT 1(0ஏ੿ਊਵ۽ஹ౵ੌ पઁ౟ې೗PSपઁীоө਍౟ې೗ ೐۽౵ੌ੉߮౟ؘ੉ఠ 
 QSP

    fi MFJQSPG (SBBM7.OBUJWF - JNBHF$PNQJMFS (SBBM7.OBUJWF - JNBHF$PNQJMFS 1(0੸ਊೞৈஹ౵ੌ ೐۽౵ੌ݂ҙ۲௏ٜ٘੉ٜযоࢲוܻҊޖѢ਑ ࡅܴ  0SBDMF t(SBBM7.$PNNVOJUZ.BTDPU uIUUQT XXXHSBBMWNPSHHSBBMWN - CSBOE - HVJEFMJOFTNBTDPU  - QHP - JOTUSVNFOU  - QHPQSP fi MFJQSPG  
  10. 514࠺Ү XJUI1(0 &OWJSPONFOU 
 
 /PEFTQFD 
 $16DPSFT +BWB)FBQ(J# 


    
 )PUTQPU 
 &DMJQTF5FNVSJOĄ0QFO+%,+3& 
 
 (SBBM7. 
 0SBDMF(SBBM7. 514 514 ର੉ ֫ਸࣻ۾જ਺
  11.  4IFOBOEPBI($ ;($޷૑ਗ 
 4FSJBM($ (($݅૑ਗೠ׮ 
  3FBDIBCJMJUZ.FUBEBUBҙܻࠗ׸ 


    పझ౟ӝ߈ਵ۽3FBDIBCJMJUZ.FUBEBUBܳ୶୹ೞҊ੓׮ݶ 
 పझ౟ܳੜޅҙܻ೮׮ח੉ਬ۽೐۽؋࣌੉ݎо૕ࣻ੓׮ ইए਍੼ ૓ੑ੢߷
  12.  וܽ࠽٘ 
 ࠽٘दр੉ߓоө੉ૐо 3FDIBCJMJUZ.FUBEBUB୶୹ ஹ౵ੌஹೊ౴ࠗೞ 
  ݽٚۄ੉࠳۞ܻоੜز੘ೞחѤইש 


    FH,PUMJO+7. (SBBM7./BUJWFઑ೤ীࢲز੘ೞחNPDLۄ੉࠳۞ܻоহ׮  
  1(0੸ਊ੉դ೧ೣ 
 1(0೐۽౵ੌ୶୹ਸਤ೧ࢲ؊וܽੋझఢझী पઁ౟ې೗पઁীоө਍౟ې೗ਸైੑ೧ঠೞחؘj 
 ߓನ਍৔࢚ীࢲࠗ׸ਵ۽੘ਊೠ׮ ইए਍੼ ૓ੑ੢߷
  13. 2"