CLASSE XML ULTRA LITE

shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014 - 7 janv. 2007 à 15:13
FredArmoni Messages postés 153 Date d'inscription vendredi 2 mai 2003 Statut Modérateur Dernière intervention 2 avril 2010 - 29 avril 2009 à 12:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41004-classe-xml-ultra-lite

FredArmoni Messages postés 153 Date d'inscription vendredi 2 mai 2003 Statut Modérateur Dernière intervention 2 avril 2010
29 avril 2009 à 12:36
Et en plus simple :
<test/>
plante aussi ...
FredArmoni Messages postés 153 Date d'inscription vendredi 2 mai 2003 Statut Modérateur Dernière intervention 2 avril 2010
29 avril 2009 à 12:28
Bonjour,
a priori il y a un petit effet indésirable sur les balises xml autofermantes du type
xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009
13 févr. 2008 à 11:44
Bonjour bAzilew,

C'est sympa de m'avoir cité dans ton projet.

Bonne continuation :-)

Xterminhate.
shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014
9 janv. 2007 à 22:45
Arnotic > "la décompression te bouffe du temps et du CPU pour rien"
bah non, pas pour rien ^^
et puis ton CPU, il est là pour faire quelque chose XD
tes arguments sont tout aussi applicables à une image au format PNG / JPEG ou autre
pourquoi ne pas utiliser du RAW brut ? ;-)

de toute façon, le choix entre pratique (xml) et rapide (binaire) a toujours été et restera un choix (discutable ou non) à faire dans une application

et même si le format xml c'est du texte à la base, rien n'empêche de créer un dictionnaire de clefs binaires au chargement (une sorte de compilation) comme le font les langages de script (LUA par exemple est utilisé par World of Warcraft pour les interfaces)

à force d'économiser votre "temps cpu" il va finir par s'ennuyer ^^ (joke)
bAzilew Messages postés 23 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 23 mars 2007
9 janv. 2007 à 12:01
à quand la petite note ? ;)
bAzilew Messages postés 23 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 23 mars 2007
9 janv. 2007 à 11:53
http://www.w3.org/TR/xbc-properties/
Fichtre, une librairie pour le xbc se code déjà moin à l'aveugle.. c'est autrement plus complexe que le xml :)
Naloj Messages postés 6 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 26 février 2007
9 janv. 2007 à 07:27
oui, mais alors dans ce cas à part le binaire, y'a plus d'idéal :S. Question fichier de config, ça doit rester raisonnable en taille même sans compression.
Une norme de XML binaire est aussi en cours d'élaboration par le W3C: le XBC. Je ne sais pas ce que ça peut donner mais c'est intéressant.
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
9 janv. 2007 à 00:56
Donc si tu es obligé de compressé pour gagner de la place ; à la lecture il faut que tu décompresses --> conclusion la décompression te bouffe du temps et du CPU pour rien. Idem lorsque tu dois fermer le fichier ou il faut que tu le compresse.
C'est bien ce qu'on dit c'est un amuse CPU.
Naloj Messages postés 6 Date d'inscription mardi 21 septembre 2004 Statut Membre Dernière intervention 26 février 2007
8 janv. 2007 à 23:43
Le poids est un faux argument contre le XML: ses redondances balises et attributs se compressent très bien du fait qu'elles deviennent automatiquement des mots de la compression Huffman : http://fr.wikipedia.org/wiki/Compression_de_donn%C3%A9es
Je partage la position que c'est un descripteur de donnée très pratique. A la FAC, on l'utilise pour décrire des listes d'objets dans les environnements de jeux, et toute sorte de chose. En ce moment, je m'en sert sur un projet libre de jeu 2D pour décrire des types de terrains, l'avantage de la verbosité du XML est sa simplicité de compréhension pour les utilisateurs qui pourront le modifier et ajouter des terrains eux-même.
Enfin, moi je trouve ça bien pratique.
bAzilew Messages postés 23 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 23 mars 2007
8 janv. 2007 à 10:32
oOOops, je me suis trompé de zip. C'est revenu dans l'ordre :)
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
8 janv. 2007 à 08:45
Le ZIP ne contient qu'un client IRC. Je ne vois aucune trace de ta classe permettant de parser le XML. Est-ce normal ?
bAzilew Messages postés 23 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 23 mars 2007
8 janv. 2007 à 01:09
J'en ai besoin, y compris au bureau, parce que bcp de gens aiment suivre les modes, et qu'ils faut le reconnaitre, elle ont aussi leurs avantage.
Par exemple l'irc, ca fait 15 ans qu'on l'utilise, et pourtant, il y a des façons plus efficaces de communiquer entre un programme et un serveur qu'en utilisant un language trop humain pour être rapide. mais on l'utilise toujours ...
Si chaque logiciel, utilise sa petite soupe plutot qu'utiliser un "standard", on a 15000 formats, et au moment ou on veut connecter les choses entre elles, on s'appercoit qu'on aurait peut être gagné du temps à en faire perdre à son cpu au début. pour revenir au xml, l'editer c'est facile, on utilise le wordpad, par exemple, et même un profane peut le modifier sans soucis. Si il y avait un standard binaire (il y en a surement des tonnes ..) accompagné de son editeur, disont un xmlpad .. il devient aussi facil pour n'importe qui de modifier son petit fichier de config, et le format reste adapté. Le probleme ce n'est pas les 100Mo d'ascii sur des disque dur contement croissant, c'est que 1000x 100Mo plus le temps consacré à l'analyser ca devient critique.
Qd les systemes deviennent complexe, le manque d'optimisation de toutes les petites briques qui les composes en font des machines à gaz lourdes et peut efficientes. Il faut considerer tout ca de façon plus globale.
C'est pas pour rien si un jour les dizaines de .ini de c:\windows se sont transformé en base de registre ... editeur simple, tout le monde gagne et ce n'est qu'un exemple.
shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014
8 janv. 2007 à 00:28
"editer, mais quand un prog doit-il éditer sa config ???"
depuis quand il n'y a que des programmeurs sur les projets ?
s'il faut écrire un editeur pour modifier une interface on a pas fini, c'est beaucoup plus simple s'il s'agit d'un fichier texte
le tout binaire n'est pas la bonne solution pour l'avenir

