Diese Frage mag ziemlich elementar klingen, aber ich hatte diese Diskussion mit einem anderen Entwickler, mit dem ich zusammenarbeite.
Ich habe darauf geachtet, dass ich die Dinge, wo es möglich war, im Stapel zugewiesen habe, anstatt sie im Heap zuzuweisen. Er sprach mit mir und schaute mir über die Schulter und meinte, das sei nicht nötig, weil sie leistungsmäßig gleich seien.
Ich hatte immer den Eindruck, dass die Vergrößerung des Stacks eine konstante Zeit ist und die Leistung der Heap-Allokation von der aktuellen Komplexität des Heaps abhängt, sowohl bei der Allokation (Finden eines Lochs der richtigen Größe) als auch bei der Deallokation (Zusammenlegen von Löchern, um die Fragmentierung zu reduzieren, da viele Standardbibliotheksimplementierungen Zeit benötigen, um dies während des Löschens zu tun, wenn ich mich nicht irre).
Dies scheint mir etwas, das wahrscheinlich sehr Compiler-abhängig sein würde. Für dieses Projekt im Besonderen verwende ich eine Metrowerks Compiler für den PPC Architektur. Einblicke in diese Kombination wären sehr hilfreich, aber was ist generell bei GCC und MSVC++ der Fall? Ist die Heap-Zuweisung nicht so leistungsfähig wie die Stack-Zuweisung? Gibt es keinen Unterschied? Oder sind die Unterschiede so gering, dass eine Mikro-Optimierung sinnlos ist.