Arbeitsspeicher leeren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Arbeitsspeicher leeren

    Hidehollas,
    ich hab mal wieder ne kleine Frage,

    Ich code derzeit an nem Script welches nacheinander ein großes Bild in mehrere kleine umrechnet, das verbraucht verdammt viel arbeitsspeicher.

    Um der berühmeten Fehlermeldung "Allowed memory size..." aus dem weg zu gehen suche ich nach ner möglichkeit den arbeitsspeicher des server welchen das script vollgemüllt hat zu löschen bevor das script mit dem nächsten bild anfängt.

    ala mach_speicher_leer();

    Hat da wer ne Idee?
    Anwälte in Vulkane werfen -
    Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

  • #2
    Hi,

    mit [COLOR=crimson]clearstatcache()[/COLOR] kann man den Zwischenspeicher mit den Dateistatuswerten
    löschen.

    Gilt aber nur für:
    • * file_exists()
      * fileatime()
      * filectime()
      * filegroup()
      * fileinode()
      * filemtime()
      * fileowner()
      * fileperms()
      * filesize()
      * filetype()
      * is_dir()
      * is_executable()
      * is_file()
      * is_link()
      * is_readable()
      * is_writeable()
      * lstat()
      * stat()




    trinity2253

    Kommentar


    • #3
      Hallo,

      du arbeitest mit den image....()-Funktionen von PHP?

      Hier:
      imagedestroy();

      Gruss
      Quetschi
      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
      Schön - etwas Geschichte kann ja nicht schaden.
      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

      Kommentar


      • #4
        unset()
        und ggfs. mysql_free_result(), falls mysql.

        Kommentar


        • #5
          Original geschrieben von Quetschi
          Hallo,

          du arbeitest mit den image....()-Funktionen von PHP?

          Hier:
          imagedestroy();

          Gruss
          Quetschi
          danke für die antwort. allerdings ändert sich nix wenn ich ein imagedestroy anwende.

          hier mal den betreffenden quellcode:

          PHP-Code:
                          //640x480
                          
          $rohbild="../temp/".$einst[bild];
                          
          $size=getimagesize($rohbild);
                          
          $breite=$size[0];
                          
          $hoehe=$size[1];
                          if(
          $breite $hoehe) {
                              
          $neueBreite=480;
                          }else {
                              
          $neueBreite=640;
                          }
                          
          $neueHoehe=intval($hoehe*$neueBreite/$breite);
                          
          $altesBild=ImageCreateFromJPEG("$rohbild");
                          
          $neuesBild=ImageCreateTrueColor($neueBreite,$neueHoehe);
                          
          ImageCopyResampled($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
                          
          ImageJPEG($neuesBild,"../images/640x480/$einst[bild]");
          imagedestroy($neuesBild); 
          Wenn das durchgelaufen st macht das script mit dem nächsten Bild in 800x600 weiter, aber schon beim nächsten bricht es wegen des berühmten allowed... fehler ab :-/

          oder hab ich image destroy dort falsch angewand?
          Anwälte in Vulkane werfen -
          Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

          Kommentar


          • #6
            Nein, sollte so korrekt sein...

            Kommentar


            • #7
              Habs nur kurz überflogen:

              $altesBild auch noch 'destroyen'
              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
              Schön - etwas Geschichte kann ja nicht schaden.
              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

              Kommentar


              • #8
                Original geschrieben von Quetschi
                Habs nur kurz überflogen:

                $altesBild auch noch 'destroyen'

                Stimmt, hab ich überlesen...

                Kommentar


                • #9
                  Original geschrieben von trinity2253
                  Nein, sollte so korrekt sein...
                  dachte ich mir auch, aber wie gesagt, beim nächsten durchlauf (gleicher code nur mit anderer grösse) stirbt das script an:
                  Code:
                  Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 6400 bytes) in 
                  /opt/lampp/htdocs/photo/admin/module/bilder/hinzufuegen.php on line 35
                  Anwälte in Vulkane werfen -
                  Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

                  Kommentar


                  • #10
                    EDIT:
                    Sorry, anstatt bearbeiten hab ichs zitiert :-/
                    Anwälte in Vulkane werfen -
                    Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

                    Kommentar


                    • #11
                      Quetschu & trinity

                      danke euch 1000 mal

                      Dieser dämliche Fehler wurde euch präsentiert von mir
                      Anwälte in Vulkane werfen -
                      Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

                      Kommentar


                      • #12
                        Hast das mit

                        $altesBild 'destroyen'

                        noch gelesen?? Manchmal überliest man was bei so vielen gleichzeitigen Postings.

                        Oder hat das auch nix gebracht?

                        EDIT:
                        No Problem, woran lags jetzt
                        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                        Schön - etwas Geschichte kann ja nicht schaden.
                        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                        Kommentar


                        • #13
                          es lag dara das ich das alte bild leben lassen hab :-/
                          Anwälte in Vulkane werfen -
                          Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

                          Kommentar

                          Lädt...
                          X