Category: Webentwicklung

Informatives rund um das Thema Webentwicklung

Laravel Homestead Performance mit NFS verbessern (NFS aktivieren)

Laravel Homestead Performance mit NFS verbessern (NFS aktivieren)

Wer viel mit Laravel Homestead arbeitet wird hier und da mit Performance Problemen zu kämpfen haben. Alleine die Erhöhung der zugewiesenen CPU-Kerne und des RAMs in der Homestead.yaml reichen da nicht aus. Besonders langsam ist die Dateien-Synchronisation. Vor allem in der Frontend-Entwicklung, wo Live-Synchronisation eine große Rolle spielt, ist es wichtig, dass Dateiänderungen sofort übernommen werden.

Das Problem liegt bei VirtualBox und ihrem langsamen “shared folder system”. Die Lösung heißt “Network File System” (NFS), ein Protokoll für verteilte Dateisysteme und ist schnell zu installieren.
Vagrant bietet hier eine gute Dokumentation zu NFS, welches bei heutigen Betriebsystemen leider nicht out-of-the-box zur Verfügung steht.
Die Installation gestaltet sich in drei einfachen Schritten.… [Mehr...]

Ein Überblick über PHP Compiler und ihre Ausgaben von Nicolas Favre-Felix

Ein Überblick über PHP Compiler und ihre Ausgaben von Nicolas Favre-Felix

Quelle: A review of PHP compilers and their outputs – By Nicolas Favre-Felix

Ein klasse Beitrag. Hier die Übersetzung:

Einleitung

Facebook generierte ganz schön viel Begeisterung als sie vor ein paar Wochen das Release ihres neuen PHP-Compilers ankündigten, HipHop-PHP. In diesem Artikel, werden wir bestehende PHP Optimierungs-Tools und was sie können um die Geschwindigkeit von PHP Seiten zu erhöhen besprechen. Das Release erhitzte erneut die Debatte darüber, ob Web-Applikationen durch die Geschwindigkeit von PHP oder durch die Geschwindigkeit ihrer Datenbank begrenzt sind; dieser Artikel handelt nur von Optimierungs-Werkzeugen für PHP Code.

Wir werden die folgenden Konzepte diskutieren:


Die Zend Engine, PHP opcodes

Die Zend Engine ist eine virtuelle Machine welche PHP Skripte ausführt. Es ist die offizielle Implementierung der PHP-Sprache. Diese virtuelle Maschine basiert auf Opcode: PHP Skripte sind in eine einfachere Sprache kompiliert, welche eine limitierte Anzahl von Operationen unterstützt. Zum Beispiel: Werte hinzufügen, eine Funktion aufrufen, Variablen vergleichen mit == sind sollche Operationen; ihre Opcodes sind ADD, DO_FCALL_BY_NAME, IS_EQUAL.

Wenn PHP-Skripte ausgeführt werden, passiert folgendes:

  1. Das Skript wird gelesen und in Tokens geteilt, welche in einen Parser gespeist werden
  2. Wenn das Skript valides PHP ist, wird Opcode generiert
  3. Die Zend Enginge führt den Opcode aus, indem es eine Funktion für jeden Opcode ausführt

Für eine detailliertere Erklärung dieses Prozesses, schaut rüber zu Sara Golemon’s Blog Post zum Verstehen von Opcode(Englisch).

Lasst uns den generierten Opcode anhand eines Beispiels untersuchen:

function fib($n) {

if($n === 0 || $n === 1) {
return $n;
}
return fib($n-1) + fib($n-2);
}

echo fib(30)."\n";

Dieses kleine Skript wird durch diesen ganzen Artikel hindurch verwendet, um den Wandel mit den verschiedenen Kompilierungs-Werkzeugen zu untersuchen.

Die Zend Engine generiert zwei Code-Blöcke: Einen für die fib Funktion … [Mehr...]