в силу разных привычек (безопастность, эффективность, надежность, итд) я достаточно часто использую в повседневной жизни RAM drive — скажем, чтобы держать там кэш активных программ. и вот, например, как в Mac OS X это можно применить к Chromium[1]:
#!/usr/bin/env python[2] # Create RAMDisk for Chromium's cache and extensions' temporary files # By dsjkvf (2013) dsjkvf@gmail.com import sys import os import shutil def create(): # Set the size of the RAMDisk in megabytes sizeMBytes = 500 sizeBytes = str(int(sizeMBytes) * 1953) # Create RAMDisk os.system( 'diskutil erasevolume HFS+ \"RAMDisk\" `hdiutil attach -nomount ram://'+sizeBytes+'`') def initialize(): # Enlist the directories in question dirHDDSSD = ['~/Library/Caches/Chromium/Default/Cache', '~/Library/Caches/Chromium/Default/Media Cache', ...[3]] dirRAM = ['/Volumes/RAMDisk/Chromium/Cache','/Volumes/RAMDisk/Chromium/Media Cache', ...] #Create RAMDisk directories for i in dirRAM: try: os.makedirs(os.path.expanduser(i)) except OSError, e: pass # Symlink RAMDisk directories to corresponding mountpoints on the HDD/SSD for (i,j) in zip(dirHDDSSD,dirRAM): if os.path.exists(os.path.expanduser(i)): if not os.path.islink(os.path.expanduser(i)): shutil.rmtree(os.path.expanduser(i)) os.symlink(os.path.expanduser(j), os.path.expanduser(i)) else: try: os.symlink(os.path.expanduser(j), os.path.expanduser(i)) except OSError, e: os.unlink(os.path.expanduser(i)) os.symlink(os.path.expanduser(j), os.path.expanduser(i)) # Hide the RAMDisk os.system('chflags hidden /Volumes/RAMDisk') def main(): if not len(sys.argv) > 1: create() initialize() sys.exit() else: print 'ATTENTION: No command line parameters are supposed to be used with this script.' print 'ATTENTION: Please, make sure to edit the script first.' sys.exit() main()
а для того, чтобы диск не исчезал бесследно после ухода в standby-режим можно использовать программу SleepWatcher, написав для нее элементарное правило:
#!/bin/sh if [ ! -d "/Volumes/RAMDisk" ]; then /Path/to/the/aforementioned/script fi
-
предпочитаю Chromium в силу того, что он не соджержит закрытого кода Google. можно так же посмотреть в сторону SRWare Iron, хоть там все и не так однозначно. ↩
-
да, python совершенно бесповоротно очаровал меня исключительнейшей простой и логичностью. ↩
-
например, это может быть
PNaClTranslationCache
, или расположенные в~/Library/Application Support/Chromium/Default/
каталогиExtension State
иExtension Rules
. или что-то еще. ↩