Newsgroup: it.comp.programmare
Titolo: Programmi che rileggono continuamente chiavi dal registro?

Ho scaricato ProcMon e mi sono divertito un pň a dare un'occhiata a cosa 
succede sulla mia macchina.
 
Ho visto che tanti programmi passano il tempo a leggere e rileggere 
sempre le stesse chiavi del registro di windows ogni pochi decimi di 
secondo O_O
 
Ma perché lo fanno???
Il primo a farlo, e pure massicciamente, č explorer.exe, l'interfaccia 
utente di windows, ma molti altri fanno lo stesso.
 
La cosa crea ancora piů traffico perché ad ogni lettura di chiave scatta 
anche l'antivirus che controlla i file del programma che effettua la 
lettura :-(
 
Non capisco perché questo comportamento. Se un programma vuole avere il 
valore sempre aggiornato di un parametro puň fare un controllo ogni 
secondo, invece di stare sempre lě a fare query su query. O no?

Hai appena scoperto perché il registro di sWindows è un'emerita
minkiata. E' un immenso calderone guazzabuglio che aumenta di peso
via via sempre di più oltre a tantissimi inconvenienti che comporta
la sua stessa natura...
 
In Linux invece, OGNI programma ha il SUO file di configurazione.
Semplice, pulito, immediato, ordinato, ecc...
 

 secondo, invece di stare sempre lì a fare query su query. O no?
 
Premetto che non ho la più pallida idea dei meccanismi interni del kernel di
windows, o meglio, posso solo intuirli.
 
Come prima cosa, il fatto di rileggere volte su volte lo stesso file non pesa
sulle performance più di una syscall, visto che leggi da un buffer (e ancora
molto probabilmente si tratta di una syscall veloce, per cui senza salvataggio
di contesto). Sempre probabilmente la richiesta di valori di registro deve
passare una cache sulla chiamata alle API, per cui non c'è neppure la syscall
a meno di una invalidazione.
Quindi direi che, a livello di sistema, è un'operazione che pesa quasi nulla.
 
Sul fatto dell'antivirus, invece, beh, è così deve funzionare: un utente che
ne installa uno dev'essere consapevole dell'immenso overhead che questo
comporta su ogni singola operazione.
 
Ciao!

 secondo, invece di stare sempre lì a fare query su query. O no?
 
Esistono chiavi a contenuto dinamico che per forza devono essere lette
Per quelle a contenuto statico basterebbe una sola lettura
ma comunque sta al singolo programma decidere come e quando effettuare 
le letture
Se il tuo problema è l' av che controlla le chiavi prova a guardare se 
sia possibile disattivare questi controlli
 
 

 Esistono chiavi a contenuto dinamico che per forza devono essere lette
 
Esistono anche i meccanismi di notifica, io mi registro per i cambi su 
una certa chiave e ricevo la callback opportuna quando questa viene 
modificata. Sempre meglio del polling attivo.
 
-- 
Andrea
 

 Semplice, pulito, immediato, ordinato, ecc...
 
Questo perché i sistemi basati su linux sono essi stesse una 
accozzaglia di programmi dalle provenienze più varie, non c'è una 
pianificazione centrale. Non è certo per un desiderio di pulizia e 
ordine.
 
E comunque non è che sia obbligatorio cambiare argomento alla 
discussione pur di sollecitare il flame. Che l'OP si diverta con 
Windows, se va bene a lui buona camicia a tutti.
 
 
-- 
Andrea
 


Hai ragione,l' avevo dimenticato
Da una piccola ricerca ho trovato che si chiama RegNotifyChangeKeyValue
 
 


 
 
Appunto, lasciamo stare i flame
 
 


Peccato che il trend recente sia copiazzare Windows; vedi dconf.
 
 
Ciao  Manlio


Sinceramente non porterei roba Gnome o derivati come esempio di chiarezza,
pulizia o buona architettura, anzi.
 
Ciao!

 Semplice, pulito, immediato, ordinato, ecc...
 
Totalmente incasinato invece, perchï¿œ OGNI file di config ha sintassi 
propria e diversa dagli altri, e ce ne sono millemila. E ogni distro se 
li sposta a capocchia, per di piï¿œ. Per cui non puoi usare nessuno 
strumento di amministrazione automatizzato se non per uno o due 
programmi, ma il sistema nel suo complesso lo puoi gestire solo con un 
editor e le manpage sotto il naso, perchï¿œ voglio vederti a ricordare a 
mente i dettagli di tutte le varie sintassi :-)
 
Il motivo per cui sotto Linux nessuna distro ha mai tirato fuori un tool 
di configurazione unico per tutto il sistema (e ci hanno provato, oh se 
ci hanno provato) ï¿œ proprio perchï¿œ Linux non ha un registro di 
configurazione tipo quello di Windows: che ï¿œ un'ottima idea, ma che 
purtroppo ï¿œ realizzata male.