Computer Science/Java
-
[Java] GC 종류별 메모리 상황에 따른 테스트Computer Science/Java 2024. 2. 8. 17:40
특정 job 에 대해서 메모리를 설정해야하는데 이때 한번 GC를 종류별로 돌려보며 테스트를 해보았습니다. 다만 해당 job이 매우 짧게 끝나기도 하고 메모리를 적게 사용하며 CPU 사용율 등을 자세하게 확인하지 않았기에 가볍게 봐주시면 감사하겠습니다. 테스트 환경은 Java17에 OpenJDK 이며 모니터링으로는 VisualVM + VisualGC 와 jstat을 사용하였습니다. 비교한 GC는 SerialGC, ParallelGC, G1GC, ZGC로 Java17에서 지원하는 GC들 입니다. ShenandoahGC는 테스트하지 않았습니다. 목차 15MB [-Xms15m -Xmx15m] 50MB [-Xms50m -Xmx50m] 100MB [-Xms100m -Xmx100m] 결론 15MB [ -Xms15m ..
-
[Java] 버전별 GC 목록 ( OpenJDK )Computer Science/Java 2024. 2. 7. 17:55
GC 확인 방법 Java8의 GC Java11의 GC Java17의 GC Java21의 GC GC 확인 방법 현재 Default 로 적용된 GC를 확인하는 방법은 크게 2가지로 다음과 같습니다. 1. 적용중인 Flag를 확인하는 방법 java -XX:+PrintCommandLineFlags -version 해당 명령어로 현재 적용중인 Flag들과 버전을 같이 확인 할 수 있습니다. 위와 같이 결과가 나오는데 Java8의 경우 ParallelGC를 사용하는 것으로 확인됩니다. 2. 전체 Flag를 확인하는 방법 java -XX:+PrintFlagsFinal -version 해당 명령어로 사용 가능한 Flag들과 현재 그 값들을 확인할 수 있습니다. grep 명령어와 함께 사용하여 GC 목록들만 뽑아서 확인..
-
[JAVA] JVM 동작 방식Computer Science/Java 2024. 2. 6. 20:52
JVM이란 Class Loader Execution Engine Runtime Data Areas JVM이란 JVM은 Java Virtual Machine의 약자로 자바 바이트코드를 실행하는 가상 머신입니다. 자바는 Compile시 자바 Source Code가 바이트코드 ( .class 파일 ) 로 변환되며 이 바이트코드가 JVM에서 실행되는 구조입니다. JVM ( Java Virtual Machine )의 동작 구조를 간단히 설명하면 다음과 같습니다. Class Loader는 실행할 프로그램의 Class를 Runtime Data Areas에 Load 합니다. Load 된 Class는 Execution Engine 에 의해 실행됩니다. Class Loader Class Loader의 동작 방식을 자세히 ..
-
Mac 터미널 java version 임시 변경Computer Science/Java 2022. 11. 10. 00:43
java -version으로 현재 version을 확인해보면 17이다. java -version openjdk version "17.0.3" 2022-04-19 LTS OpenJDK Runtime Environment Corretto-17.0.3.6.1 (build 17.0.3+6-LTS) OpenJDK 64-Bit Server VM Corretto-17.0.3.6.1 (build 17.0.3+6-LTS, mixed mode, sharing) 변경을 하기전 /usr/libexec/java_home -V 명령어로 우선 내가 가지고 있는 jdk 목록을 확인해보자. /usr/libexec/java_home -V Matching Java Virtual Machines (2): 17.0.3 (x86_64) "Am..
-
SOLIDComputer Science/Java 2022. 10. 5. 18:02
본 내용은 김영한님의 스프링 핵심원리 강의를 보고 작성하였습니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com SRP - 단일 책임 원칙 - 한 클래스는 하나의 책임만 가져야한다. - 책임이라는 것이 모호한데 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 ..
-
open-jdk-17 설치.Computer Science/Java 2022. 7. 27. 01:22
wget 이 설치가 안되어 있다면. sudo yum -y install wget curl jdk 다운 wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz 압축 풀기 tar xvf openjdk-17.0.2_linux-x64_bin.tar.gz 파일 위치 변경 sudo mv jdk-17.0.2/ /opt/jdk-17/ 환경변수 설정 vim ~/.bashrc export JAVA_HOME=/opt/jdk-17 export PATH=$PATH:$JAVA_HOME/bin 적용 source ~/.bashrc 상세내용 https://techview..
-
Jsoup 사용 법.Computer Science/Java 2022. 7. 17. 18:11
implementation 'org.jsoup:jsoup:1.14.3' 우선 jsoup을 implement해주어야한다. Document document = null; try { document = Jsoup.connect(fandom_url).get(); } catch (IOException e) { log.info("connection fail"); return false; } Document에 우선 url로 connetion을 하여 가져온다. 그런뒤 Element단위로 가져올 수 있는데, class명이 test인 항목을 가져오는 방법 Elements items = doc.select(".test"); id명이 test인 항목을 가져오는 방법 Elements items = doc.select("#tes..