Was ist Programmoptimierung?
Programmoptimierung ist der Prozess der Änderung eines Computerprogramms so, dass das Programm schneller ausgeführt, weniger Ressourcen verbraucht oder im Allgemeinen mit einem höheren Effizienzniveau funktioniert. Die Optimierungsaufgabe kann automatisch von einigen Programmiersprachkompilern durchgeführt werden, indem ein Optimierungsprogramm oder manuell von Programmierern verwendet wird, die den Quellcode durchlaufen und versuchen, spezifische Verbesserungen vorzunehmen. Im Allgemeinen wird die Programmoptimierung mit einem bestimmten Zweck durchgeführt, da nur sehr wenige allgemeine Optimierungen an einem Programm vorgenommen werden können, das den optimierten Zustand eines anderen Teils des Programms nicht reduziert, was bedeutet, dass ein Programm normalerweise für Geschwindigkeit oder Ressourcenverbrauch optimiert werden kann, aber normalerweise nicht beides. Eine Komplikation, die mit einigen Arten der Optimierung auftreten kannSchwierig oder unmöglich in allen Situationen auf allen Plattformen zu implementieren, insbesondere mit interpretierten Sprachen, die Just-in-Time-Zusammenstellung verwenden.
Ein wichtiges Konzept in der Programmoptimierung ist die Idee, dass eine Optimierung normalerweise mit einem Preis entsteht. Ein Beispiel hierfür ist, dass, wenn ein Code -Stück optimiert wird, um schneller zu laufen, die Geschwindigkeitssteigerung zum Preis der Code -Lesbarkeit, der Speicherverwendung, der Programmflexibilität oder einer Reihe anderer Kosten erfolgen kann. Dies bedeutet, dass die Programmoptimierung ein gezielter Prozess sein muss, mit der Absicht, einen Aspekt eines Programms besser funktionieren zu lassen und gleichzeitig bereit zu sein, die Effizienz anderer Aspekte zu opfern.
verschiedene Arten der Programmoptimierung können in verschiedenen Phasen der Programmentwicklung durchgeführt werden. Während des Designs kann eine breite Optimierung durchgeführt werden, indem sichergestellt werden, dass ein Programm effektiv zu betreiben scheint. Beim ArbeitenG Mit dem tatsächlichen Quellcode können Optimierungen sicherstellen, dass es keine fremden Befehle, sich wiederholenden Anrufe oder schlecht geschriebene Funktionen gibt. Bei der Zusammenstellung werden viele Optimierungen automatisch vom Compiler durchgeführt und können durch die Verwendung verschiedener Compiler -Switches oder -anweisungen vom Programmierer geführt werden.
automatische Optimierungen, wie es bei einem Compiler- oder Widmungsoptimierungsprogramm auftreten kann, können häufig Tricks beinhalten, die für menschliche Programmierer zu komplex sind, um praktisch zu sein. Dies kann die Umzugsanweisungen in ein Programm beinhalten, damit sie aus der ursprünglich geschriebenen Reihenfolge ausgeführt werden, aber für den Prozessor effizienter. Es kann auch absichtlich absichtlich verschoben werden, um Ressourcen wie Speicherblöcke zu verlagern, damit sie schneller zugreifen können. Die meisten Programmoptimierung erfolgen automatisch auf Compiler -Ebene.
Eine Komplikation mit wiederholten oder aggressiven Programmoptimierung besteht darin, dass ein Programm, sobald es geändert wurde, um effizienter auszuführen, im Allgemeinen mehr DI wirdFicult, um für andere Zwecke zu ändern, z. B. Hinzufügen von Funktionen oder Behebung von Fehler. Dies kann auftreten, wenn die Optimierungen anfangen, das festgelegte Programmverhalten zu sperren, die nicht leicht geändert oder an einen neuen Code angepasst werden, ohne dass alle Optimierungen rückgängig gemacht werden müssen. Ein größeres Problem ist, dass in vielen Fällen ein optimiertes Programm weniger menschlich lesbar wird, da Tricks und Verknüpfungen anstelle von kurzen Befehlen und klassischen Kontrollstrukturen verwendet werden. Aus diesen Gründen gibt es häufig eine Ebene der Programmoptimierung, bei der es akzeptabel ist, zu stoppen, auch wenn drastische Codeänderungen ein Programm etwas effizienter funktionieren können.