newbie ws napisał(a)
No dobra, ale zakładając, że moje umiejętności w programowaniu są identyczne jeśli chodzi o C++ i C#, czyli, że napiszę najbardziej optymalnie kod i w C++ i w C# to chyba jednak zawsze wygra C++ - co nie?
Jeśli będzie to np. algorytm kompresujący danych, to prawdopodobnie tak. Jeśli będzie to spory system bazodanowo-sieciowy z tysiącami obiektów, to raczej nie - bo co innego będzie miało wpływ na wydajność.
No i pozostaje pytanie w którym miejscu odczuję tą prędkość? czy będzie to tylko przy uruchamianiu programu, kompilacji czy może również przy wykonywaniu obliczeń
Kompilacja (kompilatorem) w C++ to chyba jest najwolniejsza właśnie, pierwsze uruchomienie programu w .NET będzie wolniejsze, a co do obliczeń to zależy - przy mało skomplikowanym algorytmie różnicy nie będzie, przy bardziej skomplikowanym może być, a przy aplikacji, która nie jest algorytmiczna różnica w wydajności może się odwrócić na rzecz .NET.
Za to najwolniejsze będzie tworzenie programu w C++, gdzieś tak 4 razy wolniejsze niż w C#.
np. gdy mam jakąś tablicę z 10^10 zmiennymi double i chciałbym je przemnożyć przez inną tablicę z taką samą ilością zmiennych to czy w takim przypadku rodzaj języka ma znaczenie? Czy C++ szybciej wykona te działania czy może w tym przypadku prędkość będzie taka sama a szybkości należy upatrywać w innym miejscu?
W tym konkretnym przypadku nie. No chyba, że użyjesz CUDA, ale nic o tym nie pisałeś, ciągle próbujesz porównywać języki, a nie technologie.
BTW, nie ma czegoś takiego jak "najbardziej optymalnie". Albo coś jest optymalne albo nie.