Nemluvil jsem o rychlosti instalace, je jasné, že .NET Framework jako obludně velká sada knihoven, která toho umí asi tak 100x víc než VB6 runtime knihovny, se bude instalovat o něco déle. Jinak to, jestli je rychlejší aplikace ve VB6 nebo ve VB.NET, záleží především na tom, jak je aplikace napsaná a které komponenty používá. Nemůže nikdo čekat, že když ve VB6 udělám aplikaci s nějakou komponentou a tu samou aplikaci udělám ve VB.NET s jinou komponentou, která sice vypadá stejně a dělá to samé, ale vnitřně je napsaná úplně jinak a umí toho 50x víc, že to bude stejně rychlé. .NETí runtime je nesrovnatelně výkonnější a pokud jde o algoritmy a matematické funkce, tak se .NET přibližuje daleko víc výkonu C++ než výkonu VB6. Zkuste si napsat nějaké třídění velkého pole (stejný algoritmus) a pustit to ve VB6 a ve VB.NET, uvidíte, že .NET bude (i několikanásobně) rychlejší. Je to už docela dávno, ale zkoušeli jsme v C++ na linuxu spustit jeden program (počítap pí nebo tak něco) a pak jsme pustili na stejném počítači ten samý kód přepsaný do C#, .NET byl o 4% pomalejší oproti nativně kompilovanému a pro daný procesor optimalizovanému kódu pod linuxem. VB6 kompiloval sice (na rozdíl od VB5) do nativního kódu, ale nebyly tam skoro žádné optimalizace a všechno se dělalo přes runtimovou knihovnu, což dohně zpomalující. Vemte si třeba takovou práci s grafikou, všechny grafické funkce ve VB6 byly šíleně pomalé, když to člověk dělal přes Win API, tak to bylo třeba 50x rychlejší, to samé funkce pro práci se stringy a spousta dalších věcí. Je fakt, že v .NETu je každá složitější komponenta ve WinForms psaná opravdu dost robustně (takový DataGridView se vším, co potřebuje, má přes 3MB zdrojáků, což je vyváženo tím, že toho umí opravdu hodně, ale někde se to samozřejmě projevit musí). Navíc dojem z .NETu kazí to, že se kompiluje před spuštěním a jednotlivé metody se dokompilovávají až za běhu, takže první použití každé funkce je znatelně pomalejší. Rozhodně není objektivní srovnávat DB aplikaci ve VB6 a ve VB.NET. S výkonem v .NETu to fakticky není tak strašné (od verze 2.0), runtime je napsán opravdu dobře (dost se na něm podílejí i lidi z MFF UK). Co by mi na .NETu vadilo je paměťová náročnost, .NET si té paměti ukousne trochu víc (proto může být pomalejší než VB6, který si jí tolik nevezme, používá méně knihoven atd.), ale to je dáno principem technologie samotné.
|