当前位置:网站首页>L'application de flutter Cross - Platform Framework est décrite dans le combat réel. Les étudiants du collège portent des vêtements en or fourmi à trois côtés

L'application de flutter Cross - Platform Framework est décrite dans le combat réel. Les étudiants du collège portent des vêtements en or fourmi à trois côtés

2021-09-15 05:26:07 Mb612e2b11c3210

Texte

1.Dans le cache de niveau 3 de l'image,L'image est chargée en mémoire,Si la mémoire explose,Que se passe - t - il??Qu'est - ce qu'on fait??

Voir la réponse:
Tout d'abord, nous devons comprendre comment le cache de niveau 3 de l'image est
Une histoire de combatFlutterApplication du cadre multiplateforme,Les étudiants de l'Université portent trois vêtements en or fourmi_Android
Si vous ne récupérez pas assez de mémoire.Recycler les objets de référence souples lorsqu'il n'y a pas assez de mémoire

2.Si une feuille est chargée en mémoire500X500DepngImages HD.Ça devrait être la quantité de mémoire utilisée?

Voir la réponse:

  • Sans tenir compte du rapport d'écran:Mémoire occupée=500 * 500 * 4 = 1000000B ≈ 0.95MB
  • Si vous considérez le rapport d'écran:Mémoire occupée= Largeur des pixels x (inTargetDensity / inDensity) x Pixels de hauteur x (inTargetDensity / inDensity)x Taille en octets de mémoire d'un pixel
  • inDensityReprésentant l'image cibledpi(Dans quel dossier de ressources),inTargetDensityReprésente l'écran de destinationdpi
    Une histoire de combatFlutterApplication du cadre multiplateforme,Les étudiants de l'Université portent trois vêtements en or fourmi_Développement mobile_02

3.WebViewOptimisation des performances ?

Voir la réponse:
Lors du chargement d'une page web,native、Réseau、Traitement de fond、CPUTous y participeront.,Chacun a le travail et les dépendances nécessaires;Ce n'est qu'en les faisant travailler en parallèle les uns avec les autres au lieu de se bloquer les uns les autres que les pages Web peuvent être chargées plus rapidement:

  • WebViewInitialisation lente,Les données peuvent être demandées en même temps que l'initialisation,Gardez l'arrière - plan et le réseau inactifs.
  • Fréquent JS Localisation et chargement différé,Parcourir le noyau avec un tiers
  • Traitement lent de l'arrière - plan,On peut diviser le serveurtrunkProduits,Les ressources statiques du réseau sont chargées à l'avant en même temps que le calcul de l'arrière - plan.
  • Exécution lente du script,Laissez le script s'exécuter à la fin,Résolution de page non bloquée.
  • En même temps,Précharge raisonnable、Le pré - cache réduit le goulot d'étranglement de la vitesse de chargement.
  • WebViewInitialisation lente,Initialiser un à tout momentWebViewÀ utiliser
  • DNSEt les liens sont lents,Trouver des moyens de réutiliser les noms de domaine et les liens utilisés par les clients.
    Une histoire de combatFlutterApplication du cadre multiplateforme,Les étudiants de l'Université portent trois vêtements en or fourmi_Programmeur_03

4.BitmapComment traiter les grandes images,Comme un30MGrande image de,Comment prévenirOOM?

Voir la réponse:ÉviterOOM.Pour gérer le chargement de grandes images,Réduire l'empreinte mémoire des images principalement en zoomant.

  • BitmapFactoryQuatre types de méthodes de chargement d'images sont fournis(decodeFile、decodeResource、decodeStream、decodeByteArray)Tous les deux.BitmapFactory.OptionsParamètres,AdoptioninSampleSizeLes paramètres permettent d'échantillonner facilement une image à l'échelle
  • Comme un10241024Pour les images HD de.Donc il prend la mémoire de102410244,C'est - à - dire:4MB,SiinSampleSizePour2,Donc l'image échantillonnée prend seulement512512*4,C'est - à - dire:1MB(Attention!:Selon les documents officiels les plus récents,inSampleSizeLa valeur de doit toujours être2Indice de,C'est - à - dire:1、2、4、8Attendez un peu!,Si l'entrée externe est insuffisante2Indice de,Le système sélectionne également par défaut le plus proche2Au lieu de,Par exemple,2)

Considérations générales.Le taux d'échantillonnage permet de charger efficacement l'image,Le processus est le suivant

  • Oui.BitmapFactory.OptionsDeinJustDecodeBoundsParamètre défini àtrueEt charger l'image
  • DeBitmapFactory.OptionsInformations brutes sur la largeur et la hauteur de l'image extraite de,Ils correspondent àoutWidthEtoutHeightParamètres
  • Selon les règles du taux d'échantillonnage et en combinaison avec les objectifsViewLa taille requise pour calculer le taux d'échantillonnageinSampleSize
  • Oui.BitmapFactory.OptionsDeinJustDecodeBoundsParamètre défini àfalse,Recharger l'image
    Une histoire de combatFlutterApplication du cadre multiplateforme,Les étudiants de l'Université portent trois vêtements en or fourmi_Android_04

