Ch27) 프로파일링으로 성능 개선 하기
·
dev./golang
프로파일링이란? 프로그램의 성능 지표를 프로그램이 실행 중에 실시간으로 측정하고 기록하는 것을 말한다. 측정하는 성능 지표는 실행 시간, 메모리 사용량, 함수 호출 시간과 빈도등이 있다. 프로그램 성능이 저하되는 곳을 찾고 원인을 분석하는 데 주목적이 있다.27.1 특정 구간 프로파일링Go 언어에서 프로파일링 데이터를 수집하는 방법이 몇 가지 있는데, 그중에서 특정 구간을 프로파일링 하는 방법을 살펴보자. 이 방법은 성능 개선이 필요한 특정 함수나 구간을 조사할 때 좋은 방법이다.성능 측정을 시작하는 곳에 pprof.StartCPUProfile() 함수를 호출성능 측정을 끝내는 곳에 pprof.StopCPUProfile() 함수를 호출결과 저장package mainimport ( "fmt" "log..
(아이템 5) 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라
·
dev./Effective-Java
Effective Java 3판 아이템5 의존 객체 주입에 관한 내용이다. 책에서 소개한 SpellChecker 라는 클래스를 사용한다. | 하나의 클래스가 하나 이상의 자원에 의존하는 경우 [ 정적 유틸리티 클래스 구현 (아이템4) ] 맞춤법 검사기 (SpellChecker)는 사전(Dictionary)에 의존하고 있는 객체의 관계를 아래 예제와 같이 정적 유틸리티 클래스로 구현할 수 있다.public class SpellChecker { // dictionary 객체가 고정됨 -> 변경이 어렵다. private static final Lexicon dictionary = new KoreanDictionary(); private SpellChecker() { // 객체 생성..
(아이템 4) 인스턴스화를 막으려거든 private 생성자를 사용하라
·
dev./Effective-Java
이번 포스팅은 Effective-java 3판 아이템 4에 관한 내용이며, Private 생성자에 대한 내용입니다. 책의 내용을 기반으로 작성되었지만 잘못된 부분이 있다면 댓글로 부탁드립니다.1. 인스턴스화를 막는 방법final 클래스final 클래스는 인스턴스화가 되지 않을 뿐 아니라 상속도 지원하지 않는다. 따라서 final 클래스로 만들어진 클래스는 인스턴스화를 할 수 없게 된다. public final class UtilityFinalClass { public static void print() { System.out.println("final class print()"); } /* 불가능 static class AnotherClass extends Utilit..
자바 타입 캐스팅
·
dev./Java
이번 포스팅은 [Baeldung] 사이트에서 자바 타입 캐스팅에 관한 글을 번역한 내용입니다. 오역과 의역이 있으니 읽으실 때 참고 부탁드립니다. (https://www.baeldung.com/java-type-casting)1. Overview자바의 타입은 원시형(Primitives)과 참조형(References) 이렇게 2가지 종류로 구성되어 있다. 우리는 원시형 타입에 대해서는 다른 글에서 다루었고, 이번 글에서는 참조형 캐스팅을 다룰 예정이다.2. 원시형(Primitives) vs 참조형(References)[원시 타입 변환(Primitive conversions]과 [참조형 변수 캐스팅(Reference variable casting]은 어떻게 보면 비슷할지 모르겠지만, 두 개의 개념은 다르다...
자바 맵을 사용할 때 자주하는 9가지 질문
·
dev./Java
"Top 9 questions about Java Maps"라는 글을 번역한 내용이다.(https://www.programcreek.com/2013/09/top-9-questions-for-java-map/) 이 포스팅은 자바 클래스 내부에서 맵을 사용할 때 질문했던 질문들 중에서 대표적인 질문 9개를 요약한 내용입니다. 의역과 오역이 많으니 참고해 주세요. 일반적으로 맵은 [Key-Value] 쌍으로 이루어져 있고, Key는 해당 맵 내부에서 유일한 식별 값이다. 참고로 아래에 예제들은 편의를 위해 특별한 타입을 정의하지 않고 "K" 혹은 "V"로 표기하였다.0. 맵을 리스트로 변경하기 (Convert a Map to a List)자바에서 맵 인터페이스는 [Key], [Value], [Key-Value..