Caton 최적화
최적화 및 최적화 도구 Caton
-
Caton
쉽게 직관적 인 감정, 어려운 찾습니다 Caton
복잡한 이유 Caton 생산 : 코드, 메모리, 그리기, IO는 재현하기 어렵다
-
수단
-
CPU 프로파일 러
그래픽 실행 시간, 호출 스택 등을 표시, 정보, 모든 스레드를 함유 Debug.startMethodTracing (); 전체가 Debug.startMethodTracing ( "파일 이름")을 늦출 그러나 런타임 오버 헤드가 심각하다;
-
은 Systrace
-
StrictMode
검출기구 가혹한 작동 모드, 안드로이드 데 도움이 개발자에게 제공 할 때 자동 코드 위반 검출 하는 경우, 반응을하고 구성에 따라 응답을 제공한다. 강력한 쉬운, 쉽게 두 가지 주요 문제가 감지, 간과 스레드 정책 및 VM 전략 감지.
스레드 전략 (1) 시간이 많이 소요되는 사용자 정의 전화, detectCustomSlowCalls ()는 (2) 디스크, detectDiskReads, detectDiskWrites ()을 읽고 (3) 네트워크 운영, detectNetwork ().
VM 전략은 : (2)에서 온 닫기 가능한 자기 공개 사용 detectLeakedClosableObjects ()를 폐쇄되지 않고, (1) 활동 개시를 사용 detectActivityLeaks ()는 온 (3) SQLite는)를 사용 detectLeakedSqlLiteObjects을 (유출 개체 온 (4) 검출 예 사용 setClassInstanceLimit의 수는 ()을 엽니 다.
개발 환경 모드를 요구 시작, 게시 된 응용 프로그램을 비활성화해야합니다.
-
Caton 자동화 및 최적화 테스트 프로그램
-
자동 감지 방식 Caton 원리
이 Caton의 녹화 장면이 발생하면서 온라인 및 자동화 된이 프로그램을 테스트 테스트 측면에 필요하므로, 실제 장면과 매우 밀접하고 Caton 현상, 시스템 도구는 문제의 오프라인 분석을 목표로하지만, 라인을 사용할 수 없습니다.
원리 : 메시지 처리 메커니즘. 스레드 아무리 많은 처리기, 루퍼 루프 방법 루퍼에 의해 수행 될 임의의 방법을 수행하는 하나의 메인 스레드가 상기 메인 쓰레드 경우 발생하는 상기 루프 방법은 mLogging 개체 전에 각 메시지 처리 후의라고 갖는다 시간이 많이 걸리는 작업을 수행하는 것입니다 Caton는, 당신은 dispatchMessage에 mLogging에 사용이 작동 방법의 실행 시간을 모니터링 할 수 있습니다.
구체적인 실현 :; 스택 정보를 획득 한 후, >>>>> 파견에 일치하고 작업을 수행 Looper.getMainLooper () setMessageLogging ()는 각각의 마사지는 통화 로그 후 처리하고 자신을 설정할 수 있도록하기 전에, 자신의 로깅을 설정합니다 유사한 <<<<< 마무리 실행의 임계 값 내에 설명 된 메시지가 처리된다 Caton가 발생하지 않으며,이 작업을 취소 할 것이다 메모리 크기, 소비 전력, 네트워크 상태 등과 같은 일부 현재 시나리오 정보 .
-
AndroidPerformanceMonitor 연습
AndroidPerformanceMonitor A는 비 침입 감시 성능 열기 어셈블리, 팝업 통지 정보가 Caton 정확도 위치하는 라인에 해당 될 수있다. 그러나 거기에 몇 가지 문제가, 참으로 Caton하지만 Caton 스택은 정확하지 않을 수 있으며, OOM, 최종 스택은 외관 만이 아닌 진짜 문제입니다. 그래서, 당신은 모니터링 기간 내에 여러 스택, 단지 마지막 하나를 얻을 수 있습니다.
startMonitor -> 고주파 취득 스택 -> endMonitor
기록 다중 스택 ->보고 서버
Caton 그 방법의 구현에 그 방법 중에 알 수있다하는 것은 시간이 많이 소요됩니다.
-
문제 및 최적화
대규모 스택 프로세싱과 관련된 Caton 고주파 Caton, 서버 압력 것이다 양이 너무 많으면보고.
ANR 분석 및 실습
-
ANR
ANR 실행 흐름은 : ANR이 발생, 비정상 종료 프로세스는 프로세스 ANR 정보를 쓰기 시작하는 신호를 수신 ANR 메시지 팝업 상자.
ANR 솔루션 :
(오프라인) ADB 풀 데이터 / ANR / traces.txt 스토리지 경로 (수출)의 상세한 분석 인해 잠금 ANR CPU, IO, 등이다.
(온라인) FileObserver 모니터 파일 변경에 의해, 높은 버전 권한 문제가있을 것입니다.
-
ANR - 워치 독 원리 및 실습
ANR - 워치 독 파일 traces.txt 문제를 읽을 수있는 권한이 없습니다 더 높은 버전을 만회 할 수있는 비 침습적 모니터링 구성 요소 ANR (오픈 소스)입니다.
원리 : 시작 -> 포스트 메시지 값 변경 -> SLEEP은 -> 수정 여부의 감지 -> ANR은 분석을 발생
Caton 단일 포인트 문제 감지
-
Caton 단일 포인트 문제에 대한
Caton 자동 감지 방식은 모든 장면의 요구 사항을 충족하지 않으며, 시스템 솔루션이 반드시 가능한 한 빨리 문제를 노출, 필요 관심이 있음을 단일 포인트 문제의 번호 : 등등 메인 스레드 IPC, DB합니다.
-
IPC 모니터링
-
감지 표시 : IPC 호출 유형은 각각 시간과 시간이 소요되는, 호출 스택의 수와 스레드의 발생을했다.
-
일반 프로그램 : IPC는 점을 주변에 묻었다. 그냥 충분히 우아함, 많은 유지 보수 비용.
-
탐지 기술 :; "ADB 쉘 오전 추적-IPC 정지"검지 끝을, 및 데이터 / 로컬 / tmp를 / IPC-trace.txt에 파일을 내보내 ADB 명령 "ADB 쉘 오전 추적-IPC 시작은"모니터링 할 수 있습니다.
-
우아한 솔루션 :
ARTHook : 후크 시스템은 캔에 접근
AspectJ의 : 비 시스템 접근
-
IPC, IO, DB,보기 그리기 : 위도 모니터링
-
-
단일 지점에서 감지 방식의
인터페이스의 실현 초
-
실현에 인터페이스 초
인터페이스에 초는 시작 최적화 및 레이아웃 최적화에 관한 작은 시작 최적화입니다.
은 Systrace, 우아한 비동기 우아한 게으른 초기화 +
비동기 팽창, X2C, 렌더링 최적화
페이지 데이터는 사전에 인수했다.
-
인터페이스 속도 통계에 초
에서 onCreate 到 onWindowFocusChanged
특정 인터페이스
-
랜싯
경량 안드로이드 AOP 프레임 워크 (오픈 소스). 어떤 추가 코드없이 컴파일 속도 증분 컴파일, 간단한 API에 대한 지원이 삽입됩니다.
사각 지대 모니터링 시간이 많이 소요
Caton 최적화 팁
- 소비 작업 : 비동기 지연
- 레이아웃 최적화 : 비동기 팽창, X2C 해결 다시 그리기
- 메모리 : 감소 메모리 풋 프린트, 시간 GC를 감소
시스템 도구 :은 Systrace, TraceView
자동화 된 모니터링 및 최적화 : AndroidPerformanceMonitor, ANR - 워치 독. 취득 주파수, 높은 스택 찾기 중복.
; 블라인드 스팟 Gradle을 컴파일 교체를 모니터링 단일 포인트 문제 AOP, 후크 : 모니터링 도구 Caton
Caton 모니터링 지표 : Caton 속도, ANR 속도, 개방 속도 두 번째 인터페이스, 상호 작용 시간, 문 사이클 시간보고 환경, 현장 정보를 제공합니다.
최적화 관련 문제 Caton
Caton 최적화 위상 변화 :
첫 번째 단계 : 공구 포지셔닝 시스템 해결
두 번째 단계 : 자동화 및 최적화 솔루션 Caton
세 번째 단계 : 오프라인 구축을위한 온라인 모니터링 및 탐지 도구