boh… idee varie

/mnt/brain

Win XP (o Vista) 32bit. Che me ne faccio di 4GB di RAM?

Pubblicato da Alessio Margutta su 20 Gennaio 2009

L’altro giorno sono passato dal ferramenta e non ho resistito: ho comprato altri 2 GB di RAM. Lo sapevo che non mi servivano. Sapevo soprattutto che non avrebbero potuto funzionare con un sistema operativo a 32 bit. Perché è vero che 2^32 =  4.294.967.296, ma avevo letto e riletto – senza interessarmi troppo – che comunque Windows li rendeva disponibili solo in parte. E invece…

E invece è vero, ovviamente. Non starò a spiegare quello che non ho capito bene neppure io. Comunque metto solo in guardia da chi racconta che con switchini vari – tipo /PAE o /3GB – nel boot.ini (o comunque si chiami il coso in Vista) cambi qualcosa: la Microsoft ha scientemente deciso di castrare il sistema a massimo 3,25 GB di RAM utilizzabile. E con buoni motivi, nonostante spesso CPU, scheda madre e sistema operativo stesso  – per la Microsoft almeno da Win2000 Server - siano in grado di indirizzare memoria fino a 64 GB; per evitare cioè che driver programmati male o fossero tutti da riscrivere da capo, oppure provocassero una serie  infinita di BSOD. I 750 MB circa che Windows nasconde sono infatti  riservati alle varie periferiche – prima tra tutte la scheda grafica – che utilizzano gli indirizzi di memoria del sistema operativo per puntare alla loro propria memoria, rendendoli con questo di fatto inutilizzabili per le applicazioni. Questo ho capito e tanto mi basta.

Girando per la rete però mi sono imbattuto in una pagina di un crucco – che non trovo più. Il succo era di utilizzare i 750 MB residui per una RamDisk e per spostarci il file di paging di Windows. Ripeto: la pagina non la trovo più e quindi neppure so quale software esattamente abbia usato lui. Ma capita l’idea, trovatala niente affatto stupida, insomma… funziona!

La cosa più difficile è stata trovare un software che funzionasse. Ne ho provati 4 o 5: uno o due non sono riuscito a installarli (ho XP SP3); altri li ho scartati perché limitavano le dimensioni della RamDisk a 64 MB; un altro creava sì una RamDisk, ma prendendo la memoria da quella gestita da Windows. A proposito: è ovviamente una stupidaggine quella di creare una ramdisk per spostarci il file di paging se la memoria viene tolta al sistema operativo: a parte  eccezioni alla regola, Windows comincia a scrivere nel file di paging solo quando la RAM è in via d’esaurimento: mettere la RamDisk nella RAM gestita dal sistema operativo significa solo rubarla al sistema operativo stesso e accelerarne così l’esaurimento. In altre parole: una RamDisk è sempre una stupidaggine. Tranne in casi come questo.

Inoltre, se ci si vuole mettere sopra il file di paging, la RamDisk deve essere pronta all’avvio del sistema operativo, durante il boot: ad esempio un batch file – come suggeriva una di queste soluzioni - che partisse automaticamente a ogni avvio, partirebbe comunque sempre troppo tardi.  

Mi spiace, ma non ho tenuto conto di quali programmi ho provato: se non funzionavano, disinstallavo e saluti. Mi ricordo però che molti erano un’estensione del driver della Microsoft per Windows 2000 ramdisk.sys, che è anche l’unico che non ho provato (sic!) perché ho letto senza controllare che è limitato a 32 MB. Magari non è vero. Insomma, alla fine ho trovato RamDisk della SuperSpeed. Funziona (anche se si può scaricare solo una versione di prova con data di scadenza) e sono certo che ce ne sono altri in giro, freeware o opensource, che funzionano. Io ho trovato questo e mi sta bene finché funziona. Poi vedremo.

Insomma, ho creato un disco Ram di 760 MB e lì sopra ho spostato il pagefile (un pochettino più piccolo, 740 MB), togliendolo dal disco fisso.

RAM fisica (a me Windows vede 3,15 GB) e picco nel consumo 3,5 GB

RAM fisica (a me Windows vede 3,15 GB) e picco nel consumo 3,5 GB. Il limite (RAM + file di paginazione) è 3,7 GB.

Il file di paging faceva il suo dovere, come da questo dettaglio di Everest:

 ramdisk-file-di-paging1

Poi - siccome sono perfezionista – volevo anche evitare di vedere il drive in Windows Explorer. Perfezionismo a parte perché non facessi inavvertitamente qualche pasticcio. E quindi l’ho nascosto: bisogna creare una nuova voce DWORD, nome NoDrives e valore decimale 1 per A, 2 per B, 4 per C, 8 per D, ecc. a seconda del disco da nascondere. Da me c’è 131072 perché la lettera è R.

nascondere-lettera-drive

 

 

La chiave va messa utilizzando regedit sotto:

 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpoliciesExplorer

Il disco è nascosto ma accesibile sia da riga di comando che da Windows Explorer se si indica la lettera.

Funziona?

Direi proprio di sì. Intanto l’hard-disk è molto più tranquillo. E poi sono riuscito ad arrivare quasi fino all’esaurimento della memoria virtuale (3,5 GB usati su 3,7 disponibili) senza che il PC ne risentisse: chiunque sa come si comporta il PC quando comincia a swappare in continuazione sa cosa intendo. Chi vuole, può spostare sulla Ramdisk anche la cartella TEMP, oppure la cache di IE, se vuole essere sicuro di cancellare ogni traccia.

