기술나눔

시스템 메모리 경고를 받기 전에 iOS 앱은 얼마나 많은 메모리를 초과합니까?

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

시스템 메모리 경고를 받기 전에 iOS 앱은 얼마나 많은 메모리를 초과합니까?

iOS 애플리케이션에서 시스템 메모리 경고의 트리거는 iOS 운영 체제에 의해 동적으로 결정되며 고정된 임계값이 아닙니다. 시스템은 현재 장치의 사용 가능한 메모리, 실행 중인 다른 애플리케이션의 메모리 요구 사항 및 현재 애플리케이션의 메모리 사용량을 기반으로 메모리 경고를 발행할지 여부를 결정합니다.

메모리 경고 트리거

  1. 장치 메모리 구성: 장치마다 메모리 용량이 다릅니다. 예를 들어 구형 장치에는 메모리가 1GB만 있을 수 있지만 최신 장치에는 4GB 이상이 있을 수 있습니다.
  2. 시스템 메모리 부족: 시스템의 메모리 사용량이 높을 경우 메모리 경고가 더 자주 나타날 수 있습니다.
  3. 애플리케이션 메모리 사용량: 앱이 많은 메모리를 차지하면 앱이 불필요한 메모리를 확보할 수 있도록 시스템에서 메모리 경고를 발행할 가능성이 높아집니다.

메모리 경고 수준

iOS는 세 가지 메모리 경고 수준을 제공하므로 개발자는 다음을 수행할 수 있습니다. UIApplicationDelegate 통해 실현applicationDidReceiveMemoryWarning 메모리 경고를 처리하는 방법입니다.

func applicationDidReceiveMemoryWarning(_ application: UIApplication) {
    // 释放不必要的资源
}

뷰 컨트롤러는 다음으로 재정의될 수도 있습니다. didReceiveMemoryWarning 메모리 경고를 처리하는 방법입니다.

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // 释放不必要的资源
    imageCache.removeAllObjects()
}

특정 메모리 경고 트리거 값

iOS는 특정 메모리 경고 트리거 값을 공개하지 않지만 다양한 장치의 메모리 사용량을 관찰하여 추정할 수 있습니다.

  • 저가형 기기(예: iPhone 6 및 6s): 일반적으로 메모리 사용량이 500MB에 가까울 때 메모리 경고가 발생할 수 있습니다.
  • 중급 기기(예: iPhone 7 및 8): 메모리 사용량이 1GB에 가까워지면 메모리 경고가 발생할 수 있습니다.
  • 고급형 기기(예: iPhone X 이상): 메모리 사용량이 1.5GB를 초과하면 메모리 경고가 발생할 수 있습니다.

메모리 경고를 처리하는 방법

  1. 불필요한 리소스를 해제하세요: 메모리 경고를 받으면 캐시된 이미지, 임시 데이터 등 더 이상 필요하지 않은 메모리를 해제합니다.
  2. 지연 로딩 및 지연 로딩: 초기 메모리 사용량을 줄이기 위해 리소스를 최대한 지연시키고 지연 로드합니다.
  3. 데이터 구조 및 알고리즘 최적화: 적절한 데이터 구조와 최적화 알고리즘을 선택하여 메모리 사용량을 줄입니다.
  4. 악기 도구 사용: 정기적으로 Instruments 도구를 사용하여 메모리 사용량을 감지하고 분석하여 메모리 누수 및 과도한 메모리 사용량을 식별하고 해결합니다.

메모리 경고를 적절하게 처리하고 메모리 사용을 최적화하면 애플리케이션 성능과 안정성이 크게 향상될 수 있으며, 메모리 부족으로 인한 충돌 및 정지 현상이 줄어들 수 있습니다.


iOS 앱에는 어느 정도의 메모리가 적당합니까?

iOS 애플리케이션의 합리적인 메모리 사용량은 기기의 하드웨어 구성, 애플리케이션의 기능적 복잡성, 실행 환경을 비롯한 여러 요인에 따라 달라집니다.

1. 장비 하드웨어 구성

  • 저가형 장치 : 메모리가 적은 장치(1GB 이하)는 메모리 사용량에 민감합니다. 메모리 최적화에 특별한 주의를 기울여야 합니다.
  • 중급 장치: 중간 메모리(2GB~3GB)를 탑재한 기기의 경우 애플리케이션에서 메모리 사용량을 적절하게 늘릴 수 있지만 여전히 합리적인 범위 내에서 제어해야 합니다.
  • 고급 장비: 메모리가 더 큰 장치(4GB 이상)의 경우 애플리케이션은 더 많은 메모리를 사용할 수 있지만 과도한 메모리 사용량은 여전히 ​​시스템 성능에 영향을 미칠 수 있습니다.

2. 애플리케이션 종류 및 기능

  • 간단한 신청: 예를 들어 도구 애플리케이션, 뉴스 리더 등은 일반적으로 메모리 사용량을 100MB 미만으로 유지하려고 합니다.
  • 중간 정도의 복잡성 애플리케이션: 소셜 미디어 애플리케이션, 경량 게임 등 메모리 사용량은 200MB에서 500MB 사이로 조절되어야 합니다.
  • 복잡한 애플리케이션: 대규모 게임, 그래픽 집약적인 애플리케이션 등 메모리 사용량이 500MB 이상에 달할 수도 있지만, 1GB를 초과하지 않도록 노력해야 합니다.

3. 메모리 사용량 모니터링

Xcode의 Instruments 도구를 사용하여 할당 및 누출 템플릿을 포함한 앱의 메모리 사용량을 모니터링하세요. 일반적인 사용 시 애플리케이션의 메모리 사용량이 안정적인지, 명백한 메모리 누수가 없는지 확인하세요.

4. 적절한 메모리 사용량 지표를 사용하세요

4.1 상주 메모리

상주 메모리는 애플리케이션이 실제로 차지하는 물리적 메모리로, 계측기의 할당 템플릿을 통해 모니터링할 수 있습니다.

4.2 가상 메모리

가상 메모리는 메모리 스왑 영역을 포함하여 애플리케이션이 액세스할 수 있는 총 메모리입니다. 가상 메모리 사용량은 일반적으로 상주 메모리보다 높습니다.

요약

적절한 메모리 공간은 특정 애플리케이션 유형, 기능 복잡성 및 대상 장치에 따라 다릅니다. 일반적으로 메모리 사용량을 합리적인 범위 내로 유지하고 장치의 사용 가능한 메모리 한도를 초과하지 않도록 해야 합니다. 적절한 데이터 구조를 사용하고 이미지 처리 및 코드 성능을 최적화하는 메모리 최적화 방법을 통해 효과적으로 메모리 사용량을 줄이고 애플리케이션 성능과 안정성을 향상시킬 수 있습니다. 정기적으로 계측 도구를 사용하여 메모리 사용량을 모니터링하고 분석하여 다양한 시나리오에서 애플리케이션의 메모리 사용량이 합리적인지 확인하세요.