Mam taki problem:
class IUnmanagedTest
{
public:
virtual void test() = 0;
};
class UnmanagedTest : public IUnmanagedTest
{
public:
virtual void test()
{
};
};
int __clrcall main(array<System::String > args)
{
IUnmanagedTest* t = new UnmanagedTest();
long time = clock();
for(int i = 0; i < 3000000; i++)
{
t->test();
}
Console::WriteLine(clock() - time);
delete t;
Console::ReadLine();
return 0;
};
toto na moim komputerze wykonuje sie okolo 3 sekund, ale jak odpalic to w niezarzadzanym c++ to praktycznie czas jest niemierzalny i tak samo jest jezeli zamienie ta klas i interfajs na klasy managed czyli z ref na poczatku. Generlanie chodzi mi o to dlaczego tak sie dzieje ze predkosc az tak sie różni w przypadku klas niezarzadzanych w zarzadzanym kodzie (tylko dla metod wirtualnych tak jest) ze czas samego wywolania jest taki duzy? Pytam bo mam napisane duzo kodu w niezarzadzanym c++ i jest tam mnostwo metod wirtualnych a chcialem to przeniesc opakowujac do zarzadzanego c++.