Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort
Vorwort
1 PEAR – Einführung
2 Authentication
3 Caching
4 Date and Time
5 File Formats
6 HTTP
7 Internationalization
8 Mail
9 Networking
10 PHP
11 Text
12 Web Services
13 Benchmarking
14 Configuration
15 Database
16 File System
17 HTML
18 Images
19 Logging
20 Math
21 Numbers
22 Tools and Utilities
23 XML
24 Selbst Pakete erstellen
25 PECL
Index
Ihre Meinung?

Spacer
 <<   zurück
PHP PEAR von Carsten Möhrke
Anwendung und Entwicklung – Erweiterungen für PHP schreiben
Buch: PHP PEAR

PHP PEAR
798 S., 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-580-0
gp 25 PECL
  gp 25.1 Allgemeines
  gp 25.2 Installation
  gp 25.3 crack
  gp 25.4 apd
  gp 25.5 bcompiler
  gp 25.6 perl
  gp 25.7 Xdebug
  gp 25.8 APC
  gp 25.9 IDN
  gp 25.10 blenc
  gp 25.11 xmlreader
  gp 25.12 xmlwriter
  gp 25.13 id3


Rheinwerk Computing

25.8 APC  toptop


Version: 2.0.4 Lizenz: PHP-Lizenz

»APC« ist die Abkürzung für »Alternative PHP Cache«. Bei APC handelt es sich um einen Cache, wie der Name schon vermuten lässt. Allerdings handelt es sich nicht um einen Cache, der komplett fertig gerenderte Dateien speichert, sondern um einen, der den Bytecode, der aus dem PHP-Quelltext erzeugt wird, im Arbeitsspeicher hält. Dadurch muss der Server den PHP-Quelltext nicht jedes Mal neu übersetzen, sondern kann auf die bereits übersetzten Daten zurückgreifen.

APC legt die Daten im Shared Memory, also im Arbeitsspeicher des Servers, ab, wodurch ein schneller Zugriff gewährleistet wird. Um die Verwaltung der Daten im Cache müssen Sie sich nicht weiter kümmern. Sollte eine Datei geändert werden, stellt APC das automatisch fest und liest die geänderte Variante ein. Bitte beachten Sie, dass die veraltete Version im Speicher verbleibt, bis die Garbage Collection diese entfernt.

Zurzeit ist noch keine PHP 5-Version von APC verfügbar, und es ist zum jetzigen Zeitpunkt auch noch nicht absehbar, wie lange es noch dauern wird, bis APC portiert ist.

Nachdem Sie APC installiert und eingebunden haben, ist die Arbeit an sich schon erledigt. APC benötigt keine Konfiguration und fängt automatisch an, die Systemperformance zu optimieren. Auch wenn es nicht unbedingt nötig ist, können Sie das System natürlich konfigurieren. Die Einstellungen müssen allesamt über Direktiven in der php.ini vorgenommen werden:

apc.enabled – Mit dieser Direktive können Sie steuern, ob APC aktiv ist. Der Default-Wert 1 schaltet das System ein. Weisen Sie der Direktive eine 0 zu, wird das System ausgeschaltet.

apc.shm_size – Hiermit können Sie steuern, wie groß der Speicherbereich in Megabyte ist, der zum Caching genutzt werden soll. Der Default-Wert hierbei ist 30, wobei die Größe durch das Betriebssystem bestimmt wird. Auf BSD und OS X kann ein solches Segment maximal 4 Megabyte groß sein. Eine Tabelle dazu, welches System welche Größe zulässt, gibt es leider nicht.

apc.shm_segments – Möchten Sie mehr als ein Shared-Memory-Segment für den Cache belegen, können Sie das mit dieser Direktive steuern. Der Standardwert ist 1, was definiert, dass ein Segment belegt wird. Auf Systemen, die nur kleine Shared-Memory-Segmente zulassen, macht es Sinn, mehrere Segmente zu nutzen.

apc.optimization – Normalerweise versucht APC nicht, den Code zu optimieren, was dem Vorgabewert 0 entspricht. Weisen Sie dieser Direktive eine 1 zu, versucht APC den kompilierten Code zu optimieren, bevor er im Cache abgelegt wird.

apc.num_files_hint – Mit diesem Wert legen Sie fest, wie viele Dateien von dem System verwaltet werden können. Das System legt zwei von diesen Verwaltungseinheiten an, so dass mit dem Default-Wert 1000 insgesamt 2000 Dateien verwaltet werden können.

apc.gc_ttl – Diese Direktive definiert, in welchen Zeitabständen die Garbage Collection durchgeführt wird. Hierbei handelt es sich um die »Müllabfuhr«, die den Cache von veralteten Einträgen befreit. Die Standardeinstellung 3600 entspricht 3600 Sekunden, also einer Stunde. Sollten Sie ein System nutzen, bei dem Dateien sich oft ändern, kann es hilfreich sein, die Zeit für die Garbage Collection herunterzusetzen.

apc.filters – Standardmäßig behält APC alle PHP-Dateien im Cache. Um zu verhindern, dass bestimmte Dateien gecacht werden, können Sie diese Direktive nutzen. Sie akzeptiert einen oder mehrere reguläre Ausdrücke in erweiterter POSIX-Schreibweise, wie sie auch von PHP bei regulären Ausdrücken genutzt wird. Übergeben Sie mehrere Ausdrücke, so sind diese jeweils durch ein Komma voneinander zu trennen. So könnten Sie mit der Zeile

apc.filters = "/nocache/,download"

verhindern, dass alle Dateien, die im Ordner nocache liegen, und alle Dateien, in deren Namen das Wort download vorkommt, gecacht werden.

Aber es ist nicht so, dass APC gar keine Funktionen mit sich bringt. Die wichtigste ist sicher erstmal apc_cache_clear(). Mit ihr können Sie den gesamten Cache auf einmal löschen. Das kann dann hilfreich sein, wenn Sie eine sehr große Anzahl von Dateien von dem Server neu geschrieben haben und verhindern wollen, dass die veralteten Kompilate bis zur nächsten Garbage Collection im Speicher des Servers verbleiben.

Zusätzlich sind noch apc_cache_info() und apc_sma_info() definiert, die Ihnen Informationen zum Cache bzw. zum Shared Memory des Servers liefern. Beide Funktionen liefern ein verschachteltes Array mit Daten zurück.

Das Array, das von apc_cache_info() bereitgestellt wird, enthält einige allgemeine Informationen und darüber hinaus Daten zu jedem gecachten Eintrag. Der Schlüssel 'num_slots' enthält die Anzahl der Slots, die zum Speichern von Cache-Einträgen definiert ist. Es handelt sich also um das Doppelte des Wertes, der der Direktive apc.num_files_hint zugewiesen wurde. Die beiden Elemente 'num_hits' und 'num_misses' enthalten die Anzahl der Treffer und die der Misses, geben also an, wie oft eine Datei aus dem Cache gelesen werden konnte und wie oft eine Datei nicht gefunden wurde und neu geladen werden musste. Die Schlüssel 'cache_list' und 'deleted_list' verweisen jeweils auf ein Array, in dem für jeden der vorhandenen bzw. gelöschten Cache-Einträge ein Eintrag vorhanden ist. Diese Einträge bieten sehr detaillierte Informationen wie zum Beispiel den Inode, unter dem die Datei abgespeichert ist. In solcher Tiefe werden die Informationen sicher selten benötigt. Hilfreich können aber sicher die Schlüssel 'filename', 'mktime' und 'creation_time' sein. Der erste enthält den Dateinamen inklusive des Pfades. Die beiden anderen verweisen jeweils auf einen Timestamp, der Ihnen mitteilt, wann die Datei und wann der Eintrag im Cache erstellt wurden. Interessant kann sicher auch noch 'num_hits' sein. Hier wird gezählt, wie oft der Eintrag angefordert wurde.

Das Array, das von der Funktion apc_sma_info() zurückgegeben wird, enthält im Schlüssel 'num_seg' die Anzahl der Speicherblöcke, die im Shared Memory reserviert sind. Die Größe eines Segments ist unter dem Schlüssel 'seg_size' abgelegt, und die Gesamtgröße des verfügbaren Speichers ist im Element 'avail_mem' abgelegt. Unter dem Schlüssel 'num_slots' finden Sie ein numerisches Array, in dem jedes Speichersegment über einen Eintrag verfügt, in dem Größe und ähnliche Daten zu finden sind.

Im normalen Alltag werden Sie diese beiden Funktionen kaum brauchen. Registrieren Sie allerdings Performance-Probleme, können sie sehr hilfreich sein, um Probleme aufzuspüren und die Einstellungen zu optimieren.

 <<   zurück
     
  Zum Katalog
Zum Katalog: PHP PEAR
PHP PEAR
Jetzt bestellen!
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: PHP 5.6 und MySQL 5.7






 PHP 5.6 und
 MySQL 5.7


Zum Katalog: Einstieg in PHP 5.6 und MySQL 5.6






 Einstieg in PHP 5.6
 und MySQL 5.6


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Moderne Websites entwickeln






 Moderne Websites
 entwickeln


Zum Katalog: MySQL 5.6






 MySQL 5.6


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de