Archives for februari 2013

10 Tips om de CakePHP Performance te verbeteren

Na enkele artikelen over Linux te hebben geschreven is het nu weer tijd om te schrijven over Webdevelopment.

Veel webdevelopers vinden CakePHP een traag framework. Daar zit een kern van waarheid in, maar echter zijn er veel mogelijkheden om de Cakephp performance te verbeteren. Uiteindelijk heeft de snelheid van het framework na optimalisaties veel minder invloed op de performance van een website als gedacht wordt. Laten we beginnen met het optimaliseren!

Opcode caching (APC)

Indien je nog geen gebruik maakt van opcode cache, doe dat dan nu! Het zorgt ervoor dat de PHP-code geoptimaliseerd wordt en de gecompileerde bytecode in het geheugen wordt opgeslagen. Het zorgt tevens voor een lager geheugengebruik over de algehele Cakephp applicatie. De installatie van APC is zo enorm makkelijk en kost slechts 3 minuten, maar het snelheidsverschil is enorm!

Cakephp maakt standaard automatisch gebruik van APC, indien het beschikbaar is met de volgende code in je core.php-bestand. Vergeet niet daaronder een unieke $prefix in te stellen om conflicten met andere sites te voorkomen.

<?php
$engine = 'File';
if (extension_loaded('apc') && function_exists('apc_dec') && (php_sapi_name() !== 'cli' || ini_get('apc.enable_cli'))) {
$engine = 'Apc';
}

$prefix = 'sitenaam_';
?>

Je ziet hieronder heel mooi in de afbeelding van het Yii framework, hoeveel invloed APC maar liefst heeft op de performance van websites.

Cakephp Performance met en zonder APC

Er worden prestatie-verbeteringen van 700% gemeten slechts door het gebruik van APC.

Neem de performance-vergelijking tussen CakePHP en Yii overigens niet te serieus verder, ik wilde voornamelijk het performance-verschil tussen wel of geen APC gebruiken laten zien. Het is slechts een advertentie-afbeelding voor het gebruik van het Yii framework. Yii is weliswaar een sneller framework dan CakePHP, maar CakePHP 2.3 stable is inmiddels uit en deze is aanzienlijk sneller dan de geteste CakePHP 1.2.1 (4 jaar oud, uit Q1 2009).

Performancewinst: 50-300%
Verder lezen…