Speicherverbrauch in PHP

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

  • Speicherverbrauch in PHP

    Also ich habe eine eigene Templateklasse. Durch diese Templateklasse jage ich ein 16 kb großes Template. Dieses gebe ich nicht aus, sondern lasse mir nur das geparste Template zurückgeben. Das Template wird nur einmal geladen, im Speicher gehalten und einfach mit eval durchgenudelt.

    Daraus ergibt für mein Verständnis, dass ich eigentlich nur beim initialisieren Speicher und beim ersten Einladen des Templates Speicher verbrauche. Ist aber nicht so. Ich mache 500 Durchgänge für das Template und gebe mir die Zeit und den Speicherverbrauch aus. Das Script gibt mir dann folgendes aus:

    Code:
    Durchgang: 1 -- 0.02092 sec -- 195 kb
    Durchgang: 2 -- 0.00059 sec -- 205 kb
    Durchgang: 3 -- 0.00056 sec -- 215 kb
    Durchgang: 4 -- 0.00056 sec -- 225 kb
    Durchgang: 5 -- 0.00055 sec -- 235 kb
    Durchgang: 6 -- 0.00055 sec -- 245 kb
    Durchgang: 7 -- 0.00055 sec -- 255 kb
    Durchgang: 8 -- 0.00056 sec -- 265 kb
    Durchgang: 9 -- 0.00056 sec -- 275 kb
    Durchgang: 10 -- 0.00056 sec -- 285 kb
    ...
    Durchgang: 499 -- 0.0006 sec -- 5,203 kb
    Durchgang: 500 -- 0.00063 sec -- 5,213 kb
    Warum ist das so bzw. hat jemand von Euch Erfahrung mit dem Problem oder hat eine Idee, wie ich das umgehen kann. Ich habe auch schon probiert, alle Arrays in der Klasse mit unset zu löschen. Das verlängert aber nur die Bearbeitungszeit (weil das Template jedes Mal neu eingeladen wird).

    P.S. es müssen keine Variabeln im Template ersetzt werden.
    Zuletzt geändert von S.Oliver; 04.01.2005, 21:31.

  • #2
    (weil das Template jedes Mal neu eingeladen wird).
    Na, also doch mehrfach im speicher?

    Kommentar


    • #3
      Nein, die alten Arrays werden ja gelöscht. Aber ich tippe mal, dass ist ein PHP Problem. Nachdem ich den Text des Templates geändert habe blieb der Speicherverbrauch plötzlich konstant. So genau hab ich den Fehler aber nicht einordnen können.

      //Edit: Das Problem tritt immer dann auf, wenn im Template ein Backslash ist. Aber warum
      Zuletzt geändert von S.Oliver; 04.01.2005, 22:58.

      Kommentar


      • #4
        Original geschrieben von S.Oliver
        //Edit: Das Problem tritt immer dann auf, wenn im Template ein Backslash ist. Aber warum
        Wegen der IF-Else-Struktur in der 3. Zeile ... !
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Original geschrieben von goth
          Wegen der IF-Else-Struktur in der 3. Zeile ... !


          Mir ist schon durchaus klar, dass mir keiner helfen kann, wenn ich keinen Quelltext poste, allerdings hat sich das Problem ja schon gelöst (bzw. das Problem in eine andere Ebene verschoben) und ich damit meine Frage zurückgezogen. Da es ja auch ohne Backslashes wie gewünscht funktioniert, habe ich auch keinen Fehler gemacht.

          Ich mach das auch schon ein paar Tage.
          Zuletzt geändert von S.Oliver; 04.01.2005, 23:23.

          Kommentar


          • #6
            Original geschrieben von S.Oliver
            ..., allerdings hat sich das Problem ja schon gelöst (bzw. das Problem in eine andere Ebene verschoben) und ich damit meine Frage zurückgezogen. ...
            Ach deshalb die beiden letzten Worte "Aber warum" ... ich drücke "Ich ziehe meine Frage zurück" anders aus ... !
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              Original geschrieben von goth
              Ach deshalb die beiden letzten Worte "Aber warum" ... ich drücke "Ich ziehe meine Frage zurück" anders aus ... !
              Jetzt wo ich das weiß werd ich gleich besser schlafen . Ich habe allerdings auch geschrieben, dass es unter anderen Bedingungen funktioniert und von daher kein Fall mehr für Brainstorming.

              Es zeigt sich immer mehr, dass es ein PHP Bug zu sein scheint. In PHP 5 taucht das Problem bei gleichem Code nämlich nicht mehr auf. Von daher - Problem erledigt.

              Kommentar


              • #8
                Es zeigt sich immer mehr, dass es ein PHP Bug zu sein scheint.
                Ist bei euch immer so, wenn man SEINEN EIGENEN Fehler nicht erklären kann, oder?

                Kommentar

                Lädt...
                X