Hallo,
Hier gibt es doch bestimmt einige c++-Xperts.
Ich hab bei einem Programm bei mir festgestellt, daß das "deleten" von Feldern erheblich länger dauert, als das Anlegen von Feldern. Bei dem Programm werden oft große Datenfelder unterschiedlicher Größe angelegt und wieder gelöscht. Daher ist dieser Umstand sehr ungünstig.
Ist das Normal, daß der Unterschied bei Faktor 10-20 liegt? Oder begehe ich hier an irgendeiner Stelle einen grundlegenden Fehler!?
Danke für die Hilfe.
code:
Ausgabe:
Hier gibt es doch bestimmt einige c++-Xperts.
Ich hab bei einem Programm bei mir festgestellt, daß das "deleten" von Feldern erheblich länger dauert, als das Anlegen von Feldern. Bei dem Programm werden oft große Datenfelder unterschiedlicher Größe angelegt und wieder gelöscht. Daher ist dieser Umstand sehr ungünstig.
Ist das Normal, daß der Unterschied bei Faktor 10-20 liegt? Oder begehe ich hier an irgendeiner Stelle einen grundlegenden Fehler!?
Danke für die Hilfe.
code:
Code:
QTime t;
t.start();
double** data = new double*[1300];
for (int i=0;i<1300;i++) data[i] = new double[1300];
cout << "needed to create: " << t.elapsed() << " mseconds"<<endl;
t.start();
for (int j=0;j<1300;j++) delete [] data[j];
delete [] data;
cout << "needed to delete: " << t.elapsed() << " mseconds"<<endl;
Ausgabe:
Code:
needed to create: 31 mseconds
needed to delete: 484 mseconds