우리가 개발하는 WAS는 여러 개의 스레드가 동작하도록 되어 있다. 그래서 synchronized를 자주 사용한다. 하지만 synchonized를 쓴다고 무조건 안정적인 것은 아니며, 성능에 영향을 미치는 부분도 있다. 자바에서 스레드는 어떻게 사용하나? 프로세스와 스레드 클래스를 하나 수행시키거나 WAS를 기동 하면 서버에 자바 프로세스가 하나 생성된다. 하나가 생성되는지 여러 개가 생성되는지는 윈도우, 리눅스, 유닉스의 프로세스를 조회해 보면 확인 가능하다. 하나의 프로세스에는 여러 개의 스레드가 생성된다. 단일 스레드가 생성되어 종료될 수도 있고, 여러 개의 스레드가 생성되어 수행될 수도 있다. 그러므로 프로세스와 스레드의 관계는 1:N 관계라고 보면 된다. 스레드는 다른 말로 Light Weigh..
자바 프로그래밍에서 성능을 향상하는 방법은 여러 가지가 있다. 그중에서 한 가지는 static을 사용하는 것이다. 하지만 잘 모르고 statis을 사용하다가는 시스템이 더 느려지거나, 오류를 내뿜는 시스템이 될 수도 있다. static의 특징 자바에서 static으로 지정했다면, 해당 메서드나 변수는 정적이다. public class VariableTypes { int instance Variable; static int classVariable; public void method(int parameter) { int localVariable; } } 여기서 static으로 선언한 classVariable은 클래스 변수라고 한다. 왜냐하면 그 변수는 '객체의 변수'가 되는 것이 아니라 '클래스의 변수'가..
어떤 프로그래밍을 하든 반복 구분 사용은 기본 중의 기본이다. 이 반복 구문도 잘만 사용하면 성능 향상을 가져올 수 있다. 반복 구문에서의 속도는? 자바에서 사용하는 반복 구문은 세 가지이다. for do-while while 일반적으로 for문을 많이 사용한다. while문은 잘못하면 무한 루프에 빠질 수 있으므로 되도록이면 for문을 사용하기를 권장한다. JDK 5.0 이전에는 for 구문을 다음과 같이 사용하였다. 여기서 list는 값이 들어있는 ArrayList이다. for(int loop=0; loop
Map 클래스 중 무엇이 가장 빠를까? Map 관련 클래스들의 성능을 비교해 보기 위해 아래와 같이 JMH 테스트 코드를 만들었다. 데이터를 담을 때 얼마나 시간 차이가 발생하는지 확인해 보자. @State(Scope.Thread) @BenchmarkMode({Mode.AverageTime}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public class MapGet { int LOOP_COUNT = 1000; Map hashMap; Map hashTable; Map treeMap; Map linkedHashMap; int[] keys; @Setup(Level.Trial) public void setUp() { if (keys == null || keys.length != ..
List 클래스 중 무엇이 가장 빠를까? List 관련 클래스들의 성능을 비교해 보기 위해 아래와 같이 JMH 테스트 코드를 만들었다. 데이터를 담을 때 얼마나 시간 차이가 발생하는지 확인해 보자. @State(Scope.Thread) @BenchmarkMode({Mode.AverageTime}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public class ListAdd { int LOOP_COUNT = 1000; List arrayList; List vector; List linkedList; @Benchmark public void addArrayList() { arrayList = new ArrayList(); for (int loop = 0; loop < LOOP_..
- spring
- effective java
- 자바스크립트
- 성능분석
- 개발환경
- React
- javascript
- Maven
- 오라클 내장 함수
- 리액트
- Linux 명령어
- Collection
- 제주도 여행
- sort algorithm
- Tomcat
- 리눅스 명령어
- 제주도 3박4일 일정
- Eclipse
- Java
- 리액트 16
- 프로그래머
- 자바
- 이직
- 오라클
- 프로그래머스
- 회고
- 정렬 알고리즘
- 경력관리
- SQL
- 소프트웨어공학
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |