Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Liens contextuels :

Auteur Pages : [<]
matmat
# 21 Feb 2008 - 20:38:27
Citer
696 Posts
(reprise du message précédent)

ce serait possible d'avoir le détail de comment on été effectués ces tests?
Modifié par matmat (22 Feb 2008 - 00:15)

http://www.smart-com.com.mx msn 
^
warry
# 21 Feb 2008 - 20:44:34
Citer
30 Posts
matmat a écrit :
ce serait possible d'avoir le détail de comment on était effectués ces tests?

Tests sur un serveur PHP5, cache et optimisers désactivés.

voici le code pour XML :
  $dom = new DomDocument;
$dom->load("test.xml");

Et celui pour MySQL :
function connexionSQL() {
$idcom = mysql_connect('localhost','root','root');
$idbase = mysql_select_db('deust');
return $idcom;
}

$idcom = connexionSQL();
$requete = "SELECT test from test";
$idresult = mysql_query($requete,$idcom) or die(mysql_error());

mysql_close();


Avec pour chaque 100 entrées
MySQL : 0.0093
XML : 0.0212

Avec pour chaque 1000 entrées :
MySQL : 0.141
XML : 0.0231

J'ai l'impression que MySQL a un cache, que je n'arrive pas à désactiver. Je crois avoir réussi à faire une requete de chaque sans le cache avec les résultats au dessus.
Le reste du temps, MySQL tourne autour de 0.0010 pour 100 et 0.0040 pour 1000, et pour les 2 cas de figure XML tourne autour de 200

La requête demande pour l'XML :
$start_time = microtime();


$dom = new DomDocument;
$dom->load("test.xml");

foreach ($dom->documentElement->childNodes as $item) {
$req .= $item->nodeValue;
}

$end_time = microtime();

Pour mysql :
$start_time = microtime();

function connexionSQL() {
$idcom = mysql_connect('localhost','root','root');
$idbase = mysql_select_db('deust');
return $idcom;
}

$idcom = connexionSQL();
$requete = "SELECT test from test";
$idresult = mysql_query($requete,$idcom) or die(mysql_error());

while ($item = mysql_fetch_assoc($idresult)) {
$req .= $item['test'];
};
mysql_close();

$end_time = microtime();

Modifié par warry (21 Feb 2008 - 21:43)

http://www.warry.fr msn 
^
warry
# 21 Feb 2008 - 22:18:51
Citer
30 Posts
J'ai l'impression que mes calculs n'ont pas grande valeur... Mais apparemment, l'API DOM serait tout de même bien plus lente que MySQL.

Demain, je ferai un test avec un XSL pour avoir une vraie idée, et avec des requetes MySQL équivalentes.
Modifié par warry (21 Feb 2008 - 22:19)

http://www.warry.fr msn 
^
matmat
# 21 Feb 2008 - 23:45:49
Citer
696 Posts
Avec pour chaque 100 entrées
MySQL : 0.0093
XML : 0.0212

Avec pour chaque 1000 entrées :
MySQL : 0.141
XML : 0.0231


Je ne comprend pas trop ces resultats, les résultats sont identiques pour xml avec 100 ou 1000 entrées?

http://www.smart-com.com.mx msn 
^
Benjamin D.C.
# 21 Feb 2008 - 23:51:30
Citer
Modérateur
2177 Posts
matmat a écrit :
comment on était effectués
Désolé mais ça c'était trop gros:
"Comment ont été effectués"…

This is the way, step inside.

http://deaxon.com 
^
matmat
# 22 Feb 2008 - 00:15:50
Citer
696 Posts
confused La mer c'est la grammaire et moi je suis dans la chaussure
Modifié par matmat (22 Feb 2008 - 00:16)

http://www.smart-com.com.mx msn 
^
matmat
# 22 Feb 2008 - 01:11:38
Citer
696 Posts
Je viens d'effectuer d'autres tests :

Tout d'abord j'ai comparé xml/xsl avec php/mysql en sortant les résultats avec de simple echo :


$result = mysql_query("SELECT title,text FROM article");

$i = 0;
while($arr = mysql_fetch_array($result)){
echo '<h2>'.$arr['title'].'</h2>';
echo '<p>'.$arr['text'].'</p>';
$i++;
}


vs


$xml = domxml_open_file('data.xml');
$xsl = domxml_xslt_stylesheet_file('template.xsl');
$html = $xsl->process($xml);
echo $html->dump_mem();


Les resultats : http://www.smart-com.com.mx/bench/onlyphp.php et http://www.smart-com.com.mx/bench/xml.php
Le résultat est en bas de la page en ms.
On voit que les résultats du xml sont beaucoups plus "stables", le résultat est quasiment tout le temps identique du fait que le cpu tourne beaucoup moins. Par contre en moyenne la solution mysql est légèrement plus rapide.

Seulement amenons maintenant un nouveaux paramètre, personnellement je ne conçoit pas un cms sans utiliser des templates, c'est impossible à gérer au bout d'un moment. Donc le test précédent est faussé vu que la solution xml permet d'utiliser les templates xsl (par ailleurs trés sympa à utiliser) alors que la solution mysql/php pour l'instant nous propose un joyeux mélange.

Pour que l'on puisse réellement comparer les deux solutions il faut rajouter a notre solution mysql un moteur de template. xsl est très riche on ne peut donc pas se contenter d'un petite classe de sortie html, rajoutons Smarty, qui est un moteur performant est reconnu est voyons les résultats http://www.smart-com.com.mx/bench/smarty.php :


require('smarty/libs/Smarty.class.php');

$result = mysql_query("SELECT title,text FROM article");

$i = 0;
while($arr = mysql_fetch_array($result)){
$articles[$i]['title'] = $arr['title'];
$articles[$i]['text'] = $arr['text'];
$i++;
}

$smarty = new Smarty();
$smarty->assign('articles', $articles);
$smarty->display('test.tpl');


Le xml est largement vainqueur !

Conclusion : Les performances ne semblent donc pas un frein à la solution xml/xls au contraire un avantage, il faut voir maintenant le coté pratique des includes, templates multiples cache etc... mais bon pour ça la seule solution est de commencer a coder le cms...
Modifié par matmat (22 Feb 2008 - 01:35)

http://www.smart-com.com.mx msn 
^
warry
# 22 Feb 2008 - 02:29:59
Citer
30 Posts
Tes résultats correspondent à ce que je commencais à voir au fur et à mesure que j'augmentais le nombre de requêtes. Ce qui me fait peur c'est que je commencais à avoir de mauvais résultats en ajoutant des chargements de nouveaux fichiers (avec php), demain je fais les Bench avec include en XSL pour être vraiment sûr. Mais en même temps tu as bien montré qu'il y avait de la marge par rapport à l'utilisation de templates !

Sinon j'ai commencé répertorier les classes, méthode etc... Si je peux je le recréerai en UML.

Merci beaucoup pour ton aide et bonne nuit !
Modifié par warry (22 Feb 2008 - 02:36)

http://www.warry.fr msn 
^
Julien Royer
# 01 Mar 2008 - 12:49:51
Citer
Coin coin
Modérateur
3537 Posts
Salut,

Suis-je médisant ou ai-je raison de penser que vous n'avez pas envisagé grand nombre des problèmes que l'on peut rencontrer en remplaçant une solution fiable de stockage des données (SGBD) par des fichiers sur le filesystem ?
- Gestion des erreurs
- Concurrence
- Transactions
- Indexage des données
- Migration
- ...

Un SGBD est loin d'être quelque chose de simple... Et ne parlons pas de la quantité de fonctionnalités que l'on retrouve dans un SGBD :
- Gestion des contraintes
- Triggers
- Procédures stockées
- Séquences/autoincrement
- ...
Modifié par Julien Royer (01 Mar 2008 - 12:50)

^
Changaco
# 02 Mar 2008 - 20:02:11
Citer
ex-CNeo
632 Posts
En tout cas j'aime bien l'idée d'utiliser XSLT pour la gestion des skins, c'est tout à fait ce que je cherchais pour mon CMS. En supposant que je le finisse un jour ça en fera parti. langue

Firefox peut intégrer un correcteur d'orthographe française.

http://www.changaco.net 
^
warry
# 02 Mar 2008 - 20:09:00
Citer
30 Posts
Julien Royer a écrit :
Salut,

Suis-je médisant ou ai-je raison de penser que vous n'avez pas envisagé grand nombre des problèmes que l'on peut rencontrer en remplaçant une solution fiable de stockage des données (SGBD) par des fichiers sur le filesystem ?
- Gestion des erreurs
- Concurrence
- Transactions
- Indexage des données
- Migration
- ...

Un SGBD est loin d'être quelque chose de simple... Et ne parlons pas de la quantité de fonctionnalités que l'on retrouve dans un SGBD :
- Gestion des contraintes
- Triggers
- Procédures stockées
- Séquences/autoincrement
- ...

Non c'est exact, mais dans un autre sens, une récupèration de sémantique à l'intérieur d'une BDD n'est pas facile non plus. Et comme cité plus haut, ce serait vraiment pour des sites de petites et moyennes taille smile

Je suis extrêmement débordé depuis une semaine, et encore pour une semaine ! J'essaierai de développer un peu pour mes trucs persos. Sinon j'ai trouvé un script PHP qui ressemble un peu à ce CMS (dans le principe), mais utilise MySQL : Pure Edit. C'est un script qui s'occupe uniquement de remplir la bdd en analysant les BDD déjà construite, au lieu de créer des XML à partir de XML templates.

Bon dimanche soir à tous !

