IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres composants PHP Discussion :

Librairie Zend Framework en cache APC


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 118
    Par défaut Librairie Zend Framework en cache APC
    Bonjour,

    J'ai mis en cache APC toutes les fichiers de la librairie du Zend Framework, selon la méthode suivante.
    Ma question est :
    - Comment et avec quels outils peut ton tester le gain en performance ?

    Processus de mise en cache

    ATTENTION faire ceci sur une machine local en test auparavant.
    Je vous conseille de lire les bons tutos qui vous explique le fonctionnement du cache APC.

    APC : un cache d'OPCodes pour PHP


    1) extension php_apc
    Il faut activer l'extension php_apc et dans le fichier php.ini déclarer un besoin de mémoire complémentaire. par défaut 30 mais la bibliothèque Zend en veut plus.

    A rajouter dans votre fichier php.ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [apc]
    apc.shm_size = 128
    Puis dans un fichier PHP à exécuter.
    remplacer PATHZEND par votre répertoire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    // mémoire alloué au cache APC suffissant
    if (ini_get('apc.shm_size') > 80 ) {
     
    	/**
    	 * une Classe Filtre
    	 *
    	 */
    	class MyFilterIterator extends FilterIterator {
    		public function accept() {
    			return (substr($this->current(), -3) == 'php');
    		}
    	}
     
    	/**
    	 * Mise en cache de la librairy ZEND
    	 */
    	$rdi = new RecursiveDirectoryIterator(PATHZEND);
    	$rii = new RecursiveIteratorIterator($rdi, RecursiveIteratorIterator::LEAVES_ONLY);
    	foreach (new MyFilterIterator($rii) as $file) {
    		apc_compile_file($file);
    	}
     
    }// Eof:: mémoire alloué au cache APC suffissant
    Ce code est tiré de livre Zend Framwork (les cahiers du programmeur - Eyrolles) de Julien Pauli et Guillaume Ponçon que je recommande à tous.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 6
    Par défaut
    Bonjour,

    J'ai mis en place la solution décrite dans le livre, à savoir mettre en cache opcode toute la librairie Zend.

    Quand je regarde dans l'interface APC, j'ai bien tous les fichiers dans "system cache entries"

    ex:

    D:\site\zend_workspace\site\library\Zend\View\Exception.php ...
    D:\site\zend_workspace\site\library\Zend\View\Abstract.php ...
    D:\site\zend_workspace\site\library\Zend\View.php ...
    ....
    Quand je lance mon site cela fonctionne correctement, mais le cache opcode n'est pas utilisé car pour tous les fichiers la colonne "Hits = 0".

    J'ai pensé à un problème lié à l'autoload (Zend 1.9.6), mais avec un site qui n'utilise pas le framework Zend et qui est hébergé sur le même serveur, j'ai le même soucis.

    Voici ma config apc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    APC Version	3.1.4
    PHP Version	5.3.0
    APC Host	localhost
    Server Software	Apache/2.2.11 (Win32) PHP/5.3.0
    Cached Files	1862 ( 52.9 MBytes)
    Cached Variables	17 ( 73.4 KBytes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    apc.cache_by_default	1
    apc.canonicalize	1
    apc.coredump_unmap	0
    apc.enable_cli	0
    apc.enabled	1
    apc.file_md5	0
    apc.file_update_protection	2
    apc.filters	
    apc.gc_ttl	3600
    apc.include_once_override	0
    apc.lazy_classes	0
    apc.lazy_functions	0
    apc.max_file_size	1M
    apc.num_files_hint	0
    apc.preload_path	
    apc.report_autofilter	0
    apc.rfc1867	0
    apc.rfc1867_freq	0
    apc.rfc1867_name	APC_UPLOAD_PROGRESS
    apc.rfc1867_prefix	upload_
    apc.rfc1867_ttl	3600
    apc.shm_segments	1
    apc.shm_size	128
    apc.slam_defense	1
    apc.stat	1
    apc.stat_ctime	0
    apc.ttl	0
    apc.use_request_time	1
    apc.user_entries_hint	4096
    apc.user_ttl	0
    apc.write_lock	1
    Merci pour votre aide

Discussions similaires

  1. [Librairies] Quel système de cache utiliser pour un forum?
    Par Cyrius dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/10/2005, 11h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo