2012-03-27 11 views
1

Während der Arbeit an mehreren Projekten, die mit Bildern arbeiten mussten (Größe ändern, zuschneiden, skalieren usw.), fand ich GD nicht gut mit großen Bildern aber ImageMagick ist langsamer als GD mit kleineren .Mit GD und ImageMagick zusammen

Also dachte ich, dass ich ein Skript machen könnte, das mit beiden (GD und ImageMagick) funktionieren könnte. Wenn ich eine große Bilddatei habe, verwendet mein Skript ImageMagick andernfalls GD. Aber alles hat seine schlechte Seite. Was ist die schlechte Seite dieser, aber leicht wachsenden Entwicklungszeit?

+1

Erhöht die Entwicklungszeit, die Softwarekomplexität, die Abhängigkeit von Bibliotheken von Drittanbietern, die Anzahl der erforderlichen Upgrades, da Bibliotheken von Drittanbietern Sicherheitslücken oder Fehler aufweisen. Nicht davon ist Raketenwissenschaft. Wenn die Leistung wirklich so wichtig für Sie ist, bauen Sie einen Hybrid. Vielleicht als eine Bibliothek, so dass Sie immer Ihre eigenen Funktionen verwenden, anstatt direkt etwas von GD oder IMgk aufzurufen. – Graham

+0

Danke, Graham. Ja, Leistung ist was ich brauche. Und ich stimme der Abhängigkeit nicht zu, da ich meine eigene Klasse verwenden werde, so dass ich die Bibliothek von Drittanbietern leicht durch meine Methoden ersetzen kann, die sich nicht auf mein Projekt auswirken. – Leri

+0

Sie haben nach der "schlechten Seite" gefragt. Stellen Sie vor, dass zunehmende Abhängigkeiten keine schlechte Sache sind, oder dass die Anforderung von GD und ImageMagick in Ihrem Projekt keine Zunahme der Abhängigkeiten darstellt? Je mehr "Dinge" an einem Projekt beteiligt sind, desto komplexer ist es. Mehr Komplexität bedeutet mehr Möglichkeiten für Fehler und mehr Zeit, um sie zu beheben. Offensichtlich würden Sie eine Klasse oder eine Funktionsbibliothek verwenden, um so viel wie möglich zu abstrahieren. Aber das macht noch ein "Ding", das zu brechen und zu erhalten ist. – Graham

Antwort

0

Das könnte eine vorzeitige Optimierung sein, die die Code-Komplexität, die Entwicklungszeit und die Wartbarkeit erhöht.

Messwerte basierend auf der tatsächlichen Verwendung sammeln. Finden Sie heraus:

  • Wie oft skalieren Sie kleine Bilder?
  • Wo verbringt das Programm die meiste Zeit, wo ist der Flaschenhals?

Ein weiterer Nachteil ist die Opportunitätskosten. Wenn die Skalierung kleiner Bilder 5% Ihrer Anwendungsfälle ausmacht und der Größenänderungsschritt 10% des gesamten Arbeitsablaufs beträgt, wird Ihre Zeit besser für die Optimierung des 95% -Falls bei der Größenänderung großer Bilder oder sogar für die anderen 90% des Arbeitsablaufs verwendet um die Größenänderung kleiner Bilder.

Verwandte Themen