http://www.warry.fr msn 
^
Xavier
# 04 Mar 2008 - 16:38:37
Citer
581 Posts
Bonjour,

Je remarque cette discussion bien tard, mais à tout hasard :

J'ai développé il y a 4 ans un ensemble XML XSLT PHP pour le développement et la maintenance de sites web. Il n'y a pas d'interface pour manipuler ces outils. Mais le principe de fonctionnement doit se rapprocher de la vision exposée au début de la discussion :
- un modèle XML décrivant l'intégralité de la structure du site web
- des fichiers XML de contenus
- une transformation XSLT qui rassemble soit les contenus d'une page, soit même l'ensemble de tous les contenus d'un site
- un second niveau de transformation XSLT qui applique les templates de structure des pages web

Le système automatise à partir du modèle certains aspects tel que la création des menus, le plan du site ou plans de rubrique.

Je peux éventuellement fournir les fichiers.

http://www.ultra-fluide.com/ressources.htm 
^
warry
# 04 Mar 2008 - 19:22:35
Citer
30 Posts
Xavier a écrit :
Bonjour,

Je remarque cette discussion bien tard, mais à tout hasard :

J'ai développé il y a 4 ans un ensemble XML XSLT PHP pour le développement et la maintenance de sites web. Il n'y a pas d'interface pour manipuler ces outils. Mais le principe de fonctionnement doit se rapprocher de la vision exposée au début de la discussion :
- un modèle XML décrivant l'intégralité de la structure du site web
- des fichiers XML de contenus
- une transformation XSLT qui rassemble soit les contenus d'une page, soit même l'ensemble de tous les contenus d'un site
- un second niveau de transformation XSLT qui applique les templates de structure des pages web

Le système automatise à partir du modèle certains aspects tel que la création des menus, le plan du site ou plans de rubrique.

Je peux éventuellement fournir les fichiers.


Bonjour,

Cela peut effectivement être très intéressant, au moins pour voir la façon dont tu as procédé. C'est une version stable ? 2crite en php4 ou php5 ? Je serais vraiment curieux de voir comment tu as abordé l'arborescence, et la gestion des templates XML smile

Je suis dispo sur MSN et MP.
Merci à toi !

http://www.warry.fr msn 
^
Xavier
# 05 Mar 2008 - 13:54:09
Citer
581 Posts
Je ne sais pas si la notion de stable a vraiment un sens, vu que je fais un usage strictement interne de l'outil. Il n'y a pas de gestion de versions. En revanche, cela fonction bien. Je gère plusieurs sites de cette façon, le plus volumineux ayant probablement environ 200 pages.

La partie php existe en php4 et php5, mais cela fait longtemps que je n'utilise plus php4.

J'ai oublié dans mon précédent post de préciser l'une des fonctionnalités de l'outil :
- soit application dynamique des templates sur les contenus (j'utilise cette possibilité lors du développement d'un site)
- soit génération en back office de toutes les pages web du site
Il est également possible d'utiliser un mixte des 2, c'est ce que je fais en production habituellement. Dans ce cas le php reprend la main lorsqu'un contenu statique fait défaut, soit pour proposer une page d'erreur, soit au contraire pour effectuer une redirection (301 par exemple).

De façon connexe, j'ai développé un autre outil XSLT qui peut être intégré à un CMS.

Communique moi ton mail par MP, je te t'enverrai un site web complet afin que tu te fasses une idée.

http://www.ultra-fluide.com/ressources.htm 
^
warry
# 17 Apr 2008 - 16:56:23
Citer
30 Posts
Bonjour tout le monde !

Un léger déterrage de post, pour montrer ce que j'ai fait pour le moment (et montrer que malgrès le peu de temps que j'ai, ca avance). A l'heure d'aujourd'hui c'est super léger (en fonctionnalités), il reste un bug, et des tas de fonctions à implémenter/améliorer. J'ai nommé ça alpha01, parce qu'il n'y a rien avant alpha !

Donc les script peuvent uniquement créer un formulaire depuis un template xml, et enregistrer le XML, et encore, vu que les boucles sont pas encore gérées. Si vous voulez quand même tester et peut-être me faire quelques feedbacks ce serai cool !

le fichier est ici : www.warry.fr/cms_alpha01.zip
Il faut changer les variables dans www/moteur/classes/variables/configuration.php et ca roule.

Have fun !

http://www.warry.fr msn 
^
warry
# 17 Apr 2008 - 17:00:44
Citer
30 Posts
Au passage :

@Xavier : je n'ai pas réussi à faire marcher ton code, et j'avoue que je n'ai pas eu le courage de me plonger dans les entrailles pour le moment !

http://www.warry.fr msn 
^
Pages : [<]

référencesLes références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org

Nos partenaires : Editions Eyrolles - Location vacances France - Location vacances Europe

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.8 beta © dew
Contacter l'administrateur - 74.4 ms - Charte