Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, lkj, Вы писали:
lkj>>Попробовал скомпилировать C++ проект для .NET (MSVС++ 7.1) и заметил, что вызов виртуальной функции выполняется примерно 700 тактов. lkj>>Можно это как-нибудь ускорить?
L>Какой вызов? Первый?
Нет. Делаю в цикле:
struct I1 { virtual int f1(int t) = 0; };
struct C1: public I1 { virtual int f1(int t) { return t; } };
int g1(I1 *i1)
{
int s = 0;
for (int i = 0; i < 10000000; i++)
s += i1->f1(i);
return s;
}
int main()
{
C1 c1;
return g1(&c1);
}
Выполняется раз в 100 медленнее варианта на чистом C++ или на C#.