Caton 최적화

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

세 번째 단계 : 오프라인 구축을위한 온라인 모니터링 및 탐지 도구

추천

출처www.cnblogs.com/chen-ying/p/12549718.html