Har en liten undran om Decimal i c#. Det kallas för Operator Overloading, och innebär att operatorer som +.-./,*,==,!= o s v kan definieras i en klass. I det här fallet byter kompilatorn ut operatorn + mot ett funktionsanrop till funktionen Add. Du kan alltså göra en Matris-klass och definiera hur operatorn + skall fungera på en Matris. Kollade i reflector och saga att allt operatorn gjorde var att kalla Decimal.Add-metoden. Den extra tiden borde da rimligtvis vara den extra overhead som ett extra metod-anrop ger... >Den extra tiden borde da rimligtvis vara den extra overhead som ett extra metod-anrop ger...Decimal och berakningar
I klassen finns det statiska metoder inkluderade for berakning: Add, Subtract, Multiply och Divide
Undrar egentligen vad det gor for skillnad gentemot vanliga operatorer?
Ex:
result = Decimal.Add(var1, var2);
vs.
result = var1 + var2;
Gjorde en liten test-app som itererade igenom en massa berakningar pa bada satten och sag att det var ca 0.5 sekunder snabbare for 40 000 000 berakningar att anvanda Decimal-metoderna.
Varfor? Och finns det andra fordelar ocksa?
mvhSv: Decimal och berakningar
Skillnaden i tid tror jag nog beror på att din dator var olika upptagen när du mätte. Det borde bli identiskt kod, men som redan sagts, det kan du kolla med Reflector...Sv:Decimal och berakningar
Sv: Decimal och berakningar
Möjligtvis i debug läge eller något sådant. I verkligheten kommer JIT kompilatorn att ta bort det extra metodanropet så koden blir identisk.
Att du får en tidskillnad visar bara hur svårt det är mäta skillnader