opérations et complexités - Java - Programmation
Marsh Posté le 05-07-2007 à 17:18:00
letesp a écrit : Bonjour,
|
je vois pas de traitement d'images
Marsh Posté le 05-07-2007 à 17:24:05
J'ai remis le code. Elle marche les balises "code"?
Maintenant à chaque fois que je les mets ça remplace le code par "//3".
Marsh Posté le 05-07-2007 à 17:59:37
letesp a écrit : Bonjour, Je me pose des questions sur la façon dont je peux optimiser mes algorithmes de traitement d'images. Je voudrai savoir comment Java gère ce calcul par exemple: a=false; Est-ce que le calcul est fini dès que a est évalué, ou est-ce qu'il continu? |
Les opérateurs booléens en java, comme avec environ 90% des langages de prog modernes (sauf le VB) utilisent le shortcutting, donc seul a est évalué.
edit: merde, bidem a raison l'opérateur booléen c'est "&&" pas "&"
letesp a écrit : Sinon est-ce que la complexité de ceci: int a; est plus grande que cela: int a;
|
Je ne vois pas comment ça pourrait l'être
Marsh Posté le 06-07-2007 à 09:29:08
Citation : a=false; |
vu comment c'est écrit, toute l'expression est évaluée. Si tu veux utiliser les shortcut, il faut écrire comme suit :
result = a && b && c && d;
Marsh Posté le 06-07-2007 à 10:10:47
Citation : vu comment c'est écrit, toute l'expression est évaluée. Si tu veux utiliser les shortcut, il faut écrire comme suit : |
Oui effectivement . Pour l'instant je fais surtout du pseudo-code, ce qui explique les erreurs de syntaxe.
Citation : Je ne vois pas comment ça pourrait l'être |
Bah je n'en ai aucune idée non plus. Je m'étais dit que à chaque boucle, il y avait une opération d'incrémentation sur le i, et peut-être une comparaison pour vérifier qu'il ne dépasse pas la valeur maximum. Ca parait forcément insignifiant pour une boucle qui va jusqu'à 4.
Mais comme je l'ai dit c'est pour du traitement d'images. Pour certains filtres, il faut faire 2 boucles for pour parcourir toute l'image, et 2 autres boucles for à l'intérieur pour parcourir les 8 voisins (ou 24, ou 48...). Et ensuite il faut enchainer les filtres.
Alors la moindre miliseconde que l'on peut gagner sur une boucle peut avoir une grosse incidence au final
Merci de vos réponses pour les opérations logiques en tout cas.
Marsh Posté le 11-07-2007 à 22:50:57
pour la traitement d'image, tu est obligé de faire des boucles imbriqueés (4 en général) pour réaliser ton traitement d'image. Il n'y a pas vraiment d'optimisation possible (sauf dans le cas de filtres particulier, avec un structuring element particulier par exemple)
Marsh Posté le 20-07-2007 à 13:50:34
letesp a écrit : Bonjour, |
Il y a fort à parier que le compilateur va transformer ta boucle en une suite d'assignations, comme tu l'as fait, vu que tout peut être déterminé au compile-time. Et s'il est très malin, il va peut-être même supprimer les trois premières qui sont tout à fait inutiles... On serait étonné de voir tout ce que peuvent faire les compilateurs modernes
Marsh Posté le 20-07-2007 à 14:07:04
jyles a écrit : |
Je viens de vérifier, et à mon grand désarroi, il n'en est rien... C'est nul javac ! ^^
Marsh Posté le 20-07-2007 à 16:27:46
jyles a écrit : |
C'est pas nouveau ça
Marsh Posté le 21-07-2007 à 00:29:49
jyles a écrit : |
Juste par curiosité (débutant java inside), comment tu as fait pour savoir comment travaillait javac?
Marsh Posté le 21-07-2007 à 00:55:33
plzhelp a écrit : |
Il est possible de décompiler les .class pour récupérer du bytecode lisible (ça ressemble un peu à de l'ASM de plus haut niveau).
Marsh Posté le 22-07-2007 à 13:09:26
Oui, je me suis servi de ca : http://www.ej-technologies.com/pro [...] rview.html
Marsh Posté le 05-07-2007 à 17:08:50
Bonjour,
Je me pose des questions sur la façon dont je peux optimiser mes algorithmes de traitement d'images.
Je voudrai savoir comment Java gère ce calcul par exemple:
a=false;
b=c=d=true;
result = a & b & c & d;
Est-ce que le calcul est fini dès que a est évalué, ou est-ce qu'il continu?
Sinon est-ce que la complexité de ceci:
int a;
for(int i=0; i<4; i++){
a=i;
}
est plus grande que cela:
int a;
a=0;
a=1;
a=2;
a=3;
Merci
Message édité par letesp le 05-07-2007 à 17:22:46