Salut à tous,
J'ai testé quelques langages.
http://perso.orange.fr/2007/Code/hworld/
Vos impressions?
Salut à tous,
J'ai testé quelques langages.
http://perso.orange.fr/2007/Code/hworld/
Vos impressions?
Bonjour,
Tu n'es certes pas le premier à le faire, et le problème qui revient toujours n'est aps de comparer le temps d'exécution en lui-même, mais comment tu as écris le code...
En effet, de très simples différences dans le code peuvent augmenter considérablement le temps d'exécution, alors que d'autres vont le diviser drastiquement.
Qu'est-ce que tu voulais comparer? Quelles sont les conclusions que tu crois pouvoir tirer de l'exemple que tu as pris? Quelles sont les précautions que tu as prises pour éviter des biais (quand je compare la taille de l'exécutable Fortran et de l'exécutable C, je me dis qu'il y a un problème dans la manière dont la mesure a été faite)?Envoyé par Lunixinclar
C'est sûr qu'un hello world ne peut servir à comparer la puissance des langages.
En revanche il dénote certains écarts dans le temps de chargement.
Jean-Marc il n' y a qu'à cliquer sur le lien "infos" pour voir la ligne compilation (ainsi que la version du compilateur). Si tu as une suggestion pour la taille des exécutables n' hésites pas à la partager!
En quoi le temps de chargement d'un hello world est caractéristique du temps de chargement d'une application?Envoyé par Lunixinclar
Tu compares d'une part la taille de scripts (qui pour être utiles ont besoin d'un exécutable) avec d'autre part des exécutables liés dynamiquement et des exécutables liés statiquement. Qu'est-ce que tu peux conclure de ça?Jean-Marc il n' y a qu'à cliquer sur le lien "infos" pour voir la ligne compilation (ainsi que la version du compilateur). Si tu as une suggestion pour la taille des exécutables n' hésites pas à la partager!
La question c'est surtout de savoir ce que toi tu peux en conclure.
Ben c'est intéressant de constater des différences entre les langages compilés/pré-compilés et interprétés.
Même si tous n'ont pas le même potentiel (portabilité/GUI/syntaxe facile à assimiler/...) et que les shells sont TRES limités au niveau des tableaux, on peut se demander dans quel cas certains langages sont à privilégier plutôt que d' autres, et pourquoi tous cohabitent
sans prédominance de l' un sur les autres?
Quelques conclusions
1) Les langages compilés sont les plus rapides au chargement. Même si dans l' absolu c'est stupide, c'est à prendre en compte par qui veut écrire l' appli la plus rapide au monde. Certains shells s'en sortent bien quand même.
2) Dans le cadre d'un système comptant plusieurs applications, les langages compilés occupent plus d' espace disque car pour un nombre équivalent d' applications, les langages interpétés n' occupent que la place de leur source et de l' interpéteur.
3) Les langages interprétés ont moins de lignes de code. Donc un temps de développement inférieur? Ca dépend surtout du programmeur. Cet été sur le forum "langage C" on a testé l' implémentation d'un algorithme par plusieurs programmeurs C. Ce que certaines implémentations font en 20ms, d' autres le font en 300. C'est pourquoi le "hello world" est la seule chose qui soit vraiment comparable entre plusieurs langages car pour un langage donné, il y a autant de façons d' écrire un programme qu'il y a de programmeurs. Et autant de différences de vitesse. Je n' avais pas compris ça au début... c'est con à dire mais c'est vrai.
4) La présentation des résultats est nulle, est-ce que la forme est plus importante que le fond?
5) Ce que fait Java sur une application minimale, le C a le temps de le faire 26 fois. Ce n'est pas si anecdotique que ça: beaucoup d' applications système ont un rôle ultra-précis comme d'envoyer une seule chaîne sur la sortie standard. Java rame au démarrage, probablement à cause de son garbage collector. Mais il se rattrape sur la portabilité, qui a un prix. Une appli java est portable au niveau binaire, alors que le C est portable au niveau source.
etc, etc ...
Rien d'intéressant.Envoyé par Lunixinclar
Qu'est-ce qui te fait croire que tes mesures sont caractéristiques de ce qui se passe pour de plus gros programmes?Quelques conclusions
1) Les langages compilés sont les plus rapides au chargement. Même si dans l' absolu c'est stupide, c'est à prendre en compte par qui veut écrire l' appli la plus rapide au monde. Certains shells s'en sortent bien quand même.
Et les bibliothèques partagées?2) Dans le cadre d'un système comptant plusieurs applications, les langages compilés occupent plus d' espace disque car pour un nombre équivalent d' applications, les langages interpétés n' occupent que la place de leur source et de l' interpéteur.
Et "hello world" n'est en rien caractéristique de vrais programmes. Donc les conclusions que tu peux tirer d'une comparaison basée sur ça me semblent suspectes a priori.3) Les langages interprétés ont moins de lignes de code. Donc un temps de développement inférieur? Ca dépend surtout du programmeur. Cet été sur le forum "langage C" on a testé l' implémentation d'un algorithme par plusieurs programmeurs C. Ce que certaines implémentations font en 20ms, d' autres le font en 300. C'est pourquoi le "hello world" est la seule chose qui soit vraiment comparable entre plusieurs langages car pour un langage donné, il y a autant de façons d' écrire un programme qu'il y a de programmeurs. Et autant de différences de vitesse. Je n' avais pas compris ça au début... c'est con à dire mais c'est vrai.
S'il y a bien une chose à laquelle je n'attribuerais pas la lenteur de Java au démarrage, c'est au garbage collector. Sur quelque chose d'aussi simple, il ne se met pas en route...5) Ce que fait Java sur une application minimale, le C a le temps de le faire 26 fois. Ce n'est pas si anecdotique que ça: beaucoup d' applications système ont un rôle ultra-précis comme d'envoyer une seule chaîne sur la sortie standard. Java rame au démarrage, probablement à cause de son garbage collector.
pour java, tu pourrais preciser directement que tu utilises Kaffe, c'est pas le plus commun pour faire tourner ce langage, et surement pas le plus rapide non plus d'ailleurs
sinon, je pense aussi que faire du test sur hello world, ben ca n'a aucun interet
Au moin maintenant, si on veut faire un Hello world, on sais quel language utiliser !![]()
Partager