Durante il test di un server multicast UDP che ho scritto su Windows 7 Ultimate x64, mi sono imbattuto in una cosa più curiosa. Riproduzione di musica con foobar2000 sullo sfondo in modo significativo migliorata La velocità di trasmissione del server, ma ha anche incontrato minori perdite di pacchetti. Disattivando immediatamente la musica, la velocità di trasmissione è scesa a livelli inferiori a quelli accettabili, ma ha anche prodotto una perdita di pacchetti pari a 0. (Ho un'applicazione client che comunica con il server e riporta pacchetti non riconosciuti)Best practice di applicazioni di rete ad alte prestazioni
Sono consapevole del comportamento di Vista (e su) per far funzionare bene i media e le applicazioni di rete, ma di certo non mi aspettavo che suonasse la musica migliorerebbe le prestazioni della rete, né che la disattivazione delle prestazioni di rete degradate fosse così significativa.
Cosa posso fare su questo dal punto di vista del codice nella mia applicazione server in modo che funzioni in modo coerente sia che si riproduca musica o meno su Vista e su? Vorrei certamente evitare di dover informare tutti i miei clienti su come modificare il loro registro per ottenere velocità di trasmissione accettabili, e vorrei anche evitare di farli semplicemente "riprodurre musica" per ottenere anche tassi di trasmissione accettabili. L'applicazione dovrebbe "funzionare" secondo me.
Sto pensando che la soluzione implichi qualcosa sulla falsariga delle priorità del processo, MMCSS, o forse qualche altra oscura chiamata API di Windows per farlo fare qui The Right Thing (TM).
Inoltre, scusate ma la creazione di un caso di test riproducibile è una quantità non trascurabile di lavoro. Il comportamento di limitazione si verifica solo quando il driver per la scheda di rete fisica sta funzionando attivamente e non può essere riprodotto utilizzando l'interfaccia di loopback. Uno avrebbe bisogno di un'implementazione del client, un'implementazione del server e l'hardware della rete fisica con cui testarlo.
quando dici "sta suonando musica", intendi che sta riproducendo musica del tuo HD e utilizzando la scheda audio? O è in streaming tramite la stessa scheda di rete? – Toad
@reinier: Sì, foobar2000 sta caricando lentamente i dati dall'HD e lo streaming audio all'interfaccia audio esterna tramite USB 2.0. –