Les systèmes d'exploitation le font déjà, avec le cache des pages :
En informatique, un cache de pages, souvent appelé cache de disque, est un cache "transparent" de pages sauvegardées sur disque, conservé en mémoire principale (RAM) par le système d'exploitation pour un accès plus rapide. Un cache de pages est généralement mis en œuvre dans les noyaux avec la gestion de la mémoire de pagination, et est complètement transparent pour les applications.
Lorsque vous lisez une page sur un disque, votre système d'exploitation charge ces données en mémoire et les y laisse jusqu'à ce qu'il ait une meilleure utilisation de cette mémoire. Si vous disposez d'une mémoire suffisante, votre système d'exploitation ne lira chaque page qu'une seule fois, puis l'utilisera en mémoire à partir de ce moment-là. La seule raison pour laquelle le système d'exploitation effectuera une véritable entrée/sortie sur le disque est s'il a besoin de lire une page qui n'est pas déjà en mémoire, ou si une page est écrite (dans ce cas, vous voulez probablement la sauvegarder sur le disque).
L'un des avantages de cette méthode est que vous n'avez pas à charger tout le disque dur en mémoire, ce qui est utile s'il ne tient pas, et signifie également que vous ne perdez pas de temps à lire des fichiers dont vos applications n'ont pas besoin. Un autre avantage est que le cache peut être supprimé dès que le système d'exploitation a besoin de plus de mémoire (il vaut mieux que la prochaine lecture de disque soit légèrement plus lente que de voir vos programmes planter parce qu'ils manquent de mémoire). De plus, il est utile que les utilisateurs n'aient pas à décider manuellement ce qui doit être dans le ramdisk ou non : Ce que vous utilisez le plus souvent sera automatiquement conservé en mémoire principale.
Si vous disposez de beaucoup de mémoire, mais que vos applications ne tournent pas aussi vite que prévu, il y a de fortes chances qu'elles soient plus lentes parce qu'elles fonctionnent en toute sécurité. Par exemple, SQLite est plusieurs fois plus rapide si vous lui demandez de ne pas attendre la fin des écritures, mais votre base de données sera complètement détruite si vous ne l'arrêtez pas proprement.
Aussi, /tmp
est généralement un disque RAM sur les distributions Linux, car ce n'est pas grave si ces données sont perdues. Il y a toujours un débat sur la question de savoir si c'est une bonne idée, car si trop de données sont écrites sur le disque dur, il est possible que les données soient perdues. /tmp
vous pouvez manquer de mémoire.