È possibile ottimizzare un'applicazione .NET in esecuzione su una versione server di Windows per una comunicazione TCP a latenza quasi zero? O ci saranno sempre ritardi imprevedibili / inevitabili?
Ad esempio, durante la ricerca di app open source a bassa latenza ho trovato questa applicazione OpenPDC su Github che sembra essere la -facile applicazione standard per "raccolta di dati ad alte prestazioni" utilizzata da numerose utility di tutto il mondo. È anche utilizzato negli articoli accademici come strumento per valutare i ritardi di rete per i dispositivi di misurazione. Eppure, l'applicazione è scritta in .NET e funziona su Windows.
Sono a conoscenza delle "tecniche" utilizzate per ridurre GC in generale (meno generazione di rifiuti, allocazione statica e materiale simile), ma avevo ancora l'idea generale che Windows fosse "non un sistema operativo in tempo reale ", e che nulla può impedire al GC di mettere in pausa la tua app - puoi solo ritardare l'inevitabile.
Qualcosa è cambiato nelle recenti versioni di .NET / Windows Server che consentirebbero a questo tipo di applicazioni di funzionare con latenza prossima allo zero? È possibile che questa e altre applicazioni simili siano scritte in un modo che impedisce completamente la raccolta / blocco dei dati "stop-the-world" a causa della natura non in tempo reale di Windows o non è realistico aspettarsi che questo sia garantito?