Господа втыкающие as везде где не нужно продолжают упорствовать, посему маленький тестик:
using System;
using Utils;
class Test
{
static void Main()
{
object x = "test";
string s;
const int iterCount = 1000000000;
PerfCounter pc = new PerfCounter();
pc.Start();
for (int i = 0; i < iterCount; i++)
s = (string)x;
Console.WriteLine("() : {0}", pc.Finish());
pc.Start();
for (int i = 0; i < iterCount; i++)
s = x as string;
Console.WriteLine("as : {0}", pc.Finish());
}
}
Запускаем под 1.1
() : 8,71364
as : 7,532845
Итого имеем разницу чуть больше 1 секунды на миллиард(!) итераций на дохленьком 1.8 целероне. Следовательно очень малое чисо реальных алгоритмов получат хоть сколько нибудь ощутимый прирост производительности. Ну да ладно, дальше будет еще интереснее.
На этот раз возьмем майский 2.0 и запустим тот же тест.
() : 4,796628
as : 7,217548
Гы гы, это называется приплылы
.
Мораль сей басни такова — никогда не занимайтесь оптимизацией без крайней на то необходимости.
... << RSDN@Home 1.1.4 beta 2 >>
29.06.04 23:18: Перенесено из '.NET'
10.08.04 18:42: Перенесено модератором из 'Философия программирования' — AndrewVK
11.08.04 11:04: Перенесено из '.NET'
21.05.05 17:33: Перенесено модератором из 'Философия программирования' — AndrewVK