lukagrom wrote: Podobno w starych czasach, gdy moc obliczeniowa nie była największa i algorytmika, miała spore znaczenie na czas realizacji programu, to w kwestii wykorzystania pamięciożernych operacji na dynamicznych tablicach czy strukturach, było zapatrywanie by robić coś takiego w C z użyciem malloc/free, pewnie nadal tak jest, jednakże przy współczesnej technologii i mocy para dla C++ new/delete już nie jest wypasioną ekstrawagancją i pewnie nie ma to już żadnego znaczenia, zwłaszcza że powstały już nowe operatory dynamicznego tworzenia jak np gcnew dla Visual C++, który zwalnia pamięć, dopiero po zakończeniu działania programu, więc powyższe "rozterki oszczędnościowe" dla dzisiejszej mocy obliczeniowej to tylko pewnie płytka dywagacja.
1. możesz użyć interpunkcji?
2. Nie ma operatora gcnew w języku C++. Nie siej zamętu. Za to jest, coraz bardziej outdated, język C++/CLI, który jest wzorowany/posiada elementy C++ i jest przeznaczony do środowiska zarządzalnego, jako ubogi krewny C#
3. Nie mieszaj innych modeli gospodarki pamięcią (choć takie oczywiście są) do C/C++, pytanie jest bardzo seletywne
4. Program w konwencji C/C++ tez nie w 99.9% zwraca pamięci do systemu
Dodano po 11 [minuty]:
Dżyszla wrote: Jeśli rezerwujesz pamięć raz, dwa podczas operacji to stawia się na wygodę. Ale jeśli będziesz musiał to robić milion razy, to czynniki wydajnościowe mogą być istotniejsze i schodzi się do niższego poziomu, jeśli jest on bardziej wydajny, nawet kosztem większej trudności zaprojektowania i utrzymania kodu.
Plotki i pogłoski w/s wydajności ... tak sobie znajdują potwierdzenie w życiu. Jest sobie taki serwer Apache Qpid, który ma dwie implementacje, C++ oraz w języku zarządzalnym, w tym wypadku Java. I tu miejsce na zagadkę:
który jest bardziej wydajny?
(mam świadomość że odczucie wydajności trzeba zdefiniować : throughput, latency, miara centylowa i inne miary)
EDIT: nie należy w kodzie C++ używać malloc/free, choć pewnie 100x będzie działać, a 101szy wdeptujemy na minę.