Unico svantaggio che mi viene in mente: ho ridotto la memoria disponibile a 3,7 GB (3 GB RAM + 700 MB RamDisk): con un file di paging su disco avrei avuto molto di più perché avrei creato il file di swap grande almeno quanto la RAM; almeno 7-8 GB in tutto di memoria a disposizione tra RAM e file di paginazione. Però molto più lenti. A parte questo e forse una qualche difficoltà extra nel caso di un ripristino, in cui Windows cerchi il pagefile.sys senza ancora aver inizializzato il disco virtuale, davvero non mi viene in mente niente. Tra l’altro per arrivare a tale consumo ho aperto l’impossibile, compresi un Vista e un Windows Seven, a cui avevo dedicato 1 GB l’uno, in una macchina virtuale.

Avevo letto – e ho  riletto anche adesso – che molti il file di paginazione lo disattivano del tutto. Non credo sia una buona idea, perché Windows se lo aspetta, si innervosisce se non lo vede, e lo crea magari da solo; magari anche solo 50 MB, ma 50 MB sono sempre un disco fisso che frulla. Così come ho fatto invece – cioè in verità come è venuto in mente a ’sto crucco innominato e probabilmente a molti altri - il file di paginazione è presente, è velocissimo perché in RAM, e soprattutto la RAM sarebbe comunque buttata via perché Windows (a 32 bit) non la gestisce.

Unici requisiti sono: una CPU che supporti PAE (tutte quelle attuali), una scheda madre che supporti PAE (molte, ma non tutte: se la scheda madre non vede i 4 o più GB di RAM ogni tentativo è vano); Windows qualcosa, che si accorge della cosa e parte da solo - senza nessun bisogno di flag nel boot.ini - in modalità PAE - e un programma a scelta che crei una RamDisk nell’area di memoria che Windows non usa come spiegato sopra. E’ chiaro che con un sistema operativo a 64 bit il problema non esiste.

 

5 Risposte a “Win XP (o Vista) 32bit. Che me ne faccio di 4GB di RAM?”

  1. WebMasta detto

    senti non so se dico una puttanata ( sicuramente la dico ) ma usare in questo modo la ram potrebbe aiutare i notebook a far durare di più la batteria vero ?

  2. Alessio Margutta detto

    Puttanate ne dico tante anch’io… quindi…
    Cmq in pratica non credo. Certo, se tu riuscissi a mandare a nanna il disco fisso… il difficile non è mandarlo a nanna, ma che dorma tranquillo senza niente e nessuno che lo svegli. E secondo me se lavori sul notebook finisci per cliccare su qualcosa che non è né in RAM né sul file di paging. A maggior ragione se non sposti la cache di Explorer o il tuo profilo (io ad esempio non l’ho fatto perché non voglio che venga cancellato tutto quando spengo il PC).
    Insomma, in teoria forse sì, ma in pratica sono quasi sicuro del contrario: tanto sbattimento per nulla. Ad ogni modo prova, e magari fai un fischio.

    PS: rileggo adesso le puttanate che ho scritto io. Rimango dell’idea che è una stupidaggine creare una RamDisk per aumentare le prestazioni del PC se la RamDisk va a diminuire la memoria disponibile del sistema. Sono sempre convinto che non sia una buona cosa togliere del tutto il file di paging. Però si potrebbe volere una RamDisk a scapito della memoria solo per avere un PC più tranquillo. In questo caso – posto di avere almeno 2 GB – mi orienterei su una RamDisk di 128-256 MB, che non tolgono tantissimo alla RAM, ma che probabilmente aiutano ad avere un PC più silenzioso.

    saluti.

  3. WebMasta detto

    ok grazie per la risposta, per qualche strano motivo questo articolo a sollecitato molto la mia fantasia. in genere la mia ram in caso di sovraccarico lavora al massimo al 70% quindi mi sono chiesto se era possibile cercare di far risparmiare un pò di batteria al mio portatile. appena ho un pò di voglia e di tempo magari faccio una prova e commento nuovamente l articolo

  4. Gabro detto

    Ciao, a me pare proprio che windows vista se li macini tutti i 4 GB di ram (anche la versione a 32 Bit) poi magari mi sbaglio ma il mio Process Explorer mi tiene la parte…

    Al momento io ha acquistato un NoteBook (Toshiba A300) con 4 GB di ram installata e il SO a 32 Bit e li vede tutti (oltre ad utilizzarli) a differenza di come accadeva con il caro XP Professional.

    l’unico caso in cui il sistema operativo no vede tutta la ram (anche se la ram installata e < 4GB) è quando c’è la scheda video con la memoria condivida… in questo caso la scheda video alloca per se un tot di ram, non più visibile al sistema operativo

    credo che questa sia l’unica pecca del sistema operativo microsoft (per lo meno la versione Professional).

    ciao a tutti… buona Giornata

  5. Alessio Margutta detto

    io e Gabro ci siamo scambiati qualche e-mail in privato, che non pubblico, non perché ci fosse chissà cosa, ma erano private e non so sarebbe d’accordo.

    Insomma: ha 3 GB e qualcosa pure lui.
    Unica cosa: Vista (mi pare dal SP1 in poi) mostra sotto proprietà del computer 4 GB, cioè la memoria fisicamente installata. Ma basta dare un’occhiata al taskmanager per accorgersi che un sistema microsoft a 32 bit sempre e solo 3,qualcosa gestisce.

Lascia un commento

XHTML: Puoi usare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>