C VS DELPHI

Don0Choa Messages postés 104 Date d'inscription dimanche 29 octobre 2000 Statut Membre Dernière intervention 12 décembre 2005 - 30 juil. 2003 à 18:35
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 - 21 sept. 2004 à 03:18
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/12680-c-vs-delphi

cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
21 sept. 2004 à 03:18
Forcèment, quand on utilise que l'API... Le même en C, avec GCC sans optimiser doit pas dépasser 6 ou 7Ko, et en optimisant on doit pouvoir faire chuter à 3, maxi...

Non, pas la peine d'en faire une version assembleur...
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
17 août 2004 à 01:41
Pour ma part j'ai l'impression que depuis Delphi 5, les programmes générés sont de plus en plus lents (quoique Delphi 7 me semblait plus rapide que le 6)... Je pense que çà vient du fait que System.pas et autres unités "coeur" grossissent un peu trop :-/
neodelphi Messages postés 442 Date d'inscription jeudi 4 avril 2002 Statut Membre Dernière intervention 11 août 2008
27 juin 2004 à 17:36
erf je me demandai si le compilateur y était pas pour quelque chose aussi, je m'explique :

j'avait réalisé moi aussi un benchmark entre Borland Delphi7 et Borland Delphi 8 arctiteck... Le teste est une simple boucle avec un calcul banal ( genre addition koi ). Le code est le meme dans les deux application, ce qui change c'est que le programme généré par delphi 8 est deux fois plus long que celui de Delphi 7, j'ai toujours pas comprit et a vrai dire je m'attendai plutot a l'inverse... Quelq'un a t-il une explication ?
keguira Messages postés 4 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 18 mai 2004
15 avril 2004 à 16:15
de toute façon la taille du programme on s'en fiche un peu dans ce cas la : puisque l'espace disque est régi par la taille de tes clusters ...
cs_iubito Messages postés 629 Date d'inscription mercredi 3 juillet 2002 Statut Membre Dernière intervention 9 octobre 2006
12 août 2003 à 08:31
sympa ce p'tit test, fodrait VB et JAVA pour mdr un peu plus ;o)
les langages ont des buts différents, et je doute qu'en C tu puisses aussi aisément créer des menus, boutons, labels....

mais là c pas la guerre, c'est pour faire avancer ! ça permet de montrer que les inttostr et inverse ralentissent énormément le schmilblick... et d'autres trucs comme ça, donc c'est constructif !
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
6 août 2003 à 09:26
C'est sûr, mais sans ce petit test je n'aurais certainement pas penser à trier une liste pour en accélèrer les temps d'accès ;)

Quand à la syntaxe du C, j'étais pareil au début, mais j'ai été contraint d'y passer et je m'y suis donc fait au point de trouver un listing de Delphi assez fouillis, mdr :)

Pour les performances il n'est pas vraiment utile de passer par l'assembleur si on peut l'éviter, car çà c'est vraiment un langage difficile à relire, je pense que tu seras d'accord avec moi sur ce point (même si une procédure débutant par "asm", çà impressionne toujours, lol)

En l'occurence, le seul avantage que je pourrais reconnaitre au C après ce (léger) comparatif, c'est la taille ridiculement petite du code généré, et la gratuité de son compilateur... Car si j'ai payé ma license de Delphi 4 en mon temps, je n'ai plus tellement d'argent à dépenser dans un simple loisir, le matériel coute bien assez cher comme çà ;)
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
1 août 2003 à 20:26
Mdr, la querelle d'eglise une fois encore....

Bon que se sois clair,
ce n'est pas le langage qu fais l'application, c'est le dèveloppeur qui la concois, personellement je n'aime pas le c, c'est uniquement parce que je hais sa syntaxe que je trouve trops peux lisible, c'est un chois, mais quand j'ai besoin d'un langage je l'utilise peut importe ses performances, si j'ai besoin de + vite, alors j'inclus d'une facon ou autre de l'assembleur...., c'est donc moi qui maitrise les performances, et débattre sur quel langage vas + vite que quel autre n'a pas rèellement de sens pour le développeur puisqu'il sais maitriser la machine, non ? .......

Bon Coding....

ManChesTer.
Emandhal Messages postés 194 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 10 octobre 2006 3
31 juil. 2003 à 13:47
c une autre solution c vrai :)

toutefois pour la granulité, ca sert plus quand on crée une liste de records ou de class, parce qu en général c'est plus gros à allouer, mai bon on gagné un peu, mais c pas vraiment énorme
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
31 juil. 2003 à 13:41
Mouais ... Après tests :

- la granulité de la liste n'a aucun impact sur les temps d'accès
- trier la liste améliore les performances de 300% (toujours pour les temps d'accès), ce qui la met à égalité avec les listes chainées du C...

tout çà en une seule ligne modifiée, lol :
[...]
l := TStringList.Create;
l.Sorted := true;
QueryPerformanceCounter(x);
[...]
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
31 juil. 2003 à 13:14
Ah d'accord, intéressant comme astuce ;)

Toutefois, je tiens à souligner que le code en C fait un hash MD5 là ou le Delphi se contente d'un IntToStr... J'avais mis cette conversion pour garder une certaine "équité" entre les languages, ne sachant pas faire de MD5 (le code C a été trouvé sur http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html - il doit bien y avoir un équivalent Delphi qui traine, mais je ne sais pas où)
Emandhal Messages postés 194 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 10 octobre 2006 3
31 juil. 2003 à 12:50
deja passe par un TList plutot qu'un TStringList, ca évitera les transformation String-->Integer et Integer-->Liste trop contraignant, ca ralentit le code cette conversion
bien sur c'est parce que c'est des integer ke l'on enregistre sinon faut trouver autre chose

ah oui... en augmentant la granulité (réservation à l'avance de la mémoire) de la List en delphi, on augmente la vitesse du fait que l'on réaloue la mémoire moins souvent... un TList a une granulité variable et au mieux il prévoit je crois 64 cases du tableau d'avance donc environ 160 réalocation de mémoire à faire pendant le code...
cs_fzero Messages postés 5 Date d'inscription mardi 17 septembre 2002 Statut Membre Dernière intervention 14 juin 2005
31 juil. 2003 à 12:46
et quelles sont ces 4 fameuses lignes ?
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
31 juil. 2003 à 12:31
Ah ? T'as modifié quoi donc ? Si c'est dans le code Delphi, mon pote est intéressé, si c'est dans le C, c'est moi qui le suit ;p

Quand à la manière de coder les listes, tu as raison, j'avais "passé" arbres.c en Delphi, et l'exécution de ce code n'avait rien à envier aux listes chainées du C, donc bon... Delphi a de la ressource ;)
Emandhal Messages postés 194 Date d'inscription dimanche 2 mars 2003 Statut Membre Dernière intervention 10 octobre 2006 3
31 juil. 2003 à 11:33
je pense que c'est du aussi à la facon dont sont codés les liste
parce ke en changeant 4 lignes de ton code le nouvo code fait parreil mais... au moins... 30x plus vite... lol...
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
31 juil. 2003 à 08:39
lol :)

Delphi est un très bon language, ce n'est pas moi qui te dira le contraire :p Faudrait adapter ce bench à VB ou Java, histoire de rire ...
Don0Choa Messages postés 104 Date d'inscription dimanche 29 octobre 2000 Statut Membre Dernière intervention 12 décembre 2005
30 juil. 2003 à 18:35
Delphi c'est plusse mieux quand même .
En plus c'est à cause de toi que j'en fais... :)
Rejoignez-nous