Vai ai contenuti. | Spostati sulla navigazione

  • Mappa del sito
  • Accessibilità
  • Contatti
Sezioni
  •   Portale  
  •   Blog  
  •   Megafono  
  •   Scopri  
  •   Magazine  
L'azienda
Similar Items
Chameleon on plone 4.1

Federico Guizzardi

Appassionato di informatica da sempre, ha cominciato la scoperta della programmazione a 11 anni iniziando a programmare in basic, proseguendo fino alla laurea non mancando mai di dare sfogo alla propria curiosita' negli ambiti piu' differenti: dalle architetture degli elaboratori alla gestione delle basi di dati, dal web ai dispositivi mobile, arrivando alla realizzazione di schede elettroniche per l'interfacciamento di dispositivi. Aperto al confronto, apprezza poco i vari "fondamentalismi" propri del mondo informatico.

Autori
  •  Vincenzo Antignano
  •  Vincenzo Barone
  •  Giorgio Borelli
  •  Andrea Cosimi
  •  Cinzia D'Angelo
  •  Maurizio Delmonte
  •  Simone Deponti
  •  Giovanna Esposito
  •  Biagio Grimaldi
  •  Federico Guizzardi
    •  Chameleon on plone 4.1
  •  Daniele Noviello
  •  Luca Pisani
  •  Bruno Ripa
  •  Valeria Russo
  •  Antonio Sagliocco
  •  Rosario Savarese
  •  Stefania Scolamiero
  •  Silvio Tomatis
Argomenti
Open Source Social Networks abstract comunità design estensioni howto html innovazione note plone python resoconto risorse web suggerimenti sviluppo symposium tecnologia trick zope

 Seguici!

 

Chameleon on plone 4.1

creato da Federico Guizzardi at 16/01/2012 13:55 | Permalink
Filed under: zope, tecnologia, plone, suggerimenti

compilare i template zpt ha i suoi vantaggi

Plone fa un uso massivo dei page template, esiste infatti un page template non solo per ogni pagina ma anche per ogni widget. Questo significa che una form di edit o una view di una Page, vengono gestiti almeno quattro page template: uno per la pagina vera e propria, una per il title, una per la description ed una per il testo della pagina. A questi si aggiungo tutti i page template utilizzati per le varie portlet e le viewlet presenti. Questa semplice riflessione fa capire immediatamente quanto sia importante gestire i page template al meglio. Chameleon e' un prodotto che si occupa proprio di gestire al meglio questo particolare aspetto. L'idea di fondo e' molto semplice: anziche' interpretare un page template ogni volta che questo viene richiesto da un generico utente, questo viene compilato in byte-code. In questo caso l'atavica sfida compilatore vs interprete e' vinta' in maniera sufficientemente marcata dal compilatore, che ovviamente paga un tempo superiore per la compilazione dei page template. Questo dazio viene pagato solamente una volta (ovviamente) alla prima richiesta di una specifica pagina. Potremmo aprire un dibattito su quanto si possa guadagnare se la compilazione dei page template fosse realizzata in fase di avvio dell'application server (quindi di Zope), ma per questo sarebbe piu' produttivo farlo con gli autori di Chameleon.

Il test per valutare la bonta' di qesta soluzione e' molto semplice:

  • si prende un Plone Vanilla 4.1.2
  • si aggiunge al buildout l'egg five.pt, e si fa girare il buildout
  • si avvia il server e si instanzia un sito plone vanilla
  • opzionale: si creano un po' di directory e pagine pubbliche a piacere

Fatto questo l'ambiente di test e' pronto.

Se possedete due computer in rete, potete mettere il server su uno dei due e fare le chiamate dall'altro, in modo da non dover condividere tra server e client il disco, periferica di solito capace di variare sensibilmente i benchmark.

Se ne possedete uno solo, non vi consiglio l'uso di macchine virtuali anche se utilizzate xen, sempre per questioni di dischi.

Con il server appena avviato, il comando da utilizzare

 

$ time wget -r -np localhost:8080/Plone

 

Il comando time permette di sapere quanto tempo e' stato utilizzato da un processo, dettagliandolo di tre inforazioni:

  • tempo reale: tempo in secondi necessari al processo per essere eseguito, quindi dalla pressione del tasto "Invio", "Return" o che dir si voglia,  fino alla ripresentazione del prompt;
  • tempo user: tempo speso dal processo utente, quindi il tempo dedidaco al programma avviato inteso come tempo realmente utilizzato e non come latenza tra l'inizio e la fine (tempo reale)
  • tempo sys: tempo speso per le chiamate al sistema operativo e quindi speso dalle routine del kernel

Wget invece e' un crawler molto semplice e le opzioni indicate servono solo per fare in modo che tutto il sito Plone (pubblico) sia scaricato nella corrente cartella del file system, compresi css e immagini.

 

I risultati che ho ottenuto sono i seguenti:


Plone Vanilla

(invocazione gen.)

Plone Five.pt

(prima invocazione)

Plone Five.pt

(invocazioni succ.)

Real 2.075 8.292

1.699

User 0.013 0.007 0.010
Sys 0.017 0.027 0.023

I tempi sono espressi in secondi.

Come potete vedere dalla tabella, il guadagno netto e' di un 15%, senza aver fatto nulla di particolare. Naturalmente si nota quanto la compilazione dei page template pesi nel caso in cui ci si trovi a doverli richiedere per la prima volta. Tale tempo non deve spaventare in quanto e' facilmente eliminabile utilizzando un generico crawler appena riavviato l'application server.

| More
Azioni sul documento
  • Spedisci questo
  • Stampa questo
Powered by DISQUS comment system
Strumenti personali
  • Login
  • Realizzato con Plone
  • XHTML valido
  • CSS valido
  • Sezione 508
  • WCAG
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.