Besoin de conseils... Merci

Signaler
Messages postés
241
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
31 mai 2021
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
Bonsoir à tous!

Voila mon problème:
J'ai codé un petit programme en Visual Basic. Le problème est qu'il y a beaucoup de calculs à faire, et j'aimerai beaucoup amélioré les performances! :)
je suis donc motivé pour essayer de le "convertir" dans un autre langage pour obtenir de meilleurs résultats!
N'étant pas déjà un grand programmeur en VB, je suis un peu dans le flou pour le C...
Ce serait donc super si un "expert" pouvait me donner son avis, des conseils!
par exemple: est ce faisable? faut il repartir de zéro? les pièges? comment faire?
merci beaucoup par avance de votre aide, et merci à ceux qui n'ont pas envie de m'aider de ne pas faire de commentaires inutiles! ;)
bonne soirée à tous!

5 réponses

Messages postés
37
Date d'inscription
samedi 22 novembre 2008
Statut
Membre
Dernière intervention
11 avril 2010

Tous logiciels programmer dans un langage de programmation d'amateur comme VB est faisable en C.
Si tu veux des perfs tu recodes en C et t'actives les options de perf et les jeux d'instructions SSE[1..4] si tes machines supportent et si c'est tjr pas suiffant tu codes en ASM.
Messages postés
241
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
31 mai 2021

ok! donc c'est possible!
de plus, je n'utilise que peu de fonctions différentes, mais répétées un très grand nombre de fois! :)
le problème est de trouver les équivalents de chacunes et de bien organiser tout ca!
pourrais tu regarder mon code pour me conseiller?
en tout cas, merci de ta réponse!
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Attention à ne pas faire une simple "traduction", c'est une erreur que je vois trop souvent. Si les résultas obtenus sont justes, les perfs ne seront par contre pas au rdv.


Refais tes algos en pseudo code sur papier et ensuite code les en C en pensant C, pour cela il ne faut surtout pas avoir le VB devant les yeux.

ciao...
BruNews, MVP VC++
Messages postés
241
Date d'inscription
dimanche 18 janvier 2009
Statut
Membre
Dernière intervention
31 mai 2021

merci Brunews,
malheureusement, je ne sais pas penser en C! :)
par contre j ai les idées bien claires sur papier!
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
36
Salut,

Ton programme est fait en vb6 ou vb.net

Attention,
si ton algo est pourri en vb, et c'est pas pour ca qu'il sera performant en C.

Les performances d'un VB.net si il est bien utilisé sont en général bonne.
Les performances d'une application VB6 sont aussi bonne sur des machines actuelles car ce logiciel a plus de 10 ans
et donc fonctionnait sur des machines avec des processus a 100mhz et 32mo de mémoire sous windows 95
Donc avec un vista ou un XP avec 2go de mémoire, c'est du bonheur pour vb6.

Après il faut penser que 80% du temps d'exécution est dans 20% du code
il faut regardé ce code (il y a t il des acces BDD/disque/distant)
Le problème vient peut etre de la.

Les chaines de caractères en général posent problème
exemple
en vb.net (il faut utiliser les stringbuilder ) a la place du +
et les string.format()

Apres il faut regarder les boucles
il peut avoir du code qui s'execute dedans qui peut etre externalisé

il faut compiler en mode release (c'est plus rapide) en dotnet
il faut utiliser les methodes du framework à la place des methodes de compatibilité

en dotnet il eviter d'utiliser les objects COM
exemple ADODB mais ADO.net

en vb6 faire en ADO à la place du DAO

La liste des optimisations peut etre tres longue

*rapidité
*taille de l'exe
*taille en mémoire
On a le choix dans les optimisations.

Si tu colles le bout de programme
ou explique plus ton probleme la réponse pourrait etre possible en VB
car un langage quand on débute on fait beaucoup d'erreur dessus (c'est pas évident)

exemple d'erreur courante en C
les allocations mémoire
les débordements de tampons
les pointeurs
...

De nouveaux problemes vont survenir.
Changer de langage c'est pas évident.

Il y a une autre solution  si le programme est long.
c'est d'externaliser le code lent dans une DLL en C et l'appelé de VB
mais d'autres problemes peuvent apparaitre.

Bon courage