Hallo,
ich habe ein StreamEvent, das ein paar tausendmal pro Sekunde getriggered wird (Kursdaten von einer Börse). Ich will nur die prozentuelle Veränderung zum letzten Börsekurs berechnen. Dafür muss ich das richtige Instrument aus einer Hashtable per Key finden und dann die Veränderung ausrechnen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| private double abw; void TPBrief_Brief(int SymbolNr, float NewPrice, float Volume, DateTime Time) { abw = (((InstrumentObject)os[SymbolNr]).LastPrice - NewPrice) / (((InstrumentObject)os[SymbolNr]).LastPrice/ 100); if (abw >= 1.5) { } |
Ich habe dazu mehrere Fragen:
1. Soweit ich mich informiert habe, ist ein Dictionary etwas schneller als der (alte) Hashtable - ist das richtig?
2. Kann man die Berechnung der prozentuellen Veränderung optimieren?
3. Was ist mit dieser Variante:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| void TPBrief_Brief(int SymbolNr, float NewPrice, float Volume, DateTime Time) { IntrumentObject io = ((InstrumentObject)os[SymbolNr]); abw = (io.LastPrice - NewPrice) / (io.LastPrice/ 100); if (abw >= 1.5) { } |
Ist die schneller als oben gezeigte?
Jeder Kommentar ist willkommen!