Si je peux interpréter votre question, oui, il existe un moyen d'accélérer votre logiciel et de mettre les choses en cache, si vous êtes prêt à autoriser les états sauvegardés, c'est-à-dire les fichiers sous votre contrôle qui doivent simplement être ouverts lors de la connexion de l'utilisateur et les paramètres du programme qui sont toujours les mêmes.
Vous pouvez le faire sur un MacOS, Linux et Windows : Effectué correctement, il peut apporter beaucoup de vitesse au système tout en réduisant la température globale du système et en prolongeant la durée de vie des supports utiles. Plusieurs facteurs seront importants pour décider si cela convient à votre cas d'utilisation :
-
Quantité de RAM physiquement disponible (moins de 8 Go sous MacOS ou Windows 64 bits risque d'entraîner une ségrégation catastrophique).
-
Nombre de programmes et services principaux qui doivent être en cours d'exécution
-
Performances matérielles et spécifications générales
Dans les cas spécifiques où les conteneurs ou les VM ne sont pas possibles ou irréalisables et où l'on souhaite obtenir des performances élevées et/ou une reproductibilité absolue, c'est définitivement la voie à suivre.
Lors de la connexion de l'utilisateur, un script de démarragescript réserve automatiquement un morceau de mémoire et crée un lien symbolique sous la forme d'un répertoire : a ramdisk . Ensuite, tous les fichiers de programmes et de données sont copiés du SSD vers le ramdisk. Ensuite, les programmes en question sont démarrés automatiquement, en utilisant les paramètres que vous avez préparés et les fichiers ouverts qui ont des historiques dans les systèmes configurés pour le démarrage automatique.
Ce qui suit est une sorte de recette que votre script pourrait suivre.
Créez un profil d'utilisateur spécifique qui "contient" ou a accès à tous les programmes et données nécessaires ; un profil où tous les programmes non nécessaires ne fonctionnent pas. Désactivez les services, les programmes, les connexions réseau, les économiseurs d'écran, etc. et faites-le à partir des paramètres système (basés sur l'utilisateur) chaque fois que cela est possible.
Assurez-vous d'avoir beaucoup de mémoire et de profiler la charge du système dans les circonstances que vous voulez reproduire. Faites une liste des programmes dont vous avez besoin : trouvez les exécutables, les emplacements des fichiers temporaires et les fichiers et actifs générés par l'utilisateur. Ce sont les fichiers que vous voulez copier sur votre RAMdisk. C'est un bon moment pour ajuster la taille de votre ramdisk. Renommez les temp et les conserver en tant que sauvegardes à l'emplacement d'origine. Créez ensuite des liens symboliques qui pointent de l'emplacement des fichiers temporaires d'origine vers ceux hébergés sur le ramdisk. Copiez également vos ressources utilisateur et appelez le programme pour lancer les fichiers utilisateur avec lesquels vous voulez qu'il s'ouvre - ainsi que tous les drapeaux dont vous pourriez avoir besoin.
C'est tout ce qu'il y a à faire. Ne laissez pas votre système en hibernation ou en panne de courant...
MACOS
Je fais cela pour les infrastructures critiques sur du matériel en métal nu. pendant des installations artistiques et des performances audio-visuelles. En fait, j'ai fait récemment sur MacOS Sierra, dans ce cas c'était pour une performance vidéo en direct avec resolume arena et une capture d'écran avec siphon.
#!/usr/bin/env bash
# use these cache dirs
dirs="com.resolume.arena info.v002.syphon.Syphon-Recorder"
# get available memory
size_mb=$(sysctl hw.memsize | awk '{print $2;}')
# use half the memory
size_mb=$[size_mb/2048]
origin="${HOME}/Library/Caches"
ramdisk="/Volumes/ramdisk"
diskutil erasevolume HFS+ "ramdisk" hdiutil attach -nomount ram://$[size_mb]
if [ -d ${ramdisk} ]; then
for dir in ${dirs}
do
/bin/mkdir -p ${ramdisk}/${dir}
if [ -d ${origin}/${dir} ]; then
if [ ! -L ${origin}/${dir} ]; then
/bin/mv ${origin}/${dir} ${origin}/${dir}.bak
fi
fi
if [ -L ${origin}/${dir} ]; then
/bin/rm ${origin}/${dir}
fi
if [ ! -L ${origin}/${dir} ]; then
/bin/ln -v -s -f ${ramdisk}/${dir} ${origin}/${dir}
fi
done
fi
/bin/mkdir -p ${ramdisk}/Applications/Resolume
/bin/mkdir -p ${ramdisk}/RAMDISK_REPOSITORY/
echo "Copying Resolume to ramdisk"
/bin/cp -r "/Applications/Resolume Arena 5.0.2/" "${ramdisk}/Applications/Resolume/"
/bin/cp -r "/Users/Shared/RAMDISK_REPOSITORY/" "${ramdisk}/RAMDISK_REPOSITORY/"
cd /Applications/syphon
/usr/bin/open Syphon\ Recorder.app/
cd /Volumes/ramdisk/Applications/Resolume/
/usr/bin/open Arena.app/
exit
LINUX
Dans l'environnement Linux, Arch est une excellente plateforme où vous pouvez vraiment garder votre installation légère en n'installant que ce dont vous avez exactement dont vous avez besoin. Dans des situations extrêmes, un ingénieur peut choisir de copier le fichier dossier système complet sur le disque RAM (par exemple, à partir d'une carte SD à lecture seule à lecture seule (pour éviter la corruption de la carte SD) ou même à partir d'un emplacement réseau. Le code ci-dessus devrait fonctionner avec quelques modifications.
Windows
Je ne l'ai pas fait personnellement sous Windows, mais c'est possible. Consultez si vous avez besoin du disque virtuel sous Windows :
Windows ERAM sur github