Per sicurezza la funzione turbo Š inizialmente disabilitata. Ô possibile attivarla dall'oggetto "Impostazioni &xwp;".
I miglioramenti nella velocit… dell'apertura delle cartelle sono descritti in questa pagina. A partire dalla versione V1.0.1, attivando le cartelle turbo si abilita anche il meccanismo delle associazioni avanzate (non farlo rendeva instabile la WPS). Si veda Associazioni per tipo di file avanzate per una descrizione dettagliata di questa funzione.
Descrizione breve
Quando una cartella viene aperta nella WPS per la prima volta, essa viene "popolata" - ovverosia, i file vengono recuperati dalla directory rappresentata da quella cartella. Come forse sar… noto, la WPS non gestisce bene grandi quantit… di file. Aprire cartelle con molti oggetti (mille file o pi—) pu• bloccare il sistema per minuti interi.
Le "Cartelle turbo" correggono, almeno in parte, il problema. Qui sotto Š riportato un confronto
relativo ad alcune cartelle "patologiche", in cui mostro il tempo in secondi richiesto sul mio
sistema per popolarle. Questo confronto considera solo il tempo necessario ad
invocare la stringa di impostazione QUICKOPEN=IMMEDIATE
.
Naturalmente, i risultati su altre macchine possono variare, dipendendo dalla velocit… delle unit…
disco e del processore/processori.
turbo off turbo on Cartella JFS 160 s 53 s con 10000 file Cartella JFS 211 s 60 s con 13000 file Cartella HPFS 56 s con 10000 fileApparentemente il tempo impiegato normalmente dalla WPS per popolare le cartelle cresce esponenzialmente con il numero di file nella cartella.
Descrizione in dettaglio
Essenzialmente, la funzione "Cartelle turbo" Š la completa riscrittura del codice che popola le cartelle. &xwp; usa le seguenti tecniche per velocizzare l'operazione:
DosFindFirst
e
DosFindNext
), e l'altro controlla la situazione dell'oggetto e
crea un nuovo oggetto, se necessario (se l'oggetto non Š gi… "sveglio").
A seconda del tipo di file system le due API citate possono essere molto lente se bisogna raccogliere gli attrbuti estesi (come nel caso della WPS). Mentre questo accade il thread chiamante Š bloccato, e non fa altro che aspettare che i dati arrivino dal disco rigido. Questo tempo sprecato pu• essere usato dal secondo thread per creare l'oggetto in memoria, altro compito che pu• consumare tempo.
In aggiunta, usare due thread d… maggiore scalabilit… su sistemi multi-processore (SMP).
Questi due accorgimenti rendono molto pi— veloce la popolazione delle cartelle. Il
tempo necessario a popolare una cartella Š pressoch‚ uguale a quello speso
nel chiamare le API di sistema
DosFindFirst
e
DosFindNext
, quindi non credo sia possibile diminuirlo ulteriormente di molto
(a meno che qualcuno riesca a rendere pi— efficenti queste due API).
Il codice di WPS per caricare le icone ha per• parecchie limitazioni. Pi— importante, risulta essere lento. Anche questo codice Š stato totalmente rimpiazzato in &xwp;.
In aggiunta, la WPS non sembra tentare di condividere icone tra gli oggetti. &xwp; tenta invece di riutilizzare le icone per gli oggetti, cosŤ da evitare di doverle ricaricare dagli eseguibili tutte le volte.
Essenzialmente, non permetto pi— alla WPS di cercare le icone nei file eseguibili ma uso solo il mio codice. Questo funziona per gli eseguibili di tipo LX e Win16, e per gli eseguibili OS/2 NE. Le risorse Win32 PE (usate dalla maggior parte dei programmi per Windows 95 o superiori) sono attualmente non accettate; i file PE vengono identificati da un'icona predefinita, il che garantisce per lo meno che la WPS non si blocchi pi— durante la ricerca dell'icona.
Come effetto collaterale, questo cambia il comportamento per le icone Win16 se le dimensioni delle icone di sistema sono 40x40; invece che scalarle, &xwp; le centrer… a 32x32.