web-dev-qa-db-fra.com

Inconvénients de l’utilisation de la précharge? Pourquoi n'est-il pas inclus par défaut?

J'aimerais savoir quels sont les inconvénients d'utiliser preload? S'il n'y avait aucun inconvénient, preload serait activé par défaut, donc je suppose qu'il y en a.

Ok, vous avez besoin d’un peu plus de RAM, mais la plupart des gens ont bien plus que RAM puis Ubuntu - quels sont donc les inconvénients de l’utilisation de preload?

107
Paradiesstaub

En termes simples, la précharge n'est pas pour tout le monde. C'est bien si vous ouvrez beaucoup d'applications ou de bibliothèques. Cela est dangereux si vous ne chargez que des applications ou des bibliothèques occasionnellement. Je vais utiliser deux exemples de mon utilisation réelle (et oui j'utilise le préchargement).

Tout d'abord, Google Chrome. Désormais, un navigateur n’est ouvert qu’une fois par démarrage, peut-être deux fois (pour moi, je suis un développeur Web). Chrome et ses bibliothèques associées restent en mémoire car je l'utilise toujours. Même lorsque je ferme toutes les fenêtres chrome, il fait toujours son travail en arrière-plan. Ainsi, tout le bélier dédié à la conservation d'une copie préchargée de Chrome constitue un gaspillage total et total. Ce n'est jamais (ou rarement) déchargé. Pour l'utilisateur moyen, cela est vrai pour un grand nombre d'applications. Un utilisateur Office aura presque toujours son application de messagerie ouverte. Ainsi, les petites économies de temps de démarrage sont complètement perdues, car elles n'ouvrent leur application de messagerie qu'une fois par jour et la laissent ouverte.

Le deuxième exemple est rake. En tant que développeur Ruby qui croit au test, je lance rake a TON. rake s'exécute, s'exécute pendant quelques secondes - minutes, puis se termine. Le préchargement me permet d’accélérer mon travail quotidien car il charge à l’avance rake et les bibliothèques nécessaires (qui peuvent être très volumineuses). Donc, il y a beaucoup de démarrages et d'arrêts à la course de rake. Le bélier supplémentaire utilisé pour accélérer les 400 ou 500 lancements de râteau en quelques heures en vaut la peine.

La raison pour laquelle il n'est pas activé par défaut est que sa capacité à améliorer les performances repose en grande partie sur comment vous utilisez votre système. Pour certaines personnes, ce sera négatif et pour d'autres positif.

Enfin, le préchargement, même si vous ne l'utilisez pas, consomme de la RAM. Par conséquent, si vous ne lancez pas fréquemment d’applications, vous pouvez ralentir légèrement l’ensemble de votre système en ne disposant pas de ce ram disponible pour d’autres types de mise en cache. N'oubliez pas que même si vous avez 32 Go de RAM, Linux essaiera d'en utiliser le plus possible pour mettre en cache des données afin de rendre votre interaction plus rapide. En utilisant le préchargement, vous réduisez cette mémoire libre. Même si ce n'est qu'un tout petit peu, les 2 secondes que vous avez sauvegardées en lançant chrome 1 fois pourraient vous coûter 60 secondes en un mois.

63
coteyr

Question posée par le bountier Saeed Zarinfam le 5 septembre 2012:

Bonjour à tous, je veux savoir, est-ce un mythe? Est-ce que [précharge] améliore vraiment mes performances? Quels sont les inconvénients de l'utiliser? J'ai un ordinateur portable avec cette spécification (processeur Core i5, 4 Go de RAM, 128 Go de disque dur SSD). Merci beaucoup.

  • Il n'y a pas vraiment besoin de précharge si vous avez un disque SSD
    • En effet, les disques SSD fournissent des temps d’accès aléatoires beaucoup plus rapides que les disques durs, de sorte que le "préchargement" des binaires/dépendances en mémoire est une perte de temps, IMO
    • L'inconvénient fondamental est alors que le préchargement "utilise" de la mémoire supplémentaire sans offrir d'avantage tangible.
21
ish

Le préchargement est un "démon adaptatif en lecture anticipée" qui s'exécute en arrière-plan de votre système et observe les programmes que vous utilisez le plus souvent, en les mettant en cache afin d'accélérer le temps de chargement des applications. En utilisant le préchargement, vous pouvez exploiter au mieux la RAM inutilisée et améliorer les performances globales de votre système de bureau.

Ne vous attendez pas à un changement radical des performances tout de suite. De même, si vous ouvrez/fermez les applications de manière répétitive, votre ordinateur stockera quand même ces fichiers dans le cache (il s’agit d’une charge "à chaud"), de sorte que vous ne constaterez aucune différence de vitesse. Cependant, vous constaterez une amélioration de la vitesse si, par exemple, vous utilisez un programme par intermittence; ces programmes démarreront plus rapidement que sans préchargement.

