IO에서 발생하는 시간은 CPU의 대기시간에 속하기 때문에 성능에 가장 큰 영향을 끼친다. IO를 효율적으로 사용하기 위해서는 1. 버퍼를 잘 사용하자BufferedReader 등 버퍼를 사용하는 클래스들도 있다.잘 보고 사용하자 2. 요청이 발생할 때마다 파일을 읽어선 안됀다.모든 요청이 올 때마다 파일을 읽도록 한다면 엄청난 IO가 발생할 것이고 이는 성능의 저하를 야기한다.또한 병목현상이 발생할 확률도 높다.보통 DB의 쿼리나 여러 설정들을 파일에 저장하고 사용하는 경우가 많은데이 경우 이 파일들을 미리 읽어놓고 사용하는 것이 좋으며, 수정될 때마다 어플리케이션을 재시작하는 것이 번거롭다면, 별도의 스레드를 생성하여 5~10분 주기로 수정여부를 확인해주는 것도 좋다. 예를 들어보자면 mybatis ..
Switch-Case 문 Switch-Case문은 작은 숫자부터 큰 숫자 순서대로 비교하는 것이 제일 빠르다. 조건문 조건문자체는 속도에 미치는 영향이 미미하다. 가독성에 더 신경쓰자. do-while문 public void test(List list){ int i=0; do{ if(list.get(i) == 10) break; }while(true); } 만약 list의 0번째가 10이라면 정상적인 동작을 하겠지만, 아닐 경우 무한루프를 돌며 CPU의 코어 한개를 잡아먹으므로 프로그램을 재시작해야할 수 있다. 조심하자 List를 대상으로 반복 for(int i=0; i
SetSet의 종류에는 HashSet, LinkedHashSet, TreeSet이 있다. Set은 보통 여러 데이터를 넣어두고 해당 데이터가 존재하는지 확인할 때 사용한다.속도는 HashSet이나 LinkedHashSet이 빠르고, TreeSet은 나머지에 비해 현저히 느리다. 그렇다면 왜 TreeSet을 사용할까?TreeSet은 데이터를 저장하는 동시에 정렬한다.그렇기 때문에 데이터를 순서에 따라 탐색하는 작업이 필요할 때에는 TreeSet을 사용하는 것이좋다. 하지만 그럴 필요가 없을 때에는 속도가 빠른 HashSet이나 LinkedHashSet을 사용한다. List 자료형 / 속도순위 삽입 추출 첫번째 값 삭제 마지막 값 삭제 ArrayList 1위 1위 1위 1위 LinkedList 3위 3위 2..
JMH : http://openjdk.java.net/projects/code-tools/jmh/Caliper : http://code.google.com/p/caliper/ 와 JUnit 테스트코드 실행용 라이브러리도 있다. JUnitPerf : http://www.clarkware.com/software/JUnitPerf.htmlJUnitBench : http://code.google.com/p/junitbench/ContiPerf : http://databene.org/contiperf.html
- Total
- Today
- Yesterday
- 성능
- 자바 성능
- 프로세서
- 컴퓨터 시간
- Jackson
- 퍼포먼스
- opensource
- 날짜
- 클로저
- 자바
- json
- 자료구조
- Java8
- react
- RAMDA
- 코어
- 메모리
- 리액트
- rambda
- 시간
- Docker
- Swift 2.0
- Java
- Stream
- 성능개선
- javascript
- 알람
- Clojure
- gitlab
- 람다
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |