![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
Message
#1
|
|
![]() BIDOUILLE Guru ![]() ![]() ![]() ![]() ![]() Groupe : Admin Messages : 55 528 Inscrit : 14 Jan 2001 Lieu : Paris Membre no 3 ![]() |
PowerApp propose une nouvelle application sous OS X (10.6 minimum) appelée ramdisk4mac et commercialisée 8,99 euros. Comme son nom l'indique, elle permet de créer facilement un Ramdisk et de gérer son comportement à l'extinction ou au redémarrage. Elle gère en particulier la sauvegarde de ce disque mémoire ou sa copie régulière vers un support qui ne risque pas de voir son contenu effacé en cas d'extinction ou de redémarrage.
Utiliser un Ramdisk est devenu une solution intéressante maintenant que la RAM est peu coûteuse et qu'un Mac Pro peut embarquer 64 ou 128 Go de RAM. Nous en utilisons un dans tous nos articles visant à tester les débits de SSD rapides. Maintenant, sachez qu'il est très simple sous OS X de créer un Ramdisk via le terminal: Voici la commande Terminal permettant d'un créer un très facilement. diskutil erasevolume HFS+ “ramdisk” `hdiutil attach -nomount ram://8000000` Dans ce cas, on obtient un Ram Disk d'environ 4 Go, le dernier chiffre étant le nombre de blocks de 512 bits. Pour un 2 Go il faut mettre 4000000 et pour un 8 Go 16000000, sachant que qu'on parle de blocks de 512 octets. Pour vous en débarrasser et récupérer la mémoire utilisée, il suffit de le démonter (attention tout son contenu est alors effacé). Sur un Mac récent doté de DDR3 1600, on dépasse les 3,6 Go par seconde en débit, avec des pointes supérieures à 4 Go par seconde en écriture. C'est surtout sur les petits fichiers d'un Ramdisk est infiniment supérieur en débit à un SSD. Lien vers le billet original -------------------- C'est parce que la vitesse de la lumière est plus grande que celle du son que tant de gens paraissent brillants avant d'avoir l'air con
|
|
|
![]() |
Guest_macmagna_* |
![]()
Message
#2
|
Guests ![]() |
Le script que tu as trouvé Kalm fait tout dans les règles avec un service dédié, c'est la meilleure solution.
Je n'ai pas décortiqué tout le code, mais on peut parier que les gars ont ajouté tout ce qu'il faut pour éviter les mauvaises surprises. L'autre solution est de déplacer les dossiers, plutôt que de les détruire, lors du login et du logout. Il faudrait probablement aussi démonter le RAMDisk lors du logout et tester sa présence ou pas lors du login... Le script de log-in deviendrait donc: Code if [ ! -e /Volumes/RAMDisk ] then diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://7812500` fi cp rp ~/Library/Caches /Volumes/RAMDisk/Caches rm -r ~/Library/Caches ln -s /Volumes/RAMDisk/Caches ~/Library/Caches cp -rp $TMPDIR /Volumes/RAMDisk/Temp rm -r $TMPDIR ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/} Le script de log-out: Code rm ~/Library/Caches cp -rp /Volumes/RAMDisk/Caches ~/Library/Caches rm $TMPDIR cp -rp /Volumes/RAMDisk/Temp $TMPDIR et il y a moyen de s'assurer que des scripts se lancent au login et au logout en usant de: Code sudo defaults write com.apple.loginwindow LoginHook chemin/vers/le/script/de/login et de:Code sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout A noter que tout ceci est expérimental et peut poser, entre autres, de sérieux problèmes lors d'une utilisation multi-utilisateurs (mélange possible des Caches et des Temp des différents utilisateurs, etc...)... A utiliser donc avec sagesse et modération, à vos risques et périls, bien entendu... ![]() |
|
|
![]()
Message
#3
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 5 195 Inscrit : 24 Aug 2010 Lieu : Saigon Membre no 158 214 ![]() |
Le script que tu as trouvé Kalm fait tout dans les règles avec un service dédié, c'est la meilleure solution. Je n'ai pas décortiqué tout le code, mais on peut parier que les gars ont ajouté tout ce qu'il faut pour éviter les mauvaises surprises. Yep, mais selon les témoignage ne fonctionne pas en 10.9. L'autre solution est de déplacer les dossiers, plutôt que de les détruire, lors du login et du logout. Il faudrait probablement aussi démonter le RAMDisk lors du logout et tester sa présence ou pas lors du login... N'étant pas un spécialiste du script (jamais touché) ^^, tu peux m'expliquer un peu comment tu intègres ces 2 script dans l'éditeurs Apple Script afin que ca se fasse automatiquement. ![]() ![]() |
|
|
Guest_macmagna_* |
![]()
Message
#4
|
Guests ![]() |
N'étant pas un spécialiste du script (jamais touché) ^^, tu peux m'expliquer un peu comment tu intègres ces 2 script dans l'éditeurs Apple Script afin que ca se fasse automatiquement. ![]() ![]() Tu ouvres l'Editeur AppleScript puis tu copies ton script en prenant soin de l'encadrer par do shell script "". Pour le script de login, ça donne ça: Code do shell script " ensuite tu fais "Fichier->Enregistrer...", et tu choisis "Application" dans le format de fichier avant de clicker "Enregistrer". Tu obtiens ainsi une petite application autonome qui exécute ton bout de script chaque fois qu'elle est lancée. Tu peux faire ça avec les deux scripts et lancer la première application automatiquement à l'ouverture de cession en la choisissant dans les éléments à lancer pour ton compte (PreferencesSystemes->UtilisateursEtGroupes-> onglet "Ouverture"). Par contre rien n'est prévu pour le logout donc tu devras le faire manuellement.if [ ! -e /Volumes/RAMDisk ] then diskutil erasevolume HFS+ RAMDisk `hdiutil attach -nomount ram://7812500` fi cp rp ~/Library/Caches /Volumes/RAMDisk/Caches rm -r ~/Library/Caches ln -s /Volumes/RAMDisk/Caches ~/Library/Caches cp -rp $TMPDIR /Volumes/RAMDisk/Temp rm -r $TMPDIR ln -s /Volumes/RAMDisk/Temp ${TMPDIR%/} " L'autre option (avec sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout) est meilleure mais "chemin/vers/le/script/de/logout" doit pointer, a priori, vers un script et non une application. Dans ce cas il faut copier le script dans un fichier texte, puis faire un "chmod +x chemin/vers/le/script" pour le rendre exécutable, puis utiliser "sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout". Un détail important avec l'utilisation de "sudo defaults write com.apple.loginwindow LoginHook et LogoutHook" c'est que le script est exécuté en "root" et que donc il ne doit pas contenir de chemins relatifs (préfixés par "~") mais que des chemins absolus (commençant par "/"). Si tu dois utiliser cette solution, tu dois donc changer les deux "~/Library/Caches" par le chemin complet du genre "/Users/Kalm/Library/Caches"... |
|
|
![]()
Message
#5
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 4 969 Inscrit : 26 Jan 2011 Lieu : Pollachius virens Membre no 164 083 ![]() |
'L'autre option (avec sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout) est meilleure mais "chemin/vers/le/script/de/logout" doit pointer, a priori, vers un script et non une application. Dans ce cas il faut copier le script dans un fichier texte, puis faire un "chmod +x chemin/vers/le/script" pour le rendre exécutable, puis utiliser "sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout". Un détail important avec l'utilisation de "sudo defaults write com.apple.loginwindow LoginHook et LogoutHook" c'est que le script est exécuté en "root" et que donc il ne doit pas contenir de chemins relatifs (préfixés par "~") mais que des chemins absolus (commençant par "/"). Si tu dois utiliser cette solution, tu dois donc changer les deux "~/Library/Caches" par le chemin complet du genre "/Users/Kalm/Library/Caches"... Si le script est exécuté en tant que root le contenu de la variable $TMPDIR ne sera plus bon non plus. -------------------- MBP 2017 15" avec clavier pourri et touchbar inutile
|
|
|
Guest_macmagna_* |
![]()
Message
#6
|
Guests ![]() |
'L'autre option (avec sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout) est meilleure mais "chemin/vers/le/script/de/logout" doit pointer, a priori, vers un script et non une application. Dans ce cas il faut copier le script dans un fichier texte, puis faire un "chmod +x chemin/vers/le/script" pour le rendre exécutable, puis utiliser "sudo defaults write com.apple.loginwindow LogoutHook chemin/vers/le/script/de/logout". Un détail important avec l'utilisation de "sudo defaults write com.apple.loginwindow LoginHook et LogoutHook" c'est que le script est exécuté en "root" et que donc il ne doit pas contenir de chemins relatifs (préfixés par "~") mais que des chemins absolus (commençant par "/"). Si tu dois utiliser cette solution, tu dois donc changer les deux "~/Library/Caches" par le chemin complet du genre "/Users/Kalm/Library/Caches"... Si le script est exécuté en tant que root le contenu de la variable $TMPDIR ne sera plus bon non plus. Tout à fait! bien vu ![]() Il vaut donc mieux remplacer tous les chemins par des chemins absolus, ce qui ne rend pas le script très portable ![]() |
|
|
![]() ![]() |
Nous sommes le : 4th September 2025 - 16:31 |