La précharge peut améliorer considérablement le temps de démarrage des applications. Étant donné que la plupart des machines modernes disposent de beaucoup de mémoire, Preload exploite pleinement cette RAM.1

Cela étant dit, il semble que la précharge soit un outil très utile, et c’est peut-être le cas.

Je pense que la raison pour laquelle le système d'exploitation n'est pas préchargé, c'est parce que l'utilisateur doit savoir exactement ce qu'il fait, et avoir suffisamment d'expérience pour pouvoir l'utiliser, et le système doit disposer de suffisamment de RAM.

Sur un aspect plus technique, le préchargement consiste à déplacer les données du disque dur vers la RAM, ce qui oblige la plupart des disques durs à passer en mode veille s'ils ne sont pas utilisés, puis à revenir en arrière si nécessaire. Une rotation vers le haut/vers le bas du disque entraînerait le décompte du cycle de chargement/déchargement et une augmentation du nombre de temps de mise sous tension, ce qui raccourcirait la durée de vie du lecteur.

Nous avons conçu et mis en œuvre le préchargement, un schéma de prélecture adaptative basé sur Markov qui fonctionne sur les prévisions au niveau de l'application. De plus, le préchargement est implémenté dans l'espace utilisateur et ne modifie en rien l'environnement d'exécution de l'application. Il s’agit du premier travail expérimentant avec la pré-extraction de système de fichiers à ce niveau, à notre connaissance.

Nos résultats expérimentaux montrent des améliorations prometteuses sur le temps de démarrage des applications par rapport aux caches à froid, et un taux de réussite décent par rapport à un algorithme de prédiction na¨ıve.

Cependant, le fait d'être dans l'espace utilisateur crée des obstacles majeurs pour faire du préchargement une solution compétitive au problème du démarrage. En particulier, le fait de ne pas disposer d'informations complètes sur les demandes d'E/S des applications et de l'absence de canaux de communication puissants avec le sous-système de cache de pages dégrade considérablement l'efficacité du préchargement, en particulier dans des conditions de mémoire insuffisante.

Un autre problème inhérent à la conception de la précharge est la variance élevée et la confiance faible des prévisions, causées par la corrélation relativement vague des démarrages d'applications. Bien que nous ayons réussi à construire un modèle permettant de suivre les corrélations d’applications, le fait que les lancements d’applications soient des événements très rares comparés à l’échelle de temps sur laquelle travaillent les ordinateurs est condamné à utiliser une méthode de prélecture au niveau de l’application qui consomme énormément de mémoire pendant une durée pratiquement infinie. Cette mémoire peut être utilisée pour améliorer le comportement du cache à court terme.

Enfin, nous proposons un ensemble de recommandations aux développeurs système sur la manière d’améliorer le temps de démarrage, le temps de connexion et le temps de démarrage des applications sans recourir à un outil de préfet intégré au sous-système de cache du noyau. Bien entendu, un préfetcher basé sur le fichier dans le noyau peut s’améliorer par la suite.2

1 Source: techthrob

2 Source: Preload - Un démon de prélecture adaptative de Behdad Esfahbod - Thèse soumise conformément aux exigences du diplôme de maîtrise en sciences - Département de premier cycle en informatique - Université de Toronto. Copyright © 2006 de Behdad Esfahbod.

12
Mitch

Désavantages? Il n'y en a pas!

Augmentation de la performance des applications d'ouverture par l'utilisateur. Je l'utilise depuis des années sur mes systèmes et en lecture anticipée et je n'ai aucun problème. Le page de bogue pour le préchargement ne suggère aucun inconvénient non plus.

Preload surveille les applications exécutées par les utilisateurs et, en analysant ces données, permet de prédire quelles applications utilisateurs peut s'exécuter et récupère ces fichiers binaires et leurs dépendances dans la mémoire pour accélérer les temps de démarrage.

Cela augmente légèrement le temps de démarrage, mais le temps de récupération de la vitesse des applications dépasse de loin ce petit problème.

voir article

Si vous utilisez constamment des applications courantes comme Firefox ou Gimp , vous ' Vous remarquerez des temps de chargement grandement améliorés. Le préchargement est un démon qui s'exécute de manière discrète en arrière-plan et ne perturbera en aucun cas votre bureau. Les utilisateurs Ubuntu peuvent installer le préchargement avec:

Sudo apt-get install preload

Résultats:

Graph showing difference between normal and preload start

ref

9
Ringtail