Image::Magick äußerst ressourcenverschwendend?
*Markus
- perl
Hallo,
Ich hatte gestern Probleme mit einem kleinen Script, das die IP-Adresse in Form von mir erstellten Grafiken ausgeben soll. Dabei lief es auf meinem lokalen Apache problemlos. Benutzte ich es aber auf dem Webspace meines Providers, funktionierte das Script nicht mehr, wenn sich die ausgegebene Grafik aus mehr als 6 Zeichen zusammensetzte. (Bei einer IP-Adresse wären es mit den Punkten 15 Einzelgrafiken)
Daraufhin kontaktierte ich meinen Provider, worauf man mir erklärte, dass das Script mehr Speicher braucht als ein Prozess nutzen darf, wobei sie es probehalber nun mal von 20MB auf 40MB heraufsetzten, dies aber mit der Warnung sie würden es wieder heruntersetzen wenn dadurch Performance-Probleme entstünden.
Es kann doch nicht sein, dass Image::Magick so die Ressourcen verbrät, oder ist der Ansatz meines Scripts falsch?
#!/usr/bin/perl -w
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use Image::Magick;
my $ip = $ENV{'REMOTE_ADDR'};
my @ziffern = qw(null eins zwei drei vier fuenf sechs sieben acht neun);
my $images = Image::Magick->new();
my $montage;
my $error;
#Ziffern lesen
while ($ip =~ /([0-9\.])/g) {
my $wert = $1;
if ($wert ne '.') {
$images->Read("ziffern/$ziffern[$wert].gif");
}
else {
$images->Read("ziffern/punkt.gif");
}
}
$montage = $images->Montage(geometry => "15x20",
tile => "15x1") or die "Cant Montage: $!\n";
print "Content-Type: image/gif\n\n";
binmode STDOUT;
$montage->Write('gif:-') and die "Kann Bild nicht ausgeben: $!\n";
Markus.
Hoi
Hallo,
Es kann doch nicht sein, dass Image::Magick so die Ressourcen verbrät, oder ist der Ansatz meines Scripts falsch?
Kann man in perl nicht profilen? Ich kenn mich mit perl nicht aus, aber es wird sicher eine moeglichkeit geben sich die cpu last und den speicherverbrauch eines scriptes herauszufnden.
Mfg
Hallo,
Kann man in perl nicht profilen?
Ich weiß jetzt leider nicht, was du damit meinst?
Markus.
Hi,
Ich weiß jetzt leider nicht, was du damit meinst?
Er meint einen sog. Benchmark.
Und so nebenbei, Bildbearbeitungen sind grundsätzlich Speicherfresser. Und beim Umrechnen geht auch viel Rechenleistung drauf. Somit ist es keine Ressourcenverschwendung, sondern deren Nutzung ;)