Dans le développement d'un site internet, j'expérimente les modules
HTML::Template et HTML::Template::Expr et j'ai un énorme problème de lenteur
(une requete débouche sur un affichage après 2 secondes en moyenne).
[...]
Une telle lenteur est-elle normale ?
D'autre part, j'ai essayé d'installer un module IPC::Shared, mais là, je n'y
comprends plus rien et je crains que ce module ne soit une interface à un
programe, ce qui expliquerait l'impossibilité de l'installer convenablement
(ou au moins que le 'make test' ne renvoit que des erreurs ^^)
Savez-vous faire marcher (tutoriel en ligne bienvenu) IPC::Shared avec
HTML::Template sur un hébergeur distant ? (où il faut donc tout installer
dans le répertoire personnel)
Ou autremement, connaissez vous un moteur de templates plus rapide que
HTML::Template et qui inclue également les fonctionnalités de
HTML::Template::Expr (qui en tant que développeur me sont fondamentales... )
Dans le développement d'un site internet, j'expérimente les modules
HTML::Template et HTML::Template::Expr et j'ai un énorme problème de lenteur
(une requete débouche sur un affichage après 2 secondes en moyenne).
[...]
Une telle lenteur est-elle normale ?
D'autre part, j'ai essayé d'installer un module IPC::Shared, mais là, je n'y
comprends plus rien et je crains que ce module ne soit une interface à un
programe, ce qui expliquerait l'impossibilité de l'installer convenablement
(ou au moins que le 'make test' ne renvoit que des erreurs ^^)
Savez-vous faire marcher (tutoriel en ligne bienvenu) IPC::Shared avec
HTML::Template sur un hébergeur distant ? (où il faut donc tout installer
dans le répertoire personnel)
Ou autremement, connaissez vous un moteur de templates plus rapide que
HTML::Template et qui inclue également les fonctionnalités de
HTML::Template::Expr (qui en tant que développeur me sont fondamentales... )
Dans le développement d'un site internet, j'expérimente les modules
HTML::Template et HTML::Template::Expr et j'ai un énorme problème de lenteur
(une requete débouche sur un affichage après 2 secondes en moyenne).
[...]
Une telle lenteur est-elle normale ?
D'autre part, j'ai essayé d'installer un module IPC::Shared, mais là, je n'y
comprends plus rien et je crains que ce module ne soit une interface à un
programe, ce qui expliquerait l'impossibilité de l'installer convenablement
(ou au moins que le 'make test' ne renvoit que des erreurs ^^)
Savez-vous faire marcher (tutoriel en ligne bienvenu) IPC::Shared avec
HTML::Template sur un hébergeur distant ? (où il faut donc tout installer
dans le répertoire personnel)
Ou autremement, connaissez vous un moteur de templates plus rapide que
HTML::Template et qui inclue également les fonctionnalités de
HTML::Template::Expr (qui en tant que développeur me sont fondamentales... )
Dans le développement d'un site internet, j'expérimente les modules
HTML::Template et HTML::Template::Expr et j'ai un énorme problème de
lenteur (une requete débouche sur un affichage après 2 secondes en
moyenne).
J'appelle environ 3 modèles par requête
par le module HTML::Template::Expr pour lequel j'ai défini une unique
fonction globale &env qui me permet de récupérer les valeurs du HASH
%ENV, rien de plus.
Ou autremement, connaissez vous un moteur de templates plus rapide que
HTML::Template et qui inclue également les fonctionnalités de
HTML::Template::Expr (qui en tant que développeur me sont
fondamentales... )
Dans le développement d'un site internet, j'expérimente les modules
HTML::Template et HTML::Template::Expr et j'ai un énorme problème de
lenteur (une requete débouche sur un affichage après 2 secondes en
moyenne).
J'appelle environ 3 modèles par requête
par le module HTML::Template::Expr pour lequel j'ai défini une unique
fonction globale &env qui me permet de récupérer les valeurs du HASH
%ENV, rien de plus.
Ou autremement, connaissez vous un moteur de templates plus rapide que
HTML::Template et qui inclue également les fonctionnalités de
HTML::Template::Expr (qui en tant que développeur me sont
fondamentales... )
Dans le développement d'un site internet, j'expérimente les modules
HTML::Template et HTML::Template::Expr et j'ai un énorme problème de
lenteur (une requete débouche sur un affichage après 2 secondes en
moyenne).
J'appelle environ 3 modèles par requête
par le module HTML::Template::Expr pour lequel j'ai défini une unique
fonction globale &env qui me permet de récupérer les valeurs du HASH
%ENV, rien de plus.
Ou autremement, connaissez vous un moteur de templates plus rapide que
HTML::Template et qui inclue également les fonctionnalités de
HTML::Template::Expr (qui en tant que développeur me sont
fondamentales... )
"Jul" écrivait (wrote):Dans le développement d'un site internet, j'expérimente les modules
HTML::Template et HTML::Template::Expr et j'ai un énorme problème de lenteur
(une requete débouche sur un affichage après 2 secondes en moyenne). [...]
Une telle lenteur est-elle normale ?
Ça dépend de nombreux facteurs : ce que vous faites dans votre code, la
machine sur laquelle ça tourne, si c'est en mod_perl ou en CGI classique, la
qualité de la connexion, etc.
D'autre part, j'ai essayé d'installer un module IPC::Shared, mais là, je n'y
comprends plus rien et je crains que ce module ne soit une interface à un
programe, ce qui expliquerait l'impossibilité de l'installer convenablement
(ou au moins que le 'make test' ne renvoit que des erreurs ^^)
Je ne connais pas ce module (il n'existe pas sur CPAN...). Vu son nom, on se
doute de ce qu'il peut faire.Savez-vous faire marcher (tutoriel en ligne bienvenu) IPC::Shared avec
HTML::Template sur un hébergeur distant ? (où il faut donc tout installer
dans le répertoire personnel)
Mais pourquoi croyez-vous en avoir besoin ?
Ou autremement, connaissez vous un moteur de templates plus rapide que
HTML::Template et qui inclue également les fonctionnalités de
HTML::Template::Expr (qui en tant que développeur me sont fondamentales... )
La FAQ de HTML::Template est pourtant claire :
9- Question : Comme puis-je exécuter un programme à l'intérieur de mon
modèle ?
Réponse courte : vous ne pouvez pas. Réponse longue : vous ne devez pas
puisque que cela viole le concept fondamental de HTML::Template - que le
design et le code doivent être séparés.
Si vous croyez tout de même avoir absolument besoin de HTML::Template::Expr,
c'est que vous n'avez pas compris la philosophie de HTML::Template (et de
nombreux autres modules de gestion de templates qui prône la même chose).
Au passage, c'est peut-être l'utilisation de HTML::Template::Expr qui
ralentit votre script...
"Jul" <julien@mesnews> écrivait (wrote):
Dans le développement d'un site internet, j'expérimente les modules
HTML::Template et HTML::Template::Expr et j'ai un énorme problème de lenteur
(une requete débouche sur un affichage après 2 secondes en moyenne). [...]
Une telle lenteur est-elle normale ?
Ça dépend de nombreux facteurs : ce que vous faites dans votre code, la
machine sur laquelle ça tourne, si c'est en mod_perl ou en CGI classique, la
qualité de la connexion, etc.
D'autre part, j'ai essayé d'installer un module IPC::Shared, mais là, je n'y
comprends plus rien et je crains que ce module ne soit une interface à un
programe, ce qui expliquerait l'impossibilité de l'installer convenablement
(ou au moins que le 'make test' ne renvoit que des erreurs ^^)
Je ne connais pas ce module (il n'existe pas sur CPAN...). Vu son nom, on se
doute de ce qu'il peut faire.
Savez-vous faire marcher (tutoriel en ligne bienvenu) IPC::Shared avec
HTML::Template sur un hébergeur distant ? (où il faut donc tout installer
dans le répertoire personnel)
Mais pourquoi croyez-vous en avoir besoin ?
Ou autremement, connaissez vous un moteur de templates plus rapide que
HTML::Template et qui inclue également les fonctionnalités de
HTML::Template::Expr (qui en tant que développeur me sont fondamentales... )
La FAQ de HTML::Template est pourtant claire :
9- Question : Comme puis-je exécuter un programme à l'intérieur de mon
modèle ?
Réponse courte : vous ne pouvez pas. Réponse longue : vous ne devez pas
puisque que cela viole le concept fondamental de HTML::Template - que le
design et le code doivent être séparés.
Si vous croyez tout de même avoir absolument besoin de HTML::Template::Expr,
c'est que vous n'avez pas compris la philosophie de HTML::Template (et de
nombreux autres modules de gestion de templates qui prône la même chose).
Au passage, c'est peut-être l'utilisation de HTML::Template::Expr qui
ralentit votre script...
"Jul" écrivait (wrote):Dans le développement d'un site internet, j'expérimente les modules
HTML::Template et HTML::Template::Expr et j'ai un énorme problème de lenteur
(une requete débouche sur un affichage après 2 secondes en moyenne). [...]
Une telle lenteur est-elle normale ?
Ça dépend de nombreux facteurs : ce que vous faites dans votre code, la
machine sur laquelle ça tourne, si c'est en mod_perl ou en CGI classique, la
qualité de la connexion, etc.
D'autre part, j'ai essayé d'installer un module IPC::Shared, mais là, je n'y
comprends plus rien et je crains que ce module ne soit une interface à un
programe, ce qui expliquerait l'impossibilité de l'installer convenablement
(ou au moins que le 'make test' ne renvoit que des erreurs ^^)
Je ne connais pas ce module (il n'existe pas sur CPAN...). Vu son nom, on se
doute de ce qu'il peut faire.Savez-vous faire marcher (tutoriel en ligne bienvenu) IPC::Shared avec
HTML::Template sur un hébergeur distant ? (où il faut donc tout installer
dans le répertoire personnel)
Mais pourquoi croyez-vous en avoir besoin ?
Ou autremement, connaissez vous un moteur de templates plus rapide que
HTML::Template et qui inclue également les fonctionnalités de
HTML::Template::Expr (qui en tant que développeur me sont fondamentales... )
La FAQ de HTML::Template est pourtant claire :
9- Question : Comme puis-je exécuter un programme à l'intérieur de mon
modèle ?
Réponse courte : vous ne pouvez pas. Réponse longue : vous ne devez pas
puisque que cela viole le concept fondamental de HTML::Template - que le
design et le code doivent être séparés.
Si vous croyez tout de même avoir absolument besoin de HTML::Template::Expr,
c'est que vous n'avez pas compris la philosophie de HTML::Template (et de
nombreux autres modules de gestion de templates qui prône la même chose).
Au passage, c'est peut-être l'utilisation de HTML::Template::Expr qui
ralentit votre script...
L'objectif d'utilisation est de faciliter l'injection de modèles dans
un modèle parent.
Comme je le disait, j'utilise pour le moment environ 3 modèles
encastrables dans un modèle de base, avec en plus d'autres modèles
fils dans le futur.
Cependant, par l'utilisation de HTML::Template (sans module
d'extension), celà n'est possible que par l'utilisation de 'tmpl_if'
et 'tmpl_else', accompagnés de multiples 'tmpl_include'. Et dès lors,
il n'est pas possible d'inclure des modèles de manière dynamique car
il est nécessaire de connaître le nom de fichier (sans possibilité
d'utiliser de variable) du modèle inclu au moment de la conception
modèle parent.
A ce moment là, je ne serai plus contraint par l'utilisation de
fonctions, car je dois l'avouer, celles-ci ne me servent qu'à pouvoir
simuler des variables globales :
La deuxième raison de l'utilisation du module HTML::Tempalte::Expr est
de pouvoir bénéficier d'un batterie de test indispensable et plus
étendue que celle fournie par 'tmpl_if', ce qui simplifie visuellement
le développement des modèles : j'économise considérablement son
utilisation et celà clarifie le document.
Au passage, c'est peut-être l'utilisation de HTML::Template::Expr qui
ralentit votre script...
Oui, celà y contribue et c'est pour celà aussi que je proposais une
réorientation vers un module plus adapté, car comme vous pouvez le
voir, ce module m'est présentement indispensable avec HTML::Template.
L'objectif d'utilisation est de faciliter l'injection de modèles dans
un modèle parent.
Comme je le disait, j'utilise pour le moment environ 3 modèles
encastrables dans un modèle de base, avec en plus d'autres modèles
fils dans le futur.
Cependant, par l'utilisation de HTML::Template (sans module
d'extension), celà n'est possible que par l'utilisation de 'tmpl_if'
et 'tmpl_else', accompagnés de multiples 'tmpl_include'. Et dès lors,
il n'est pas possible d'inclure des modèles de manière dynamique car
il est nécessaire de connaître le nom de fichier (sans possibilité
d'utiliser de variable) du modèle inclu au moment de la conception
modèle parent.
A ce moment là, je ne serai plus contraint par l'utilisation de
fonctions, car je dois l'avouer, celles-ci ne me servent qu'à pouvoir
simuler des variables globales :
La deuxième raison de l'utilisation du module HTML::Tempalte::Expr est
de pouvoir bénéficier d'un batterie de test indispensable et plus
étendue que celle fournie par 'tmpl_if', ce qui simplifie visuellement
le développement des modèles : j'économise considérablement son
utilisation et celà clarifie le document.
Au passage, c'est peut-être l'utilisation de HTML::Template::Expr qui
ralentit votre script...
Oui, celà y contribue et c'est pour celà aussi que je proposais une
réorientation vers un module plus adapté, car comme vous pouvez le
voir, ce module m'est présentement indispensable avec HTML::Template.
L'objectif d'utilisation est de faciliter l'injection de modèles dans
un modèle parent.
Comme je le disait, j'utilise pour le moment environ 3 modèles
encastrables dans un modèle de base, avec en plus d'autres modèles
fils dans le futur.
Cependant, par l'utilisation de HTML::Template (sans module
d'extension), celà n'est possible que par l'utilisation de 'tmpl_if'
et 'tmpl_else', accompagnés de multiples 'tmpl_include'. Et dès lors,
il n'est pas possible d'inclure des modèles de manière dynamique car
il est nécessaire de connaître le nom de fichier (sans possibilité
d'utiliser de variable) du modèle inclu au moment de la conception
modèle parent.
A ce moment là, je ne serai plus contraint par l'utilisation de
fonctions, car je dois l'avouer, celles-ci ne me servent qu'à pouvoir
simuler des variables globales :
La deuxième raison de l'utilisation du module HTML::Tempalte::Expr est
de pouvoir bénéficier d'un batterie de test indispensable et plus
étendue que celle fournie par 'tmpl_if', ce qui simplifie visuellement
le développement des modèles : j'économise considérablement son
utilisation et celà clarifie le document.
Au passage, c'est peut-être l'utilisation de HTML::Template::Expr qui
ralentit votre script...
Oui, celà y contribue et c'est pour celà aussi que je proposais une
réorientation vers un module plus adapté, car comme vous pouvez le
voir, ce module m'est présentement indispensable avec HTML::Template.
Pour les mêmes raisons que celles évoquées par Paul G. l'utilisation de
tmpl_if et tmpl_include est "limite". Il est toujours préférable de gérer
ce genre de chose en amont, dans le CGI. Là il est possible d'ouvrir tous
les modèles que l'on souhaite, définis par des variables etc...
Dans le genre :
my $mod_base = HTML::Template->new(filename => "base.html") ;
$mod_base->param(%vals_base) ;
my $mod_included = HTML::Template->new(filename => find_inc(%vals_base));
$mod_included->param(%vals_inc) ;
print $mod_base->output() ;
print $mod_included->output() ;
A noter qu'on peut même essayer des trucs comme :
my $mod_included = HTML::Template->new(filename => find_inc(%vals_base));
$mod_included->param(%vals_inc) ;
$vals_base{INSIDE} = $mod_included->output() ;
my $mod_base = HTML::Template->new(filename => "base.html") ;
$mod_base->param(%vals_base) ;
print $mod_base->output() ;
A ce moment là, je ne serai plus contraint par l'utilisation de
fonctions, car je dois l'avouer, celles-ci ne me servent qu'à pouvoir
simuler des variables globales :
Je ne comprend pas le raisonnement qui vous a poussé à utiliser des
fonctions pour représenter des variables (cf mon précédent post).
La deuxième raison de l'utilisation du module HTML::Tempalte::Expr est
de pouvoir bénéficier d'un batterie de test indispensable et plus
étendue que celle fournie par 'tmpl_if', ce qui simplifie visuellement
le développement des modèles : j'économise considérablement son
utilisation et celà clarifie le document.
La même structure de document doit être possible en n'utilisant que
tmpl_if. Il suffit de faire les test dans le CGI et de stocker leur
résultat dans un paramètre (ou pas).
Au passage, c'est peut-être l'utilisation de HTML::Template::Expr qui
ralentit votre script...
Oui, celà y contribue et c'est pour celà aussi que je proposais une
réorientation vers un module plus adapté, car comme vous pouvez le
voir, ce module m'est présentement indispensable avec HTML::Template.
Non, je ne crois pas.
Pour les mêmes raisons que celles évoquées par Paul G. l'utilisation de
tmpl_if et tmpl_include est "limite". Il est toujours préférable de gérer
ce genre de chose en amont, dans le CGI. Là il est possible d'ouvrir tous
les modèles que l'on souhaite, définis par des variables etc...
Dans le genre :
my $mod_base = HTML::Template->new(filename => "base.html") ;
$mod_base->param(%vals_base) ;
my $mod_included = HTML::Template->new(filename => find_inc(%vals_base));
$mod_included->param(%vals_inc) ;
print $mod_base->output() ;
print $mod_included->output() ;
A noter qu'on peut même essayer des trucs comme :
my $mod_included = HTML::Template->new(filename => find_inc(%vals_base));
$mod_included->param(%vals_inc) ;
$vals_base{INSIDE} = $mod_included->output() ;
my $mod_base = HTML::Template->new(filename => "base.html") ;
$mod_base->param(%vals_base) ;
print $mod_base->output() ;
A ce moment là, je ne serai plus contraint par l'utilisation de
fonctions, car je dois l'avouer, celles-ci ne me servent qu'à pouvoir
simuler des variables globales :
Je ne comprend pas le raisonnement qui vous a poussé à utiliser des
fonctions pour représenter des variables (cf mon précédent post).
La deuxième raison de l'utilisation du module HTML::Tempalte::Expr est
de pouvoir bénéficier d'un batterie de test indispensable et plus
étendue que celle fournie par 'tmpl_if', ce qui simplifie visuellement
le développement des modèles : j'économise considérablement son
utilisation et celà clarifie le document.
La même structure de document doit être possible en n'utilisant que
tmpl_if. Il suffit de faire les test dans le CGI et de stocker leur
résultat dans un paramètre (ou pas).
Au passage, c'est peut-être l'utilisation de HTML::Template::Expr qui
ralentit votre script...
Oui, celà y contribue et c'est pour celà aussi que je proposais une
réorientation vers un module plus adapté, car comme vous pouvez le
voir, ce module m'est présentement indispensable avec HTML::Template.
Non, je ne crois pas.
Pour les mêmes raisons que celles évoquées par Paul G. l'utilisation de
tmpl_if et tmpl_include est "limite". Il est toujours préférable de gérer
ce genre de chose en amont, dans le CGI. Là il est possible d'ouvrir tous
les modèles que l'on souhaite, définis par des variables etc...
Dans le genre :
my $mod_base = HTML::Template->new(filename => "base.html") ;
$mod_base->param(%vals_base) ;
my $mod_included = HTML::Template->new(filename => find_inc(%vals_base));
$mod_included->param(%vals_inc) ;
print $mod_base->output() ;
print $mod_included->output() ;
A noter qu'on peut même essayer des trucs comme :
my $mod_included = HTML::Template->new(filename => find_inc(%vals_base));
$mod_included->param(%vals_inc) ;
$vals_base{INSIDE} = $mod_included->output() ;
my $mod_base = HTML::Template->new(filename => "base.html") ;
$mod_base->param(%vals_base) ;
print $mod_base->output() ;
A ce moment là, je ne serai plus contraint par l'utilisation de
fonctions, car je dois l'avouer, celles-ci ne me servent qu'à pouvoir
simuler des variables globales :
Je ne comprend pas le raisonnement qui vous a poussé à utiliser des
fonctions pour représenter des variables (cf mon précédent post).
La deuxième raison de l'utilisation du module HTML::Tempalte::Expr est
de pouvoir bénéficier d'un batterie de test indispensable et plus
étendue que celle fournie par 'tmpl_if', ce qui simplifie visuellement
le développement des modèles : j'économise considérablement son
utilisation et celà clarifie le document.
La même structure de document doit être possible en n'utilisant que
tmpl_if. Il suffit de faire les test dans le CGI et de stocker leur
résultat dans un paramètre (ou pas).
Au passage, c'est peut-être l'utilisation de HTML::Template::Expr qui
ralentit votre script...
Oui, celà y contribue et c'est pour celà aussi que je proposais une
réorientation vers un module plus adapté, car comme vous pouvez le
voir, ce module m'est présentement indispensable avec HTML::Template.
Non, je ne crois pas.
La connection n'est pas un soucis. Les pages statiques sont très
rapides. Peut-être, il est vrai, devrais-je aussi m'assurer de la qualité des
échanges SQL pour la rapidité d'execution
Désolé d'avoir écorché le nom. Il s'agit de IPC::SharedCache.
J'en aurai besoin dans la mesure où la phase de compilation n'est plus
nécessaire dans HTML::Template, une fois le premier modèle compilé et mise en
cache, ce qui, d'après l'auteur accélère le fonctionnement de HTML::Template.
L'objectif d'utilisation est de faciliter l'injection de modèles dans un
modèle parent.
La connection n'est pas un soucis. Les pages statiques sont très
rapides. Peut-être, il est vrai, devrais-je aussi m'assurer de la qualité des
échanges SQL pour la rapidité d'execution
Désolé d'avoir écorché le nom. Il s'agit de IPC::SharedCache.
J'en aurai besoin dans la mesure où la phase de compilation n'est plus
nécessaire dans HTML::Template, une fois le premier modèle compilé et mise en
cache, ce qui, d'après l'auteur accélère le fonctionnement de HTML::Template.
L'objectif d'utilisation est de faciliter l'injection de modèles dans un
modèle parent.
La connection n'est pas un soucis. Les pages statiques sont très
rapides. Peut-être, il est vrai, devrais-je aussi m'assurer de la qualité des
échanges SQL pour la rapidité d'execution
Désolé d'avoir écorché le nom. Il s'agit de IPC::SharedCache.
J'en aurai besoin dans la mesure où la phase de compilation n'est plus
nécessaire dans HTML::Template, une fois le premier modèle compilé et mise en
cache, ce qui, d'après l'auteur accélère le fonctionnement de HTML::Template.
L'objectif d'utilisation est de faciliter l'injection de modèles dans un
modèle parent.
À (at) Fri, 01 Jul 2005 12:33:13 +0200,
"Jul" écrivait (wrote):
[...]La connection n'est pas un soucis. Les pages statiques sont très
rapides. Peut-être, il est vrai, devrais-je aussi m'assurer de la qualité
des échanges SQL pour la rapidité d'execution
Puisque vous utilisez un SGBD et puisque c'est du CGI classique (on sait
quand on fait du mod_perl), l'établissement d'une connexion entre le script
CGI et le SGBD a lieu à chaque requête. Cela peut-être très long (cas de
Oracle par exemple), très court (cas de MySQL) ou entre les deux (cas de
PostgreSQL). Mais dans tous les cas, ce temps n'est pas négligeable...
Désolé d'avoir écorché le nom. Il s'agit de IPC::SharedCache.
J'en aurai besoin dans la mesure où la phase de compilation n'est plus
nécessaire dans HTML::Template, une fois le premier modèle compilé et mise
en cache, ce qui, d'après l'auteur accélère le fonctionnement de
HTML::Template.
En fait, cela permet de stocker le résultat de la compilation d'un template
dans un segment de mémoire partagée que les différentes instances de votre
script iront consulter ensuite. Mais je ne suis pas sûr que l'utilisation
d'un segment de mémoire partagée soit possible sur un serveur mutualisé... À
voir.
De plus IPC::SharedCache fait en fait appel à IPC::ShareLite qui nécessite
l'accès à un compilateur C pour s'installer. Avez-vous accès à cela sur votre
serveur ? À moins que IPC::ShareLite soit déjà installé...
On peut aussi faire de "l'IPC du pauvre" en utilisant le module Storable pour
stocker l'état d'une structure dans un fichier. J'utilise souvent cette
méthode avec bonheur.
L'objectif d'utilisation est de faciliter l'injection de modèles dans un
modèle parent.
Comme le dit un autre contributeur, cela me semble faisable sans pour autant
utiliser HTML::Template::Expr.
Sinon, il existe un autre outil de template : Template-Toolkit. Il est
beaucoup plus général que HTML::Template et n'est sûrement pas plus simple à
installer/utiliser. Nous l'utilisons ici car il est performant, généraliste
et customisable grâce aux plugins (pour le meilleur comme pour le pire).
À (at) Fri, 01 Jul 2005 12:33:13 +0200,
"Jul" <julien@mesnews> écrivait (wrote):
[...]
La connection n'est pas un soucis. Les pages statiques sont très
rapides. Peut-être, il est vrai, devrais-je aussi m'assurer de la qualité
des échanges SQL pour la rapidité d'execution
Puisque vous utilisez un SGBD et puisque c'est du CGI classique (on sait
quand on fait du mod_perl), l'établissement d'une connexion entre le script
CGI et le SGBD a lieu à chaque requête. Cela peut-être très long (cas de
Oracle par exemple), très court (cas de MySQL) ou entre les deux (cas de
PostgreSQL). Mais dans tous les cas, ce temps n'est pas négligeable...
Désolé d'avoir écorché le nom. Il s'agit de IPC::SharedCache.
J'en aurai besoin dans la mesure où la phase de compilation n'est plus
nécessaire dans HTML::Template, une fois le premier modèle compilé et mise
en cache, ce qui, d'après l'auteur accélère le fonctionnement de
HTML::Template.
En fait, cela permet de stocker le résultat de la compilation d'un template
dans un segment de mémoire partagée que les différentes instances de votre
script iront consulter ensuite. Mais je ne suis pas sûr que l'utilisation
d'un segment de mémoire partagée soit possible sur un serveur mutualisé... À
voir.
De plus IPC::SharedCache fait en fait appel à IPC::ShareLite qui nécessite
l'accès à un compilateur C pour s'installer. Avez-vous accès à cela sur votre
serveur ? À moins que IPC::ShareLite soit déjà installé...
On peut aussi faire de "l'IPC du pauvre" en utilisant le module Storable pour
stocker l'état d'une structure dans un fichier. J'utilise souvent cette
méthode avec bonheur.
L'objectif d'utilisation est de faciliter l'injection de modèles dans un
modèle parent.
Comme le dit un autre contributeur, cela me semble faisable sans pour autant
utiliser HTML::Template::Expr.
Sinon, il existe un autre outil de template : Template-Toolkit. Il est
beaucoup plus général que HTML::Template et n'est sûrement pas plus simple à
installer/utiliser. Nous l'utilisons ici car il est performant, généraliste
et customisable grâce aux plugins (pour le meilleur comme pour le pire).
À (at) Fri, 01 Jul 2005 12:33:13 +0200,
"Jul" écrivait (wrote):
[...]La connection n'est pas un soucis. Les pages statiques sont très
rapides. Peut-être, il est vrai, devrais-je aussi m'assurer de la qualité
des échanges SQL pour la rapidité d'execution
Puisque vous utilisez un SGBD et puisque c'est du CGI classique (on sait
quand on fait du mod_perl), l'établissement d'une connexion entre le script
CGI et le SGBD a lieu à chaque requête. Cela peut-être très long (cas de
Oracle par exemple), très court (cas de MySQL) ou entre les deux (cas de
PostgreSQL). Mais dans tous les cas, ce temps n'est pas négligeable...
Désolé d'avoir écorché le nom. Il s'agit de IPC::SharedCache.
J'en aurai besoin dans la mesure où la phase de compilation n'est plus
nécessaire dans HTML::Template, une fois le premier modèle compilé et mise
en cache, ce qui, d'après l'auteur accélère le fonctionnement de
HTML::Template.
En fait, cela permet de stocker le résultat de la compilation d'un template
dans un segment de mémoire partagée que les différentes instances de votre
script iront consulter ensuite. Mais je ne suis pas sûr que l'utilisation
d'un segment de mémoire partagée soit possible sur un serveur mutualisé... À
voir.
De plus IPC::SharedCache fait en fait appel à IPC::ShareLite qui nécessite
l'accès à un compilateur C pour s'installer. Avez-vous accès à cela sur votre
serveur ? À moins que IPC::ShareLite soit déjà installé...
On peut aussi faire de "l'IPC du pauvre" en utilisant le module Storable pour
stocker l'état d'une structure dans un fichier. J'utilise souvent cette
méthode avec bonheur.
L'objectif d'utilisation est de faciliter l'injection de modèles dans un
modèle parent.
Comme le dit un autre contributeur, cela me semble faisable sans pour autant
utiliser HTML::Template::Expr.
Sinon, il existe un autre outil de template : Template-Toolkit. Il est
beaucoup plus général que HTML::Template et n'est sûrement pas plus simple à
installer/utiliser. Nous l'utilisons ici car il est performant, généraliste
et customisable grâce aux plugins (pour le meilleur comme pour le pire).
Il s'agit de MySQL, en effet. Ce que je crains à ce sujet, c'est que le
serveur soit situé sur une autre machine du réseau local, ce qui impliquerait
déjà une légère augmentation du temps de réponse.
On peut aussi faire de "l'IPC du pauvre" en utilisant le module Storable
pour stocker l'état d'une structure dans un fichier. J'utilise souvent
cette méthode avec bonheur.
C'est justement ce que je cherchais. Créer un dossier de cache pour
accueillir les compilations de modèles. Et n'arrivant pas à différencier
chaque type de cache manipulé par HTML::Template, j'ai cru que
IPC::SharedCache gérait aussi le cache sous forme de fichiers, soit qu'il
était nécessaire pour tout type d'utilisation du cache... Une chose que je
dois approfondir donc.
Il s'agit de MySQL, en effet. Ce que je crains à ce sujet, c'est que le
serveur soit situé sur une autre machine du réseau local, ce qui impliquerait
déjà une légère augmentation du temps de réponse.
On peut aussi faire de "l'IPC du pauvre" en utilisant le module Storable
pour stocker l'état d'une structure dans un fichier. J'utilise souvent
cette méthode avec bonheur.
C'est justement ce que je cherchais. Créer un dossier de cache pour
accueillir les compilations de modèles. Et n'arrivant pas à différencier
chaque type de cache manipulé par HTML::Template, j'ai cru que
IPC::SharedCache gérait aussi le cache sous forme de fichiers, soit qu'il
était nécessaire pour tout type d'utilisation du cache... Une chose que je
dois approfondir donc.
Il s'agit de MySQL, en effet. Ce que je crains à ce sujet, c'est que le
serveur soit situé sur une autre machine du réseau local, ce qui impliquerait
déjà une légère augmentation du temps de réponse.
On peut aussi faire de "l'IPC du pauvre" en utilisant le module Storable
pour stocker l'état d'une structure dans un fichier. J'utilise souvent
cette méthode avec bonheur.
C'est justement ce que je cherchais. Créer un dossier de cache pour
accueillir les compilations de modèles. Et n'arrivant pas à différencier
chaque type de cache manipulé par HTML::Template, j'ai cru que
IPC::SharedCache gérait aussi le cache sous forme de fichiers, soit qu'il
était nécessaire pour tout type d'utilisation du cache... Une chose que je
dois approfondir donc.
À (at) Fri, 01 Jul 2005 15:19:04 +0200,
"Jul" écrivait (wrote):Il s'agit de MySQL, en effet. Ce que je crains à ce sujet, c'est que le
serveur soit situé sur une autre machine du réseau local, ce qui
impliquerait déjà une légère augmentation du temps de réponse.
Sur un réseau local rapide (ce qui est certainement le cas actuellement),
vous ne verrez quasiment pas de différence entre une instance locale et une
instance distante... sauf bien sûr si le réseau est saturé.
On peut aussi faire de "l'IPC du pauvre" en utilisant le module Storable
pour stocker l'état d'une structure dans un fichier. J'utilise souvent
cette méthode avec bonheur.
C'est justement ce que je cherchais. Créer un dossier de cache pour
accueillir les compilations de modèles. Et n'arrivant pas à différencier
chaque type de cache manipulé par HTML::Template, j'ai cru que
IPC::SharedCache gérait aussi le cache sous forme de fichiers, soit qu'il
était nécessaire pour tout type d'utilisation du cache... Une chose que je
dois approfondir donc.
L'utilisation de 'Storable' est très simple. Pour stocker l'objet $obj :
store $obj, $filename; # (*)
Pour recréer cet objet :
$obj = retrieve $filename;
La seule limitiation c'est d'éventuelles références à du code dans
l'objet. Mais je ne pense pas que HTML::Template en utilise (à vérifier).
(*) pour obtenir un fichier indépendant de la plateforme, il faut utiliser
'nstore'.
À (at) Fri, 01 Jul 2005 15:19:04 +0200,
"Jul" <julien@mesnews> écrivait (wrote):
Il s'agit de MySQL, en effet. Ce que je crains à ce sujet, c'est que le
serveur soit situé sur une autre machine du réseau local, ce qui
impliquerait déjà une légère augmentation du temps de réponse.
Sur un réseau local rapide (ce qui est certainement le cas actuellement),
vous ne verrez quasiment pas de différence entre une instance locale et une
instance distante... sauf bien sûr si le réseau est saturé.
On peut aussi faire de "l'IPC du pauvre" en utilisant le module Storable
pour stocker l'état d'une structure dans un fichier. J'utilise souvent
cette méthode avec bonheur.
C'est justement ce que je cherchais. Créer un dossier de cache pour
accueillir les compilations de modèles. Et n'arrivant pas à différencier
chaque type de cache manipulé par HTML::Template, j'ai cru que
IPC::SharedCache gérait aussi le cache sous forme de fichiers, soit qu'il
était nécessaire pour tout type d'utilisation du cache... Une chose que je
dois approfondir donc.
L'utilisation de 'Storable' est très simple. Pour stocker l'objet $obj :
store $obj, $filename; # (*)
Pour recréer cet objet :
$obj = retrieve $filename;
La seule limitiation c'est d'éventuelles références à du code dans
l'objet. Mais je ne pense pas que HTML::Template en utilise (à vérifier).
(*) pour obtenir un fichier indépendant de la plateforme, il faut utiliser
'nstore'.
À (at) Fri, 01 Jul 2005 15:19:04 +0200,
"Jul" écrivait (wrote):Il s'agit de MySQL, en effet. Ce que je crains à ce sujet, c'est que le
serveur soit situé sur une autre machine du réseau local, ce qui
impliquerait déjà une légère augmentation du temps de réponse.
Sur un réseau local rapide (ce qui est certainement le cas actuellement),
vous ne verrez quasiment pas de différence entre une instance locale et une
instance distante... sauf bien sûr si le réseau est saturé.
On peut aussi faire de "l'IPC du pauvre" en utilisant le module Storable
pour stocker l'état d'une structure dans un fichier. J'utilise souvent
cette méthode avec bonheur.
C'est justement ce que je cherchais. Créer un dossier de cache pour
accueillir les compilations de modèles. Et n'arrivant pas à différencier
chaque type de cache manipulé par HTML::Template, j'ai cru que
IPC::SharedCache gérait aussi le cache sous forme de fichiers, soit qu'il
était nécessaire pour tout type d'utilisation du cache... Une chose que je
dois approfondir donc.
L'utilisation de 'Storable' est très simple. Pour stocker l'objet $obj :
store $obj, $filename; # (*)
Pour recréer cet objet :
$obj = retrieve $filename;
La seule limitiation c'est d'éventuelles références à du code dans
l'objet. Mais je ne pense pas que HTML::Template en utilise (à vérifier).
(*) pour obtenir un fichier indépendant de la plateforme, il faut utiliser
'nstore'.