Oft wird eine E-Mail über mehrere Seitenaufrufe hinweg gebraucht, z.B. wenn man sie erst öffnet um sie zu lesen, dann um einen Anhang zu öffnen, dann um darauf zu antworten o.ä.
Bisher hat b1gMail die E-Mail dann bei jedem Seitenaufruf neu eingelesen und geparst. Das kostet natürlich immer recht viel Rechenzeit im Vergleich zu anderen Routinen. b1gMail7 bietet als neues Feature die Funktion, die E-Mail nach dem ersten Einlesen und Parsen im geparsten Zustand in einen Cache zu speichern. Wenn die E-Mail daraufhin erneut eingelesen und geparst werden müsste (z.B. weil ein Anhang oder der HTML-Text der Mail angefordert oder gantwortet wird), wird dann einfach das geparste E-Mail-Objekt aus dem Cache geladen.
Wird die E-Mail eine einstellbare Zeitspanne (standardmäßig 15 Minuten) nicht verwendet, wird sie wieder aus dem Cache entfernt, bis sie ggf. irgendwann erneut verwendet wird.
Die Folge: Die Serverlast, die durch einen Benutzer beim Aufrufen, Verwalten und Lesen seiner Mails generiert wird, sinkt erheblich.
Nebenbei noch ein interessantes Ergebnis zum neuen Mail-Parser: Eine 7,9 MB große E-Mail parst dieser – selbst mit angehängtem PHP-Profiler – in ca. 1-1,5 Sekunden. Ein lokales E-Mailprogramm (Apple Mail) braucht dafür auf dem selben Computer 4-5 Sekunden. 🙂 Die Parsing-Geschwindigkeit ohne angehängten Profiler dürfte sogar noch wesentlich besser sein.