sur le disque c'est compressé (zip ou autre)
et c'est décompressé par le programme à la lecture
et puis avec les espaces de stockage qu'on a aujourd'hui, on va pas chilare pour 100Mo ou même 1Go
les données que je traite avec des parsers au boulot sont en ascii (je choisi pas mais ça m'arrange) et on commence à s'approcher des 20Go

enfin, vous n'avez peut-etre pas cette vision là vu que vous n'en avez pas besoin
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 janv. 2007 à 20:31
C'est clair et je ne me gratte pas pour le dire.
bAzilew Messages postés 23 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 23 mars 2007
7 janv. 2007 à 20:22
soit dit en passant, des "amuse CPU" comme tu aime le dire, il y en a dans bcp de mode ...
bAzilew Messages postés 23 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 23 mars 2007
7 janv. 2007 à 20:17
Personellement, je n'utilise que très rarement le xml pour des fichiers de config ... Il est clair que des structures binaires sont 1001 fois plus adaptées, en tous cas, coté programme.
Mais c'est tout de même bien pratique, quand un utilisateur doit metre les main à l'interieur, s'il n'y a pas de gui pour modifier la config.

Même pour le web, ce n'est pas super. Ca permet à l'homme d'y mettre ses main et comprendre, mais àpart ca, ca fait surtout perdre un max de place sur les dd. Utiliser le xml en base de donnée, je trouve ca absurde. Et pourtant, je suis tombé ces derniers temps sur un prog (concurent) qui ne se servait que de ca, pour stocker ses bases clients etc ... les fichiers atteignaient les 100Mo.

Quelque part, ca me fait plaisir que d'autres n'en pensent pas moin, je me suis toujours dit que le xml devait être util, pour les "autres"..
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 janv. 2007 à 18:00
editer, mais quand un prog doit-il éditer sa config ??? Il la lit et la réécrit si besoin, en Ko si binaire au lieu des Mo nécessaires au xml avec traduc des valeurs binaires en ascii et autres joyeusetés qui occupent nos CPUs et disques inutilment.
Faut se méfier des modes, elles passeront, j'en ai connu tellement reléguées aux oubliettes de l'informatique.
shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014
7 janv. 2007 à 17:40
editer un fichier texte est autrement plus facile que d'éditer un fichier binaire, et quand il s'agit de décrire une GUI, le xml est un parfait descripteur
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 janv. 2007 à 15:51
Fichiers de config en xml, pourrais-tu nous expliquer en quoi c'est le top ???
Hors passage d'infos entre OS différents ou weberie, je ne vois pas l'intérêt de ralentir un prog avec du parsing texte comparé au quasi instantané obtenu par des structures binaires.
bAzilew Messages postés 23 Date d'inscription jeudi 16 mars 2006 Statut Membre Dernière intervention 23 mars 2007
7 janv. 2007 à 15:46
Effectivement, le code produit n'est pas complètement portable, d'autant que j'ai utilisé des trucs propre à Windows me semble t il. Mais je ne pense pas que la différence de vitesse entre les deux libs ne puisse venir que de l'algo en lui même, mais plutôt du très grand nombre d'allocation mémoire effectuée dans un gros fichier. Je vais réfléchir à une approche différente comme ne décoder le fichier qu'en stockant les clef + attribut + valeurs dans la même "variable" et ne faire le décodage final qu'au moment de la recherche ou de l'extraction d'une valeur. Mais ds ce cas, c'est la recherche d'une clef qui va prendre du temps. Dans l'exemple présent, la recherche est extrêmement rapide. Il est aussi possible de rendre le code portable, et ne faire qu'une interface avec la stl, au moment de retourner la valeur. Je ne vois pas trop l'interet d'utiliser la stl pour tout l'algo.
Je me demande à quel niveau de performance les autres libs xml se positionnent si qqn a déjà fait un essai sur un fichier contenant + de 2,5M de clef, j'aimerai bien savoir ;))
shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014
7 janv. 2007 à 15:13
dommage que tu n'utilises pas la stl, ce n'est pas ça qui ralenti le code à ce point mais l'utilisation qu'on en fait
réessaierais-tu avec la stl pour voir si tu arrives à un résultat probant ?

bonne initiative en tout cas, ton code m'intéresse, les fichiers de config en xml c'est le top et comme ils peuvent devenir gros il vaut mieux une lib rapide ;-)
Rejoignez-nous