makka
17-12-2007, 16:05
Ciao,
ho un applicativo che quando riceve un particolare evento, fa suonare al pc un "beep"...... insomma, la cosa piu' semplice del mondo !!!
Il "beep" e' un file wav e viene fatto suonare utilizzando i metodi del namespace
System.Media del nuovo framework Net 2.0.
Per le nostre simulazioni in laboratorio facciamo gestire all'applicazione una grande quantita di eventi, tipo 3-4 al secondo..... di conseguenza vengono
generati altrettanti "beep".
Sui vecchi pc single core nessun problema......
sui nuovi pc dual core invece ne succedono di tutti i colori.
Se non forziamo l'applicativo a girare solo su uno dei core (mediante l'affinity)
gli eventi vengono "cadenzati" dalla durata del suono e visto che il "beep" dura 500ms, non si riesce a gestirne piu' di 2 al secondo. Ovviamente il bip viene suonato in maniera "asincrona".
Forzando l'applicativo a girare utilizzando solo uno dei due core disponibili, le performance tornano ad essere buone...... ma c'e' un effetto collaterale: l'orologio di sistema accelera !!!
Sul pc di test riesce a guadagnare circa 1.5 secondi ogni minuto.....
ogni ora "qualcosa" si accorge di questa accelerazione e rimette l'orologio a posto, allineandolo all'RTC, scombussolando tutti i dati, visto che c'e' un salto all'indietro di 90sec.
In rete ho trovato messaggi che lamentano un "rallentamento" dell'orologio quando si impegna troppo la cpu....... ma non ho mai trovato nessuno che parla di accelerazione.....
Se qualcuno ha qualche idea.....
Grazie.
ho un applicativo che quando riceve un particolare evento, fa suonare al pc un "beep"...... insomma, la cosa piu' semplice del mondo !!!
Il "beep" e' un file wav e viene fatto suonare utilizzando i metodi del namespace
System.Media del nuovo framework Net 2.0.
Per le nostre simulazioni in laboratorio facciamo gestire all'applicazione una grande quantita di eventi, tipo 3-4 al secondo..... di conseguenza vengono
generati altrettanti "beep".
Sui vecchi pc single core nessun problema......
sui nuovi pc dual core invece ne succedono di tutti i colori.
Se non forziamo l'applicativo a girare solo su uno dei core (mediante l'affinity)
gli eventi vengono "cadenzati" dalla durata del suono e visto che il "beep" dura 500ms, non si riesce a gestirne piu' di 2 al secondo. Ovviamente il bip viene suonato in maniera "asincrona".
Forzando l'applicativo a girare utilizzando solo uno dei due core disponibili, le performance tornano ad essere buone...... ma c'e' un effetto collaterale: l'orologio di sistema accelera !!!
Sul pc di test riesce a guadagnare circa 1.5 secondi ogni minuto.....
ogni ora "qualcosa" si accorge di questa accelerazione e rimette l'orologio a posto, allineandolo all'RTC, scombussolando tutti i dati, visto che c'e' un salto all'indietro di 90sec.
In rete ho trovato messaggi che lamentano un "rallentamento" dell'orologio quando si impegna troppo la cpu....... ma non ho mai trovato nessuno che parla di accelerazione.....
Se qualcuno ha qualche idea.....
Grazie.