5.Mécanisme de récupération de la mémoire avecGCAlgorithmes(Avantages et inconvénients des différents algorithmes et scénarios d'application);GCPrincipe timing etGCObjet

Voir la réponse:
1.Il existe deux mécanismes de récupération des objets de décision de mémoire

  • Algorithme de comptage des références:Ajouter un compteur de référence à l'objet,Chaque fois qu'il y a un endroit pour le citer,La valeur du compteur est augmentée de1;Quand la référence est invalide,La valeur du compteur diminue1;Le compteur à tout moment est0Les objets ne peuvent plus être utilisés.Mais dans le courant dominantJavaL'algorithme de comptage de référence n'est pas sélectionné dans la machine virtuelle pour gérer la mémoire,La raison principale est qu'il est difficile de résoudre le problème des références circulaires entre les objets,Il y a donc un autre algorithme pour déterminer la survie de l'objet.
  • Méthode d'analyse de l'accessibilité:Par une série appelée『GCRoots』Comme point de départ,Commencez par ces noeuds et descendez.,Le chemin parcouru par la recherche s'appelle la chaîne de référence,Quand un objetGC RootsLorsqu'aucune chaîne de référence n'est connectée,Prouve que cet objet n'est pas disponible.Il peut être utilisé commeGC RootsObjet de:Objet référencé dans la pile de machines virtuelles,Se réfère principalement aux variables locales dans le cadre de la pile*、Dans la pile de méthodes localesNativeObjet référencé par la méthode、Objet référencé par une propriété statique de classe dans la zone de méthode、Objet référencé par une constante dans la zone de méthode

2.GCIl existe quatre types d'algorithmes de recyclage:

  • Algorithme de collecte par génération:Est une sorte d'algorithme actuellement utilisé par les machines virtuelles commerciales,Selon le cycle de vie de l'objet,Oui.JavaLes piles sont divisées en cénozoïques et gériatriques,Et d'adopter l'algorithme de collecte le plus approprié en fonction des caractéristiques de chaque âge.

  • Cénozoïque:Un grand nombre d'objets sont morts,Il n'y a qu'une petite survie.Utiliser『Algorithme de réplication』,Il suffit de copier quelques objets vivants

    • Algorithme de réplication:Diviser la mémoire disponible en deux morceaux de taille égale par capacité,Une seule pièce à la fois.Quand la mémoire de ce bloc sera épuisée,Mettre des objets vivants『Copier』Au - dessus de l'autre,Encore une fois, videz cet espace mémoire.Simple à réaliser,Fonctionnement efficace.Plus d'opérations de copie sont nécessaires lorsque le taux de survie de l'objet est élevé,L'efficacité va diminuer
  • Vieux temps:Taux de survie élevé de l'objet.Utiliser『Marquage—Algorithme de nettoyage』Ou『Marquage—Algorithme de tri』,Il suffit de marquer moins d'objets recyclés.

    • Marquage-Algorithme de nettoyage:Tout d'abord,『Marquage』Sortir tous les objets à recycler,Et puis l'unification『Effacer』Tous les objets marqués.Ni le marquage ni le nettoyage ne sont efficaces,Une grande quantité de fragments de mémoire discontinus se produit après le nettoyage,Un trop grand nombre de débris spatiaux peut entraîner l'attribution ultérieure d'objets plus grands pendant l'exécution du programme,Impossible de trouver suffisamment de mémoire continue pour déclencher une autre opération de collecte des ordures à l'avance.

    • Marquage-Algorithme de tri:Tout d'abord,『Marquage』Sortir tous les objets à recycler,Et ensuite『Organiser』,De sorte que les objets vivants se déplacent vers une extrémité,Enfin, nettoyez la mémoire directement à l'extérieur des limites d'extrémité..L'algorithme de tri des étiquettes déplace tous les objets vivants à une extrémité,Et traiter les objets non vivants,Donc il n'y a pas de fragment de mémoire

Résumé:

L'entrevue est un apprentissage continu、Le processus d'auto - amélioration continue,Si tu en as l'occasion, sors te rencontrer,Au moins, je peux penser à l'effet de combler les lacunes,Et un peu de connaissance,Peut - être que tu te crois au courant,Mais laissez - vous dire,Ce n'est pas forcément bien dit.

Il y a quelque chose de stressant qui est motivé,Et les points de connaissance,C'est de l'argent.(Parce que la plupart des techniciens sont classés en fonction de vos capacités、Pour payer),Trop de compétences, pas de pression..

Vous trouverez ci - joint un résumé des principaux sujets de mon entrevue: Guide d'entrevue,Plein de marchandises sèches,J'espère que ça aidera tout le monde!
Une histoire de combatFlutterApplication du cadre multiplateforme,Les étudiants de l'Université portent trois vêtements en or fourmi_Android_05
 CodeChinaProjet Open Source:《AndroidRésumé des notes d'étude+Vidéo d'architecture mobile+Le vrai problème de l'interview de Dachang+Code source du projet》

版权声明
本文为[Mb612e2b11c3210]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/09/20210915051951516S.html

随机推荐