10 Stimmen

Geteilte Zeiger und die Leistung

Ich benutze seit einiger Zeit Shared Pointer, und ich habe Leistungsprobleme in meinem Programm... Daher würde ich gerne wissen, ob Shared Pointer zu einer Leistungsabnahme führen. Wenn ja, wie stark? Vielen Dank.

Mein Programm ist mehrfädig, und verwendet std::tr1::shared_ptr

1voto

stefaanv Punkte 13390

Etwas, das die Leistung beeinträchtigen könnte, ist das übermäßige Übergeben von shared_ptr als Funktionsparameter. Eine Lösung dafür wäre die Übergabe von Referenzen an shared_ptr. Dies ist jedoch eine Mikro-Optimierung, also tun Sie es nur, wenn es wirklich benötigt wird

bearbeiten: Beim Nachdenken darüber, gibt es bessere Möglichkeiten zur Optimierung:

  • Wenn Sie den Zeiger übermäßig übergeben, sollten Sie dem Objekt wahrscheinlich erlauben, etwas zu tun, anstatt es herumzuschleppen.
  • Sie können (const) Referenz an das Objekt anstelle des Zeigers übergeben
  • geben Sie eine Referenz auf den Zeiger weiter, wenn der Zeiger geändert werden muss

0voto

T.E.D. Punkte 42630

Erraten Sie nicht über die Leistung: Profilieren Sie Ihren Code.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X