posts - 4238, comments - 3946, trackbacks - 370

My Links

News



Subscribe Subscribe

image image image





This is my personal weblog. These postings are provided 'AS IS' with no warranties, and confer no rights. The views expressed on this weblog are mine alone and do not necessarily reflect the views of my employer.

Licenza Creative Commons

Tag Cloud

Archives

Post Categories

Alla faccia di chi mette le info nel registry... :-D

Leggete tutto questo post... e poi vediamo se siete ancora convinti sia il posto migliore...

The registry is a convenient place to record persistent cross-process data in a uniform and multi-thread-safe manner. It roams with the user if you store it in HKEY_CURRENT_USER, and individual keys can be secured (even on systems that use FAT, which doesn't otherwise support security).

But that doesn't mean that it's free.

The cost of opening a key, reading a value, and closing it is around 60,000 to 100,000 cycles (I'm told). And that's assuming the key you're looking for is in the cache. If you open the key and hold it open, then the act of reading a value costs around 15,000 to 20,000 cycles. (These numbers are estimates for Windows XP; actual mileage may vary.)...

Continua alla fonte: The performance cost of reading a registry key

Print | posted on mercoledì 22 febbraio 2006 18:05 |

Feedback

Gravatar

# re: Alla faccia di chi mette le info nel registry... :-D

vallo a dire alla Microsoft allora!
22/02/2006 18:21 | Zio
Gravatar

# re: Alla faccia di chi mette le info nel registry... :-D

E' il posto migliore.
E' multithread safe, persistente, e supporta naturalmente i profili roaming.
100000 cicli non sono nulla in fase di inizializzazione e cachando il valore della chiave di registro come consigliato nel post che linki, il problema sparisce.
Il costo di aprire un file, leggere il settaggio e chiuderlo (l'alternativa) non è molto migliore (se non peggio).

22/02/2006 18:38 | Purplet
Gravatar

# re: Alla faccia di chi mette le info nel registry... :-D

Io non credo che il registry sia il posto giusto o sbagliato.
Credo solo che bisogna pensare anche alle implicazioni, ad esempio se devo leggere 100.000 valori, forse faccio prima da un file di configurazione, se devo leggere una sola chiave no.
E sicuramente devo cachare e non leggere ogni volta direttamente...
22/02/2006 18:41 | Lorenzo Barbieri
Gravatar

# re: Alla faccia di chi mette le info nel registry... :-D

Qualche buon motivo per NON usare i file :

1) Gestire i roaming profile sono dolori
2) Se ti serve proteggere l'accesso, il registry lo può fare anche su file system FAT
3) Il registry è automaticamente protetto da utente a utente
4) Scoraggia l'utente dal cambio manuale delle impostazioni
5) Il registry è automaticamente Unicode compliant. La lettura è molto semplice e non si rischia ti trovarsi in un formato diverso perchè l'utente l'ha editato a mano.
6) Leggere dal registry è per natura immune da problemi tipo diversa directory corrente, etc.
7) Se ti si sfonda il registry sono più dolori per il resto che per l'applicativo
8) Gestire settaggi user based con i file è un gran dolore
9) Il registry ha per natura compatibilità migliore su un terminal server (nessuna probabilità di non riuscire a entrare perchè il file dei settaggi è locckato..)
22/02/2006 20:54 | .
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET