Warum man auf die Festplattenzugriffe achten sollte
Wenn eine z.B. eine PHP Seite auf einem Webserver aufgerufen wird, wird dabei meistens mehr von der Festplatte gelesen als nur eine Datei. Eine PHP Anwendung besteht oftmals aus sehr vielen Klassen und Funktionen die in verschiedenen PHP Dateien organisiert werden. Diese werden beim Aufruf einer PHP Anwendung natürlich benötigt und werden durch das Einbinden mit include() oder require() ebenfalls von der Festplatte geladen.
PHP Funktionen die ein Festplattenzugriff erzeugen
Diverse Funktionen benötigen natürlich ein Festplattenzugriff, daher ist es natürlich nicht zu vermeiden. Bei der Programmierung sollte man schon daran denken das zu viele Zugriffe nicht gerade ideal sind. Daher => Funktionen die ein Festplattenzugriff erzeugen sparsam einsetzen.
Logischerweise erzeugen alle Funktionen, die Dateien oder Verzeichnisse von der Festplatte lesen einen Zugriff. Das währen z.B. einige wie fopen(), fwrite(), scan_dir(), getimagesize()
usw.
Was führt noch zu Festplattenzugriffen?
- Templatesysteme.
Mit der Template Engine SMARTY z.B. ist es möglich bei viel Traffik und einer falschen Einstellung den kompletten Server abzuschießen. Im Entwicklungsmodus erzeugt SMARTY z.B. extrem viele Festplattenzugiffe. Im Artikel "Improving Disk IO in PHP Apps" kann man einiges dazu nachlesen. - Datei basierte Cachingsysteme
Dateibasierte Cachingsysteme erzeugen auch durchaus extreme Plattenzufriffe. - Datenbankzugriff. (Indirekt durch das DBMS wenn auf dem selben Host betrieben)
Überflüssigen Festplattenzugriff vermeiden
...todo
Verminderung der Race-Conditions kann zu weniger Festplattenzugriff führen. Dies wird in dem Artikel "Improving Disk IO in PHP Apps" ganz gut beschrieben.
Folgende Artikel könnten auch interessieren
- Webseiten Caching Konzepte
- Was sind temporäre Tabellen bei MySQL und wie konfiguriert man diese richtig?
- Top Web UI Frameworks mit HTML5, CSS und Javascript
- Test Driven Development (TDD)
- Pimple – A simple PHP Dependency Injection Container
- PHP Pattern als Code und UML
- Performancesteigerung von MySQL durch Optimierung der Queries
- Optimierung von PHP Code für effiziente Speichernutzung
- MySQL: NOT IN , NOT EXISTS oder LEFT JOIN mit IS NULL Abfrage?
- MySQL Queries mit EXPLAIN auswerten und das Ergebnis richtig deuten
- MySQL Performance Optimierung durch richtiges Konfigurieren
- MySQL Performance Optimierung
- MySQL Performance Erfolge
- MySQL Monitoring & Profiling
- MySQL Indexe richtig setzten
- Memcache für PHP
- Doppelte Einträge in MYSQL Tabelle löschen
- Der MySQL Query Cache und wie stelle ich diesen richtig ein?
- Webseiten GZip komprimiert ausliefern
- Wann verwendet man Buttons und wann Links?