Aller au menu - Aller au contenu

Sortie du framework web Nitrogen

Revenir à la liste des news
Participer à la discussion

Informations

Contributeur(s) : rks`
Publié : le 24/11/2008 à 06:59:16
Catégorie : Programmation
Visualisations : 3 018

Sortie du framework web Nitrogen

S'il y a bien une nouvelle qui a surpris toute la (petite) communauté des amateurs du langage Erlang ces derniers mois, c'est celle-ci : la publication d'un framework web complet pour le développement rapide d'applications « Web 2.0 ». Mais il y a mieux : son créateur est un parfait inconnu de la communauté, et le tout sort avec une vidéo de présentation qui singe celles que l'on a pu voir à la sortie du célèbre Ruby on Rails. Son nom ? Nitrogen.

Rusty Klophaus, car tel est le nom du père du framework, a d'ailleurs su cultiver l'effet « buzz » de son annonce. Le 16 octobre, quelqu'un poste sur la section de reddit consacrée à Erlang un message mentionnant la sortie d'un framework web orienté évènements, pour Erlang. La réaction de Klophaus ? Quasiment nulle : le développeur se contente de donner quelques réponses à ce message ainsi qu'un lien vers une vidéo de démonstration, et d'ajouter que la source ne pourra être téléchargée qu'à la mi-novembre.

Nombreux étaient les impatients !

Un framework web qui fait envie



Bien sûr, il faut relativiser le côté exceptionnel de l'affaire. Des frameworks web, il en sort tous les jours, et pour tous les langages. C'est à se demander s'il n'y a pas plus de frameworks différents que de sites pour les utiliser !

Ainsi, même si Erlang a été initialement développé par Ericsson pour gérer des réseaux téléphoniques (voir une précédente news sur Ejabberd, un serveur XMPP développé en Erlang), son utilisation s'est démocratisée peu à peu, et il existait déjà des projets de framework web. Par exemple, Erlyweb, développé par Yariv Sadan, qui n'a malheureusement jamais atteint de version stable.

Des exemples très Web 2.0



Image utilisateur
Mais c'est là que Nitrogen a suscité l'attention : Klophaus en a retardé la sortie exprès pour donner un peu de consistance à son projet. Ainsi, il prouve l'utilité de ses travaux en fournissant deux exemples de sites qui l'utilisent.

Le premier, Stitcho, vous permet d'être prévenu quasi immédiatement à la sortie d'un nouvel article (ou d'une nouvelle news) sur vos sites favoris. Vous pouvez télécharger un petit client (pour Windows ou Mac OS X) qui fera automatiquement le lien avec le serveur de Stitcho, lui-même s'occupant de surveiller les sites. Un développeur peut également l'intégrer à son site, de façon à ce que ses utilisateurs bénéficient du plus grand nombre de notifications possibles.

Le second exemple est du même genre : em5k permet au webmestre de visualiser le trafic sur son site. Pour cela, il lui suffit de placer sur ses pages un petit code JavaScript qui contactera em5k… et il sera alors possible de récupérer un graphique indiquant la fréquentation du site en fonction du temps.

Quelques caractéristiques



Des généralités



Ces deux applications ont un point commun : elles nécessitent une grande disponibilité du service, qui peut être très sollicité à n'importe quel moment, et qui doit pourtant rester actif. Ça tombe bien, c'est ce pourquoi Erlang existe !

L'utilisation de Nitrogen fait donc sens. Entrons un peu dans les détails : développé en Erlang pour Erlang, il supporte les serveurs Yaws, le plus populaire des serveurs HTTP écrits en Erlang, ou Mochiweb, un projet encore jeune qui vise la légèreté et la gestion d'une quantité importante de connexions simultanées. Le choix de la base de données est laissé à l'utilisateur : Mnesia, PostgreSQL, MySQL...

Naturellement, impossible de prétendre être un serveur d'applications Web 2.0 sans support de la technologie Ajax : tout Nitrogen s'appuie sur la bibliothèque Scriptaculous, à l'instar de RoR ou Seaside. Naturellement, si cette bibliothèque est intégrée dans Nitrogen, c'est pour que son utilisation soit transparente. C'est donc principalement en vous servant d'une fonctionnalité intéressante de Nitrogen, les éléments, que vous utiliserez Scriptaculous.

Les éléments Nitrogen



Bien que le concept soit encore en développement, Nitrogen s'appuie sur les éléments pour modeler les pages. Le développeur construit la page en utilisant, à la place d'un code balisé habituel, des records (enregistrements) Erlang. Voici un petit exemple :

Code : Erlang
1
2
3
4
5
6
7
Body = #body { body=[
    #panel { body=[
        #label { text="Ceci est un label." },
        #label { id=label1, text="Ceci est un autre label, avec un nom." },
        #button { id=button1, class=mybutton, text="Pressez-moi !" }
    ]}
]}


Comme vous pouvez le voir, la structure de la page est entièrement construite en Erlang (les éléments intérieurs à d'autres se rangent dans des listes). Ce système n'est absolument pas novateur, mais tout de même plus confortable que les équivalents qui lui précédaient dans le langage Erlang.

A priori, rien de bien surprenant donc, et vous pourriez penser que ce sont juste des balises retranscrites. Mais le développeur est invité à définir ses propres composants, ainsi que le code qui produit la sortie HTML.

Plus intéressant encore, il est possible, à la création ou plus loin dans le code, de relier des évènements aux éléments (si vous étudiez un peu le code ci-dessus, vous verrez que certains éléments sont nommés). On peut ainsi relier facilement un comportement particulier à un élément de la page, juste avec son nom. Et un évènement.

Orienté évènements



La particularité la plus importante de Nitrogen est en effet de proposer une conception « orientée évènements » des applications, alors que la plupart des frameworks web actuels présentent plutôt un modèle MVC. La raison évoquée par Klophaus est que, si les gens aiment le modèle MVC pour le développement web, c'est parce qu'il apporte de l'ordre et un peu de rigueur à des langages de scripts qui permettent facilement d'en manquer. Selon lui, Erlang, en tant que langage fonctionnel, n'a pas besoin d'un modèle particulier pour être rigoureux. C'est pourquoi un autre modèle peut être envisagé.

Le développeur est donc amené à penser davantage son application en termes d'évènements que le « noyau » de l'application peut recevoir. Ainsi il est très facile de lier un élément de la page à un évènement : on utilise pour cela le champ actions des composants, ou la fonction wire qui relie un évènement à un composant. Concrètement, cela permet par exemple de signaler simplement à l'utilisateur qu'un champ de texte doit être rempli, avec un code du style

Code : Erlang
1
2
wf:wire(boutonPseudo, champPseudo, 
    #validate { attach_to=boutonPseudo, validators=[ #is_required { text="Entrez votre pseudo !" } ] } )


Sur la vidéo présentant Nitrogen, Klophaus montre ainsi que l'on peut facilement rajouter un événement click à une image (par exemple). Encore une fois, pas besoin d'un framework pour savoir faire ça, un peu de JavaScript suffit - mais ici le gain de temps est considérable, et la maîtrise de JavaScript est optionnelle. Il suffit de renvoyer un élément du style

Code : Erlang
1
2
3
4
#image { 
    (...) %% D'autres champs à remplir (notamment l'adresse de l'image)
    actions = #event { type=click, postback={click} }
}


Lorsque l'utilisateur cliquera, l'événement sera transmis au serveur. Il faut donc écrire une fonction qui se charge de récupérer cet événement pour le traiter : la fonction event. D'éventuels paramètres peuvent être fournis, par exemple l'identifiant de l'image. Dans le code ci-dessus c'est IDImage qui joue ce rôle, bien sûr il faudrait le définir avant dans le code.

Toute page Nitrogen doit donc contenir une fonction event, comme ce qui suit :

Code : Erlang
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
event(go) -> 
    (...) %% Code à exécuter par défaut (quand la page ne reçoit aucun événement)
    ok;

event({click, ID}) ->
    (...) %% Code à exécuter quand on reçoit l'événement click et l'identifiant d'une image
    ok;

event(_) ->
    ok.  %% Si on reçoit un autre événement on ne fait rien (ok signifie que tout a bien marché).


Cette façon de définir une fonction event qui doit traiter tous les types d'événements intéressants est peut-être déstabilisante pour les programmeurs qui ne sont pas habitués au style déclaratif. Erlang rend cependant cette façon de faire très simple grâce au mécanisme des clauses.

Un framework prometteur



Ce serait mentir que d'affirmer que Nitrogen est déjà prêt à servir en production. Bien qu'utilisable, le framework est jeune, et son API est susceptible de connaître des modifications.

Cependant, les idées qu'il présente sont intéressantes, et pourraient être très avantageuses à l'utilisation. De plus, la programmation orientée événements colle à merveille à Erlang : ce dernier est après tout un langage concurrent, et les événements Nitrogen ressemblent beaucoup aux messages que peuvent s'envoyer les processus en Erlang.

Nitrogen est donc peut-être l'occasion pour Erlang de sortir enfin de l'ombre, et de dévoiler au grand jour ses qualités certaines pour le développement d'applications serveur ;) .

Liens complémentaires


79 Participations

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page Précédente  1  2  3 
Pseudo Discussion
3 visiteurs sur cette news (0 membre et 3 anonymes)
Page Précédente  1  2  3 
Hors ligne XaMaX # Posté le 27/11/2008 à 16:27:36
Mi ange, mi démon
Avatar
Flux RSS

Ville : Levallois perret
Pays : France métropolitaine
Études : 3iL

Citation : zulon
« Ce que je dis est toujours vrai, mais seulement dans quelques cas particuliers bien précis »
KTHXBYE
Écoute, c'est pas grave, si tu sais pas lire un paragraphe en entier c'est pas mon problème. Moi j'ai dis ce que j'ai dis, si tu lis les phrases les une indépendamment des autres ça risque de te jouer des tours un jour. M'enfin ça ne me regarde pas.


Édit:
Citation : Krankkatze
Comment j'ai cassé toute l'ambiance des commentaires de la news en deux posts, admirez \o/

je m'excuse d'y avoir participé :/.

Mais zulon n'a pas compris l'une de mes phrases (celle qu'il cite). C'est vrai que comme ça elle est pas super claire. Je lui explique ce que j'entends pas là. Il ne comprend pas ce que je veux dire non plus. Et affirme que je raconte des connerie, et me fait dire ce que je n'ai pas dis. Alors je lui répond qu'il n'a pas bien lu, et souligne bien mes phrases pour lui expliquer. Alors il me reproche qu'une de mes phrases n'est pas correcte dans le cadre générale. Donc je lui répond que je fais des paragraphes et que ça sert à quelque chose.

Donc au final, ça n'a vraiment plus rien avoir avec la pauvre news :/


Obn j'édit une dernière fois pour répondre à ça.

Citation : zulon
C'est facile de dire que l'autre ne comprend rien à rien. M'enfin c'est très drôle, parce qu'en relisant les différents commentaires de la news pour m'assurer de n'être pas passé à côté de la phrase qui aurait fait de tes commentaires quelque chose de cohérent, quelle ne fut pas ma surprise de m'apercevoir que plusieurs avaient été modifiés (notamment l'avant-dernier). Bref.


En effet je modifie mes posts pour corriger les fautes d'orthographe quand je tombe dessus...

Citation : zulon

Et j'ai parfaitement compris ce que tu as dit. J'y ai même répondu en étant dans le contexte, et tout et tout.


La preuve tu dis:

Citation : zulon
Tu as des preuves de ce que tu avances ? Tu dis n'importe quoi. Un code peut être plus long qu'un autre et être plus performant.


Mon post juste avant je dis:
Citation : Xamax
Enfin dans le cadre générale pour faire exactement la même chose, le fichier source le plus petit est souvent le plus performant. [...] pour une différence importante de taille, mon affirmation doit être toujours vrais. Pour des sources de taille proche elle peut être souvent fausse.


Citation : zulon

Mais bon. J'aimerai quand même bien savoir comment faire pour que deux applications qui fassent strictement la même chose aient deux tailles qui soient l'une ~5000 fois plus importante que l'autre. Parce que c'est quand même de ça qu'il est question.



Enfin pour un code bien plus long et qui fait la même chose, je l'ai dis moi même: c'est impensable. Mon premier post est une moquerie des 10mo, car une source de 10mo pour une gestion d'employé...Enfin je me répète.

En effet c'est bien plus simple de dire que les autres modifient ce qu'ils disent, et de pas lire en entier... enfin c'est pas grave

Être ou ne Poètre.fr: Vitrine #CSS3
puZZle project: Framework php libre.
Blog: [Poétrie Complète, mosquIT.net]
OxyRadio : Radio libre
To be be or not to be a bouzouk
 
Hors ligne Krankkatze # Posté le 27/11/2008 à 16:46:00
Ob-la-di, Ob-la-da
Avatar
Groupe : Bannis

Comment j'ai cassé toute l'ambiance des commentaires de la news en deux posts, admirez \o/
Connecté Thunderseb # Posté le 27/11/2008 à 16:50:08
Responsable de la validation
Avatar
Validateurs

Ville : Liège
Pays : Belgique

Tout ça à cause de 10mo xD
 
Hors ligne noluz # Posté le 27/11/2008 à 17:24:03

C'est facile de dire que l'autre ne comprend rien à rien. M'enfin c'est très drôle, parce qu'en relisant les différents commentaires de la news pour m'assurer de n'être pas passé à côté de la phrase qui aurait fait de tes commentaires quelque chose de cohérent, quelle ne fut pas ma surprise de m'apercevoir que plusieurs avaient été modifiés (notamment l'avant-dernier). Bref.

Et j'ai parfaitement compris ce que tu as dit. J'y ai même répondu en étant dans le contexte, et tout et tout.

Mais bon. J'aimerai quand même bien savoir comment faire pour que deux applications qui fassent strictement la même chose aient deux tailles qui soient l'une ~5000 fois plus importante que l'autre. Parce que c'est quand même de ça qu'il est question.
Hors ligne Skelio # Posté le 27/11/2008 à 17:45:01
Groupe : Bannis

Thunderseb, enfin on est en face d'un éminent spécialiste du débat qui ne sert à rien quand même.
Hors ligne noluz # Posté le 27/11/2008 à 17:51:19

Citation : Skelio
Thunderseb, enfin on est en face d'un éminent spécialiste du débat qui ne sert à rien quand même.

On se connaît ?
Connecté Thunderseb # Posté le 27/11/2008 à 17:56:25
Responsable de la validation
Avatar
Validateurs

Ville : Liège
Pays : Belgique

Citation : Skelio
Thunderseb, enfin on est en face d'un éminent spécialiste du débat qui ne sert à rien quand même.


Je ne suis pas certain de bien interpréter cette phrase, mais si c'est ce que je pense, je ne peux que dire +1 :p .
 
Hors ligne noluz # Posté le 27/11/2008 à 18:08:34

Visiblement, cette charmante personne qu'est Skelio a décidé de traquer tous mes messages et n'hésite pas à citer un vieux message après lequel au moins une vingtaine ont été postés (sur un autre topic). Ça me rappelle vaguement quelqu'un. Son style laconique et acerbe me rappelle quelqu'un de bien précis, qui ne me porte pas dans son cœur. Devinez quoi ? Cette personne subit justement en ce moment une interdiction d'écriture. Il y a là un pas que je n'ose pas franchir :ninja: . D'autres s'en chargeront pour moi.
Hors ligne XaMaX # Posté le 27/11/2008 à 19:13:02
Mi ange, mi démon
Avatar
Flux RSS

Ville : Levallois perret
Pays : France métropolitaine
Études : 3iL

Désolé de faire encore intrusion sur ce topic mais apparemment je n'ai plus le droit d'écrire à zulon. Hors je pense mériter des explications sur le fait que j'édit mes post!
Je trouve cette insinuation douteuse et blessante.

Sinon pour ton information, le nombres de fichiers ne change rien à la rapidité d'un logiciel compilé. Si t'es trop borné pour comprendre ça...
Cour officiel de C du SDZ "Dans la pratique, vos programmes ne seront pas tous écrits dans ce même fichier main.c. Bien sûr, c'est possible de le faire, mais ce n'est jamais très pratique se ballader dans un fichier de 10000 lignes (enfin personnellement je trouve :p ).
C'est pour cela qu'en général on crée plusieurs fichiers par projet."

Rien n'est précisé sur l'optimisation, et pour cause, ça ne change rien au final.
La découpe en fichier c'est pour le dev, pas pour l'ordi.

encore une foi désolé, mais cela semble le seul moyen de communication pour obtenir des explications sur mes édition de post :/

Être ou ne Poètre.fr: Vitrine #CSS3
puZZle project: Framework php libre.
Blog: [Poétrie Complète, mosquIT.net]
OxyRadio : Radio libre
To be be or not to be a bouzouk
 
Hors ligne Skelio # Posté le 27/11/2008 à 19:40:43
Groupe : Bannis

zulon, oui mais non, je réponds aux gens qui me parlent (pour le topic) et je trouve déplorable qu'on pourrisse les commentaires d'une news si travaillée avec un vieux débat qui pue. Désolé, tu es parano.
Hors ligne nicknick63 # Posté le 27/11/2008 à 22:23:48
Avatar
Flux RSS

Ville : Clermont-ferrand
Pays : France métropolitaine

Citation : XaMaX

Cour officiel de C du SDZ "Dans la pratique, vos programmes ne seront pas tous écrits dans ce même fichier main.c. Bien sûr, c'est possible de le faire, mais ce n'est jamais très pratique se ballader dans un fichier de 10000 lignes (enfin personnellement je trouve :p ).
C'est pour cela qu'en général on crée plusieurs fichiers par projet."

Rien n'est précisé sur l'optimisation, et pour cause, ça ne change rien au final.
La découpe en fichier c'est pour le dev, pas pour l'ordi.

En gros, ce que tu dis, c'est : «you're wrong, M@teo didn't said that.»
 
Hors ligne jeremybs # Posté le 27/11/2008 à 23:02:13
Groupe : Bannis

Citation : nicknick63

En gros, ce que tu dis, c'est : «you're wrong, M@teo didn't said that.»


Lol , tu a bien raison.
 
Hors ligne XaMaX # Posté le 27/11/2008 à 23:03:21
Mi ange, mi démon
Avatar
Flux RSS

Ville : Levallois perret
Pays : France métropolitaine
Études : 3iL

Citation : nicknick63
Citation : XaMaX

Cour officiel de C du SDZ "Dans la pratique, vos programmes ne seront pas tous écrits dans ce même fichier main.c. Bien sûr, c'est possible de le faire, mais ce n'est jamais très pratique se ballader dans un fichier de 10000 lignes (enfin personnellement je trouve :p ).
C'est pour cela qu'en général on crée plusieurs fichiers par projet."

Rien n'est précisé sur l'optimisation, et pour cause, ça ne change rien au final.
La découpe en fichier c'est pour le dev, pas pour l'ordi.

En gros, ce que tu dis, c'est : «you're wrong, M@teo didn't said that.»


Nan bien sur que non. J'affirme que cela ce passe comme ça, que ça ne sert à rien pour l'optimisation. Et je prend simplement appuis sur ce tuto, car il ne veux pas me croire.
Pour comprendre pourquoi, on peut regarder le schéma du même tutoriel: http://www.siteduzero.com/tutoriel-3-1 [...] tml#ss_part_3
On a bien présence d'un seul fichier binaire. C'est valable pour le C mais aussi pour tout langage compilé.

Après libre à lui de pas me croire hein, c'est son choix, mais il est en contradiction avec ce schéma, et ce que mes prof m'ont appris.


Édit pour le com d'en dessous: Si le langage est interprété, diviser en plusieurs fichiers a certes une incidence. Mais comme les deux scripts comparés (celui de 1mo et celui de 10 mo) ont le même nombre de fichier (car le même nombre de fonction) le second sera donc plus long. Je ne vois pas en quoi diviser en plusieurs fichier rendra le plus gros aussi rapide. Enfin bref tu n'a pas pas dit diviser pouvais le rendre plus rapide, et je ne comprend pas l'interpréter d'avoir parlé de séparer en plusieurs fichier mais bon.

Être ou ne Poètre.fr: Vitrine #CSS3
puZZle project: Framework php libre.
Blog: [Poétrie Complète, mosquIT.net]
OxyRadio : Radio libre
To be be or not to be a bouzouk
 
Hors ligne noluz # Posté le 28/11/2008 à 16:29:04

Je vais expliquer avec des mots simples, comme tu le dis si bien. Parce que ça a vraiment l'air de pas rentrer.

Alors. Tu as deux fichiers, X.pl et Y.pl. Le premier gère la fonctionnalité X, l'autre la fonctionnalité Y. Tu suis jusque là ? On va corser un peu la chose.
Supposons maintenant qu'un client se connecte au serveur Web et demande l'URL /X.pl. À ce moment là, Apache se dit "Hoho, on me demande l'URL X.pl ! Et on m'a configuré pour que je l'exécute avec /usr/bin/perl, en suivant le protocole CGI" (c'est un exemple hein). Apache exécute donc une commande du style "/usr/bin/perl X.pl" blablabla.
Analysons maintenant ce qui s'est passé. Le fichier Y.pl n'a pas été ouvert par Apache. À la limite, Apache ne sait même pas qu'il existe. Il ne prend aucun temps CPU pour l'exécuter, rien.
Alors maintenant, essaye un peu de deviner si la séparation en plusieurs fichiers n'a aucun intérêt.


iPoulet : Ton estime, tu sais...
Hors ligne noluz # Posté le 29/11/2008 à 15:11:16

Merde XaMaX, quand tu veux répondre à un message après le tiens, tu postes, tu édites pas le précédent. Je viens seulement de me rendre compte que tu me répondais.

Bon. Puisque apparemment tu as du mal avec le fait que Perl soit interprété, on va la refaire :
Citation : zulon
Alors. Tu as deux fichiers exécutables, X.exe et Y.exe (je rajoute des extensions pour ne pas perturber). Le premier gère la fonctionnalité X, l'autre la fonctionnalité Y. Tu suis jusque là ? On va corser un peu la chose.
Supposons maintenant qu'un client se connecte au serveur Web et demande l'URL /X.exe. À ce moment là, Apache se dit "Hoho, on me demande l'URL X.exe ! Et on m'a configuré pour que je l'exécute directement, en suivant le protocole CGI" (c'est un exemple hein). Apache exécute donc une commande du style "/bin/sh -c X.exe" blablabla.
Analysons maintenant ce qui s'est passé. Le fichier Y.exe n'a pas été ouvert par Apache. À la limite, Apache ne sait même pas qu'il existe. Il ne prend aucun temps CPU pour l'exécuter, rien.
Alors maintenant, essaye un peu de deviner si la séparation en plusieurs fichiers n'a aucun intérêt.

J'ai mis en gras les mots qui changent.


Tiens, je viens de voir un truc marrant dans la news :
Citation : la news
Le lien pointe vers programming.reddit.com, section pas du tout consacrée à Erlang. Celle consacrée à Erlang est tout naturellement erlang.reddit.com
Hors ligne XaMaX # Posté le 29/11/2008 à 17:14:56
Mi ange, mi démon
Avatar
Flux RSS

Ville : Levallois perret
Pays : France métropolitaine
Études : 3iL

Nan mais ça change strictement rien. Je sais très bien que séparer les fichiers dans cadre de langage interprété peut avoir de l'importance. [Par exemple dans un projet en php je charge les fichiers dynamiquement en fonction des besoins pour éviter de charger des trucs inutiles]. Là en fessant deux binaires tu transforme une appli en deux, ce qui la rend pas forcément plus rapide mais bon passons.

Ici on compare deux applis une très grosse et l'autre petite avec le mêmes nombre de fonctionnalités. Donc tes fichiers là ils sont plus gros, d'autant plus gros en moyenne que la première appli est plus grosse que l'autre. Ce qui fait que pour une grosse différence la première est plus lente.

Tout ça pour dire que je comprend parfaitement ce que tu dis, c'est même totalement juste, mais aussi totalement hors propos.

Sinon si j'édite c'est pour éviter de polluer plus les commentaire de cette pauvre news :/

Être ou ne Poètre.fr: Vitrine #CSS3
puZZle project: Framework php libre.
Blog: [Poétrie Complète, mosquIT.net]
OxyRadio : Radio libre
To be be or not to be a bouzouk
 
Hors ligne anonyme # Posté le 29/11/2008 à 18:47:45

Zulon, toi qui est fan des boutons, pourquoi ne pas signaler cette erreur directement aux newsers pour qu'ils corrigent ?
Hors ligne spider-mario # Posté le 30/11/2008 à 17:26:14
Avatar

Ville : Montigny-lès-cormeilles
Pays : France métropolitaine
Études : INSA Rouen

Même pour des fonctions identiques, un programme plus petit qu'un autre n'est pas forcément plus rapide (par exemple "optimiser pour la taille" et "optimiser pour la vitesse" sont deux options différentes pour GCC et l'une empêche l'autre...).
Hors ligne XaMaX # Posté le 30/11/2008 à 18:14:05
Mi ange, mi démon
Avatar
Flux RSS

Ville : Levallois perret
Pays : France métropolitaine
Études : 3iL

Citation : spider-mario
Même pour des fonctions identiques, un programme plus petit qu'un autre n'est pas forcément plus rapide (par exemple "optimiser pour la taille" et "optimiser pour la vitesse" sont deux options différentes pour GCC et l'une empêche l'autre...).

J'vais encore une fois faire un HS.
Vi c'est exactement ce que j'ai dis. Pour des tailles d'applis peu différentes on ne peut rien dire sur les performances. Par contre contre pour de très grande différence (ce qui en pratique n'arrive jamais) la plus petite est la plus performante. Après il faut déterminer ce qu'est une grande différence de taille.
Dans le cas présent, un code source de taille anormalement gigantesque (compte tenu de l'application), le ratio est important. On peut donc être certain que la condition sur la différence de taille est validée. Ce qui par la même occasion rend le problème uniquement théorique; l'application n'existe donc pas. CQFD :)

['fin maintenant j'espère que tout est clair sur ce que j'ai dis.]

Être ou ne Poètre.fr: Vitrine #CSS3
puZZle project: Framework php libre.
Blog: [Poétrie Complète, mosquIT.net]
OxyRadio : Radio libre
To be be or not to be a bouzouk
 
Pour accéder à cette section
Connectez-vous !
connexion_rpx

Revenir à la liste des news