Mi chiedo se ci sono dei benchmark che possono aiutare a capire le caratteristiche in tempo reale (tempo di risposta) del software non in tempo reale. Ad esempio l'applicazione C # su Windows o MSSQL Server.
So che Windows non è un sistema operativo in tempo reale, tuttavia non ci impedisce di usarlo nel sistema Real-time se ci sono altri livelli in tempo reale.
Diciamo che abbiamo un sistema in tempo reale, che legge e memorizza i dati da alcuni ADC. I dati vengono letti da ADC e timestampati su FPGA con alcuni firmware in tempo reale. Quella parte del sistema è responsabile del prelievo di campioni da ADC con un intervallo preciso (frequenza w / 10kHz) e per la registrazione cronologica dei dati. Successivamente i campioni del pacchetto firmware nel pacchetto dati (diciamo 0.1 sec) trasferiscono i dati via TCP / IP all'applicazione sul computer Windows. La macchina Windows dovrebbe memorizzare i dati e visualizzarli. Sì, l'applicazione su Windows non è in tempo reale, così come la connessione TCP / IP non garantisce la consegna dei dati in tempo fisso. Ad esempio
- in alcuni casi il trasferimento dei dati potrebbe richiedere 0,01 secondi e 1 secondo in un altro caso.
- Windows potrebbe interrompere i thread dell'applicazione per qualche secondo.
- l'applicazione potrebbe interrompersi da sola quando Garbage Collector funziona
quindi, potremmo avere qualche secondo interrupt nella parte del sistema che va oltre Controller / Firmware. Cioè il tempo di risposta dal sottosistema non in tempo reale varia in alcuni intervalli. Tuttavia questo problema potrebbe essere risolto se c'è abbastanza buffer sul controller, quindi può accumulare dati in attesa di risposta da sottosistema non in tempo reale.
Per essere sicuri che il buffer sul sottosistema in tempo reale sia abbastanza grande da supportare il sottosistema non in tempo reale, dobbiamo capire la distribuzione della probabilità del tempo di risposta. Qualcosa come:
- tempo di risposta < 1sec nell'80% dei casi
- 1sec
- 2sec
- 5sec
- 10sec
Questa è fondamentalmente la domanda. Qualche benchmark per Windows, C # o MS SQL? Qualsiasi metodo?
TPC offre ottimi benchmark per le prestazioni dei server SQL, tuttavia offre prestazioni totali e non considera il tempo di risposta AFAIK.