*Markus: Image::Magick äußerst ressourcenverschwendend?

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.

--
http://www.apostrophitis.at
STANDAR_D_  - ist das wirklich so schwer?
  1. 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

    1. Hallo,

      Kann man in perl nicht profilen?

      Ich weiß jetzt leider nicht, was du damit meinst?

      Markus.

      --
      http://www.apostrophitis.at
      STANDAR_D_  - ist das wirklich so schwer?
      1. 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 ;)