본문 바로가기

엔지니어링(TA, AA, SA)/성능과 튜닝

(29)
[오픈소스] MyBatis 내장 cache에 대해서 MyBatis에는 2가지 내장 Cache가 존재합니다. local session cache, second level cache 두가지 입니다. local session cache는 임의로 켜거나 끌 수 없고, 무조건 활성화됩니다. 반면 second level cache는 mapper namespace 단위로 동작하여 개발자가 켜거나 끌 수 있습니다. Spring을 사용하지 않고 순수 MyBatis만을 사용해서 설명하겠습니다. second level cache 먼저 설명하기 쉬운 second level cache부터 설명하도록 하겠습니다. 앞에서 언급했듯이 이 Cache는 mapper namespace 단위로 동작합니다. 이 Cache를 켜기 위해서는 mapper.xml 파일 안에 를 입력하면 됩니다. M..
[오픈소스] 마이바티스 cache-ref, cache 엘리먼트 cache-ref와 cache 엘리먼트는 캐시를 설정하는 엘리먼트입니다. 캐시는 매핑 구문과 파라미터 따라 사용 여부를 결정합니다. 매핑 구문과 파라미터에 따라 결정되기 때문에 사용자가 작성하는 메소드 단위가 아니라 마이바티스에서 제공하는 SqlSession 객체의 API 호출 단위라는 점을 유념해야 합니다. 다음과 같이 캐시의 디폴트 설정 ( ) 을 사용한다면 설정은 간단합니다. 이 디폴트 설정은 다음과 같은 몇가지 규칙대로 작동하고, 이 규칙은 네임스페이스별로 처리합니다. - 매퍼 XML의 모든 select 구문의 결과를 캐시한다. - 매퍼 XML의 insert, update, delete는 모두 캐시를 지운다. - 가장 오랫동안 사용하지 않은 캐시를 지우는 알고리즘(LRU: Least Recentl..
[시스템성능] 크롬 개발자 도구 활용하기 타임라인 도구 사용법Chrome 개발자도구의 Timeline 패널을 사용하면 애플리케이션에서 작업이 실행될 때 모든 작업을 기록하고 분석할 수 있습니다. 이는 애플리케이션에서 인지된 성능 문제를 조사하는 데 가장 좋은 출발점입니다. - 타임라인 기록을 만들어 페이지 로드 또는 사용자 상호작용 후 발생한 모든 이벤트를 분석합니다. - Overview 창에서 FPS(Frame per Second), CPU 및 네트워크 요청을 볼 수 있습니다. - Flame Chart 내에서 이벤트를 클릭하면 그에 대한 세부정보를 볼 수 있습니다. - 기록의 한 부분을 확대하면 분석이 한결 쉬워집니다. Timeline 패널 개요 Timeline 패널은 네 개의 창으로 구성되어 있습니다. 1. Controls: 기록을 시작하고..
[시스템성능] 시스템 성능 최적화(1) - 성능이란? 성능 개선과 관련하여 데이터베이스 SQL 튜닝을 다룬 것은 보다 찾기 쉽습니다. 데이터베이스 최적화 전문가 시장도 상당히 큰 편입니다. 하지만 실제 업무 로직이 수행되는 애플리케이션 코드 측면에서 성능을 분석하고, 데이터베이스에 접근하는 자료는 거의 없을 뿐 아니라 시장에서 애플리케이션 최적화 인력은 상대적으로 희소합니다. 애플리케이션 최적화 전문가는 서버와 데이터베이스로부터 업무 로직까지 복합적인 지식이 필요하기 때문에 진정한 시스템 최적화 전문가라고 할 수 있습니다. 시스템 성능은 서버, 애플리케이션, 데이터베이스, 네트워크에 관한 개별 지식만으로는 분석하는데 한계가 있습니다. 성능 개선을 위해서는 각 기술 요소의 특성과 동작 방식을 전체 시스템 관점에서 이해하고 분석할 수 있는 능력이 필요하므로 새..
[성능튜닝] 컴퓨터 처리속도 단위 * 컴퓨터 처리속도 초(cs): 1/100초 밀리초(ms): 1/1,000초 마이크로초(㎲): 1/1,000,000초 나노초(ns): 1/1,000,000,000초 피코초(ps): 1/1,000,000,000,000초 펨토초(fs): 1/1,000,000,000,000,000초 아토초(as): 1/1,000,000,000,000,000,000초 cs: 0.01 = 10^(-2)초 ms: 밀리초 0.001 = 10^(-3)초 ㎲: 마이크로초 0.000001 = 10^(-6)초 ns: 나노초 0.000000001 = 10^(-9)초 ps: 피코초 0.000000000001 = 10^(-12)초 fs: 펨토초 0.000000000000001 = 10^(-15)초 as: 아토초 0.0000000000000000..