Compartilhamento de tecnologia

Quanta memória um aplicativo iOS excede antes de receber um aviso de memória do sistema?

2024-07-08

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

Quanta memória um aplicativo iOS excede antes de receber um aviso de memória do sistema?

Em aplicativos iOS, o acionamento de avisos de memória do sistema é determinado dinamicamente pelo sistema operacional iOS e não é um limite fixo. O sistema determina se deve emitir um aviso de memória com base na memória disponível do dispositivo atual, nos requisitos de memória de outros aplicativos em execução e no uso de memória do aplicativo atual.

Gatilhos de aviso de memória

  1. Configuração de memória do dispositivo: Dispositivos diferentes têm quantidades diferentes de memória, por exemplo, dispositivos mais antigos podem ter apenas 1 GB de memória, enquanto dispositivos mais recentes podem ter 4 GB ou mais.
  2. Pressão de memória do sistema: se o seu sistema estiver sob alta pressão de memória, avisos de memória poderão ser emitidos com mais frequência.
  3. Uso de memória do aplicativo: se um aplicativo ocupar muita memória, é mais provável que o sistema emita um aviso de memória para que o aplicativo possa liberar memória desnecessária.

Nível de aviso de memória

iOS oferece três níveis de aviso de memória, os desenvolvedores podem UIApplicationDelegate realizado atravésapplicationDidReceiveMemoryWarning Método para lidar com avisos de memória.

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

Os controladores de visualização também podem ser substituídos por didReceiveMemoryWarning Método para lidar com avisos de memória.

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

Valor específico do gatilho de aviso de memória

Embora o iOS não divulgue o valor específico do gatilho do aviso de memória, ele pode ser estimado observando o uso de memória de diferentes dispositivos:

  • Dispositivos de baixo custo (como iPhone 6 e 6s): Normalmente, quando o uso de memória está próximo de 500 MB, um aviso de memória pode ser acionado.
  • Dispositivos de gama média (como iPhone 7 e 8): um aviso de memória pode ser acionado quando o uso de memória se aproxima de 1 GB.
  • Dispositivos de última geração (como iPhone X e mais recentes): um aviso de memória pode ser acionado quando o uso da memória exceder 1,5 GB.

Como lidar com avisos de memória

  1. Liberar recursos desnecessários: Ao receber um aviso de memória, libere memória que não é mais necessária, como imagens em cache, dados temporários, etc.
  2. Carregamento atrasado e carregamento lento: Atrase e carregue lentamente os recursos tanto quanto possível para reduzir o uso inicial da memória.
  3. Otimize estruturas de dados e algoritmos: Escolha estruturas de dados e algoritmos de otimização apropriados para reduzir o uso de memória.
  4. Usando a ferramenta Instrumentos: use regularmente a ferramenta Instrumentos para detectar e analisar o uso de memória para identificar e resolver vazamentos de memória e uso excessivo de memória.

Ao lidar adequadamente com avisos de memória e otimizar o uso da memória, o desempenho e a estabilidade do aplicativo podem ser significativamente melhorados, e travamentos e congelamentos causados ​​por memória insuficiente podem ser reduzidos.


Quanta memória é razoável para aplicativos iOS?

O uso razoável de memória de um aplicativo iOS depende de muitos fatores, incluindo a configuração de hardware do dispositivo, a complexidade funcional do aplicativo e o ambiente de execução.

1. Configuração de hardware do equipamento

  • dispositivos de baixo custo : dispositivos com menos memória (1 GB ou menos) são sensíveis ao uso de memória. Atenção especial precisa ser dada à otimização da memória.
  • dispositivo de médio alcance: Para dispositivos com memória média (2 GB a 3 GB), os aplicativos podem aumentar o uso de memória de forma adequada, mas ainda precisam ser controlados dentro de uma faixa razoável.
  • Equipamentos de última geração: para dispositivos com memória maior (4 GB e superior), os aplicativos podem usar mais memória, mas o uso excessivo de memória ainda pode afetar o desempenho do sistema.

2. Tipos e funções de aplicativos

  • Aplicação simples: Por exemplo, aplicativos de ferramentas, leitores de notícias, etc., geralmente tentam manter o uso de memória abaixo de 100 MB.
  • Aplicações de média complexidade: Como aplicativos de mídia social, jogos leves, etc., o uso de memória deve ser controlado entre 200 MB e 500 MB.
  • Aplicações complexas: como jogos de grande escala, aplicativos com uso intensivo de gráficos, etc., o uso de memória pode chegar a 500 MB ou mais, mas você deve tentar evitar exceder 1 GB.

3. Monitoramento de uso de memória

Use a ferramenta Instruments do Xcode para monitorar o uso de memória do seu aplicativo, incluindo modelos de alocações e vazamentos. Certifique-se de que o uso de memória do aplicativo seja estável sob uso normal e que não haja vazamentos de memória óbvios.

4. Use métricas de uso de memória apropriadas

4.1 Memória Residente

A memória residente é a memória física efetivamente ocupada pela aplicação, que pode ser monitorada através do template Alocações de Instrumentos.

4.2 Memória Virtual

A memória virtual é a memória total que um aplicativo pode acessar, incluindo a área de troca de memória. O uso da memória virtual normalmente é maior que a memória residente.

resumo

O consumo de memória apropriado depende do tipo específico de aplicativo, da complexidade funcional e do dispositivo de destino. De modo geral, você deve tentar manter o uso da memória dentro de uma faixa razoável e evitar exceder o limite de memória disponível do dispositivo. Por meio de práticas de otimização de memória, usando estruturas de dados apropriadas, otimizando o processamento de imagens e o desempenho do código, você pode reduzir efetivamente o uso de memória e melhorar o desempenho e a estabilidade do aplicativo. Use regularmente a ferramenta Instrumentos para monitorar e analisar o uso de memória para garantir que o uso de memória do aplicativo seja razoável em vários cenários.