Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
950 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  acceler le parcour de mon tableau

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Précédente
Auteur Sujet :

acceler le parcour de mon tableau

n°1538102
Funkyfonk
Posté le 03-04-2007 à 20:46:07  profilanswer
 


Salut,  
j'ai une image dont j'ai récupéré la valeur de chaque pixel que j'ai stocké dans un tableau. Le probleme est que quand je procede à des modifications; une image 64x64 comprend 4096 pixels et à parcourir, cela met quelques secondes mais pour une image 640x480, la ça se compte en minutes, voir en heures.
Quelqu'un a t'il une solution???

mood
Publicité
Posté le 03-04-2007 à 20:46:07  profilanswer
 

n°1538103
LePhasme
Les Belges domineront le monde
Posté le 03-04-2007 à 20:59:07  profilanswer
 

Tu dois faire quoi avec cette image ?

n°1538108
the real m​oins moins
Posté le 03-04-2007 à 21:12:49  profilanswer
 

le phasme \o/

n°1538111
LePhasme
Les Belges domineront le monde
Posté le 03-04-2007 à 21:15:27  profilanswer
 

it's me \o/

n°1538112
the real m​oins moins
Posté le 03-04-2007 à 21:15:51  profilanswer
 

il parait que je vois ta copine vendredi [:naughty]

n°1538113
LePhasme
Les Belges domineront le monde
Posté le 03-04-2007 à 21:17:22  profilanswer
 

Ca, c'était avant qu'elle prenne congé ce matin je crois :o

n°1538118
the real m​oins moins
Posté le 03-04-2007 à 21:21:03  profilanswer
 

[:gratgrat]
je suis pas sur de saisir le rapport :D


Message édité par the real moins moins le 03-04-2007 à 21:21:09
n°1538122
LePhasme
Les Belges domineront le monde
Posté le 03-04-2007 à 21:30:02  profilanswer
 

bah ce matin elle a pris congé pour vendredi :D


Message édité par LePhasme le 03-04-2007 à 21:30:17
n°1538127
the real m​oins moins
Posté le 03-04-2007 à 21:42:48  profilanswer
 

:pfff:

n°1538142
Funkyfonk
Posté le 03-04-2007 à 22:27:27  profilanswer
 

je dois faire de la binarisation.

mood
Publicité
Posté le 03-04-2007 à 22:27:27  profilanswer
 

n°1538149
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-04-2007 à 22:58:39  profilanswer
 

Funkyfonk a écrit :

Salut,
j'ai une image dont j'ai récupéré la valeur de chaque pixel que j'ai stocké dans un tableau. Le probleme est que quand je procede à des modifications; une image 64x64 comprend 4096 pixels et à parcourir, cela met quelques secondes mais pour une image 640x480, la ça se compte en minutes, voir en heures.
Quelqu'un a t'il une solution???


comment veux tu avoir le moindre embryon de réponse si tu ne fournis pas de code ?

 

le phasme & greg >> MP svp, si c'est pas déja fait :o


Message édité par Harkonnen le 03-04-2007 à 22:59:06
n°1538194
LePhasme
Les Belges domineront le monde
Posté le 04-04-2007 à 08:58:37  profilanswer
 

Plus besoin on avait fini de discuter :o

n°1538208
Funkyfonk
Posté le 04-04-2007 à 09:36:25  profilanswer
 

je ne vois pas bien quel code tu veux que je fournisse?? je fais un getPixel pour obtenir la valeur d'un pixel. Je rentre toutes ces valeurs dans un tableau de la taille de l'image et je fais une boucle qui modifie chaque pixel.

n°1538210
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2007 à 09:40:06  profilanswer
 

à ton avis... ? [:alfone]
si c'est ta boucle qui déconne, ça serait ptet bien de fournir le code de ladite boucle non ? :o

n°1538215
Funkyfonk
Posté le 04-04-2007 à 09:46:42  profilanswer
 

J'ai dit nullpart qu'une boucle déconne. Cest une simple boucle for et elle fonctionne puisque l'opération s'effectue. Le probleme est plutot de savoir si il y aurait une technique ou méthodes ou autres dans la librairie standart pour accélerer le déroulement d'une boucle ou le parcours de mon image.
 
Dis puisque tu es modo, comment je peux dégager les pollueurs de mon poste comme Phase et real moins moin?

Message cité 1 fois
Message édité par Funkyfonk le 04-04-2007 à 09:51:05
n°1538227
LePhasme
Les Belges domineront le monde
Posté le 04-04-2007 à 09:59:11  profilanswer
 

Donne ton code quand même qu'on voit ou on pourrait améliorer les choses.
Ca me semble long les temps que tu donnes surtout si tu dis une heure pour à peine 300k itérations.

n°1538232
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2007 à 10:08:07  profilanswer
 

Funkyfonk a écrit :

J'ai dit nullpart qu'une boucle déconne. Cest une simple boucle for et elle fonctionne puisque l'opération s'effectue. Le probleme est plutot de savoir si il y aurait une technique ou méthodes ou autres dans la librairie standart pour accélerer le déroulement d'une boucle ou le parcours de mon image.


fais le compte : 640*480 = 307200 itérations... une heure pour 307200 itérations, c'est énorme ! donc y'a un souci dans ton code.
 

Funkyfonk a écrit :


Dis puisque tu es modo, comment je peux dégager les pollueurs de mon poste comme Phase et real moins moin?


tu peux pas. et c'est bon, ils ont fini de discuter, je vais pas les bannir pour ça, faut pas éxagérer non plus. si tu pouvais arréter de m'envoyer des demandes de modération pour que je les sorte, ça me saurai gré :o


---------------
J'ai un string dans l'array (Paris Hilton)
n°1538238
Funkyfonk
Posté le 04-04-2007 à 10:22:32  profilanswer
 

Voila ce que dit "The real moins moins" dans le post à coté du miens, je crois que ça mérite au moins un avertissement, je cite:"t'es pas non plus obligé de te sentir agressé et d'etre aggressif en retour parce que je critique tes methodes de merde hein" Je crois que c'est ton boulot de modo de sanctionner les troubles faits.
 
Mon code, c 'est une simple boucle de base. Je ne vois pas ce qu'il y a de plus à comprendre. Elle fonctionne parfaitement. Ma question c'est de savoir si il existe un moyen plus rapide de parcourrir l'image qu'une boucle for.

Message cité 1 fois
Message édité par Funkyfonk le 04-04-2007 à 10:23:20
n°1538257
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2007 à 10:56:56  profilanswer
 

Funkyfonk a écrit :

Voila ce que dit "The real moins moins" dans le post à coté du miens, je crois que ça mérite au moins un avertissement, je cite:"t'es pas non plus obligé de te sentir agressé et d'etre aggressif en retour parce que je critique tes methodes de merde hein" Je crois que c'est ton boulot de modo de sanctionner les troubles faits.


1. Je ne vois pas de quel post tu me parles, ni d'ou tu le sors
2. Je pense être assez grand pour juger qui doit être sanctionné ou pas
3. on écrit trouble-fête
 

Funkyfonk a écrit :


Mon code, c 'est une simple boucle de base. Je ne vois pas ce qu'il y a de plus à comprendre. Elle fonctionne parfaitement. Ma question c'est de savoir si il existe un moyen plus rapide de parcourrir l'image qu'une boucle for.


La question n'est pas de savoir s'il y a un moyen plus rapide ou pas... Une boucle for qui prend une heure pour faire 307200 itérations, on n'a jamais vu ça...
Un exemple : une boucle Python qui fait la somme des 307200 premiers nombres :

Code :
  1. >>> def test():
  2.     j=0
  3.     for i in range (0,307199):
  4.         j += i
  5.     print j


et un coup de profiler :

Code :
  1. >>> cProfile.run(test())
  2. 47185459201
  3.         1 function calls in 0.000 CPU seconds


OK ? Donc ta boucle est foireuse, et tant que tu seras persuadé du contraire et que tu refuseras de poster le code, tu n'avanceras pas et nous non plus.

n°1538328
Funkyfonk
Posté le 04-04-2007 à 12:01:28  profilanswer
 

1) désolé pour mes fautes d'orthographe, bien que je sois d'origine etrangere et qu'on parle généralement sur un forum avec des abréviations.  
 
2)Je crois que tu devrais savoir que le langage python utilise des mécanisme de bas niveau est utilisé sur la pluspart des supercalculateurs et pas JAVA. Ce sont deux langages qui ont chacun leur spécificité d'ou ta boucle en python qui comme de l'assembleur se déroule avec une rapidité "inégalable", pas en java lol
 
De plus, il va de soit que puisque je travaille sur une image, je fais un buffering debuffering et inversement...car j'utilise getPixel.

Message cité 3 fois
Message édité par Funkyfonk le 04-04-2007 à 12:04:56
n°1538330
the real m​oins moins
Posté le 04-04-2007 à 12:02:13  profilanswer
 

skoi s'bordel ici ?

n°1538332
cheval
Posté le 04-04-2007 à 12:02:43  profilanswer
 


putain joyeux anniversaire moinsmoins [:trompette5]

n°1538333
MagicBuzz
Posté le 04-04-2007 à 12:05:03  profilanswer
 

Je ne suis pas certain que la boucle soit si foireuse que ça.
 
Je ne sais pas ce que ça donne en Java, mais en C#, GetPixel est une usine à gaz monstrueuse. Ca se solde par une recopie complète de l'ensemble de l'image dans une nouvelle zone mémoire, avec une conversion en bitmap à la clé.
 
Donc c'est 300k² boucles qui sont effectuées, au très grand minimum.
Je m'étais amusé à faire un programme qui pixelisait une image, et idem, c'était une horreur absolue tant que je passais par GetPixel.
 
En C#, on peut accéder directement, via méthodes non protégées, à l'espace mémoire système où se situe l'image. C'est à partir de là qu'il faut travailler quand on a des traîtements à effectuer dessus.
Le mieux restant tout de même de voir si les librairies graphiques intégrées ne font pas déjà ce qu'on veut, ça évite de coder comme un porc. (surtout que travailler avec du code non managé en Java, à mon avis ça doit pas être super top, si du moins c'est possible)

n°1538335
gfive
Posté le 04-04-2007 à 12:11:02  profilanswer
 

Funkyfonk a écrit :

1) désolé pour mes fautes d'orthographe, bien que je sois d'origine etrangere et qu'on parle généralement sur un forum avec des abréviations.  
 
2)Je crois que tu devrais savoir que le langage python utilise des mécanisme de bas niveau est utilisé sur la pluspart des supercalculateurs et pas JAVA. Ce sont deux langages qui ont chacun leur spécificité d'ou ta boucle en python qui comme de l'assembleur se déroule avec une rapidité "inégalable", pas en java lol


 
Haha!! Ce qu'il faut pas lire!!! :D
 
Tu te rends compte de ce que t'écris, au moins???
Pour que ça dure "des heures", comme tu le dit (déjà, combien de temps ça prend, ton machin, précisément?), soit, effectivement, ta boucle est mal écrite, soit l'opération que tu fais dans le corps de la boucle est longue par nature, et c'est pour ça que ça prends du temps.
Sinon, non, parcourir tous les pixels d'une image, pour faire une opération dessus, ben ça se fait un par un, à priori.
A la limite, tu peux amélorer les choses en stockant les résultats calculés pour ne pas avoir à les recalculer pour les pixels de même valeur, mais si ton traitement est simple, leremède sera peut être pire que le mal.
 
Sinon, pour info, la même boucle que celle de Harko en Java prend 208 secondes en écrivant i à chaque itération sur stdout, et 0 secondes [:peur] sans rien écrire.
 
Et j'ai pas de supercalculateur  [:doc petrus]  
 
Maintenant, espérer de l'aide sans code, c'est un peu gonflé.

n°1538339
masklinn
í dag viðrar vel til loftárása
Posté le 04-04-2007 à 12:18:00  profilanswer
 

Funkyfonk a écrit :

2)Je crois que tu devrais savoir que le langage python utilise des mécanisme de bas niveau est utilisé sur la pluspart des supercalculateurs et pas JAVA. Ce sont deux langages qui ont chacun leur spécificité d'ou ta boucle en python qui comme de l'assembleur se déroule avec une rapidité "inégalable", pas en java lol


[:rofl]
 
J'ose espérer que c'est une plaisanterie [:rofl]
 
Mais la prochaine fois évite de parler de trucs dont tu n'as pas la moindre idée [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1538340
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2007 à 12:18:46  profilanswer
 

Funkyfonk a écrit :

1) désolé pour mes fautes d'orthographe, bien que je sois d'origine etrangere et qu'on parle généralement sur un forum avec des abréviations.  


Perdu... Sur un forum, on n'a pas de contrainte de nombre de caractères, de longueur de message, de prix de communication, etc... comme on a avec les SMS. Donc on écrit correctement par respect pour ceux qui lisent et qui répondent.
 

Funkyfonk a écrit :


2)Je crois que tu devrais savoir que le langage python utilise des mécanisme de bas niveau est utilisé sur la pluspart des supercalculateurs et pas JAVA. Ce sont deux langages qui ont chacun leur spécificité d'ou ta boucle en python qui comme de l'assembleur se déroule avec une rapidité "inégalable", pas en java lol


Ca c'est la meilleure de l'année... Python aussi rapide que l'assembleur, on aura tout vu... Je vois mal comment un langage interprété, qui est donc une surcouche programmée en C, lui même une surcouche au dessus de l'assembleur, pourrait être plus rapide que de l'assembleur pur... Quant à la rapidité de Python/Java, là encore c'est du flan...Je ne vois pas comment une boucle qui ne prend quasiment aucun temps d'éxécution en Python pourrait prendre une heure en Java...
 

MagicBuzz a écrit :

Je ne suis pas certain que la boucle soit si foireuse que ça.(...)


Oui, c'est clair que GetPixel est moisi... C'est clair qu'il aurait plutôt intéret à passer par un truc genre JSDL par exemple, mais tant qu'il postera pas de code, on ne fera que des supputations et rien d'autre.

n°1538341
Funkyfonk
Posté le 04-04-2007 à 12:21:06  profilanswer
 

gfive a écrit :

Haha!! Ce qu'il faut pas lire!!! :D
 
Tu te rends compte de ce que t'écris, au moins???
Pour que ça dure "des heures", comme tu le dit (déjà, combien de temps ça prend, ton machin, précisément?), soit, effectivement, ta boucle est mal écrite, soit l'opération que tu fais dans le corps de la boucle est longue par nature, et c'est pour ça que ça prends du temps.
Sinon, non, parcourir tous les pixels d'une image, pour faire une opération dessus, ben ça se fait un par un, à priori.
A la limite, tu peux amélorer les choses en stockant les résultats calculés pour ne pas avoir à les recalculer pour les pixels de même valeur, mais si ton traitement est simple, leremède sera peut être pire que le mal.
 
Sinon, pour info, la même boucle que celle de Harko en Java prend 208 secondes en écrivant i à chaque itération sur stdout, et 0 secondes [:peur] sans rien écrire.
 
Et j'ai pas de supercalculateur  [:doc petrus]  
 
Maintenant, espérer de l'aide sans code, c'est un peu gonflé.


 
Comme tu dis, j'ai écrit au dessus :
je travaille sur une image, je fais un buffering debuffering et inversement...car j'utilise getPixel. Il y a donc un traitement en plus de la boucle. Est ce possible de le faire en python.
 
L'opération que je fais dans le corps de la boucle est longue par nature. Il y a des librairies qui permettent d'accelerer le processus mais je dois utiliser la librairie standart, c est une contrainte.
 
Masklinn explicite stp au lieu de lancer des réflections. Si tu sais les choses, dit les et corriges moi.

Message cité 2 fois
Message édité par Funkyfonk le 04-04-2007 à 12:27:39
n°1538343
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2007 à 12:25:03  profilanswer
 

Funkyfonk a écrit :


L'opération que je fais dans le corps de la boucle est longue par nature. Il y a des librairies qui permettent d'accelerer le processus mais je dois utiliser la librairie standart, c est une contrainte.


Mais tu attends quoi pour poster le code de ce traitement bon dieu ?? Il est bien évident que c'est lui qui te ralentit, donc plutot que de tergiverser, poste donc ce code pour qu'on voit s'il y a moyen de l'optimiser, c'est quand même pas dur à comprendre bordel de merde !

n°1538345
masklinn
í dag viðrar vel til loftárása
Posté le 04-04-2007 à 12:28:09  profilanswer
 

Funkyfonk a écrit :

Comme tu dis, j'ai écrit au dessus :
je travaille sur une image, je fais un buffering debuffering et inversement...car j'utilise getPixel.
 
L'opération que je fais dans le corps de la boucle est longue par nature. Il y a des librairies qui permettent d'accelerer le processus mais je dois utiliser la librairie standart, c est une contrainte.


Super [:bien]
 
À la 10e réponse du topic Harko t'a demandé un bout de code histoire qu'on puisse comprendre ce dont tu parles, parce que le forum ne nous a pas encore payé de boule de cristal, mais non a pas encore vu la queue d'une ligne de code.

Funkyfonk a écrit :

Maskin explicite stp.


Il n'y a rien à expliciter, Python est un langage interprété sans JIT extrèmement lent sur les calculs numériques comparés à Java: http://shootout.alioth.debian.org/ [...] lang2=java
 
Donc tu racontes n'imp [:spamafote]  
 
D'ailleurs même en utilisant Psyco (le JIT pluggable Python), Python se fait fesser en vitesse de calcul pure http://shootout.alioth.debian.org/ [...] ang2=java5


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1538357
Funkyfonk
Posté le 04-04-2007 à 12:54:40  profilanswer
 

Pour la vitesse, Je ne suis pas un expert du python mais comme j'ai supposé que puisqu'il est tout de même utilisé sur les supercalculateurs et utilise des meca de bas niveau, s'en était peut être la raison... mais apparemment non.  
 
Pour ce qui est de python et de l'assembleur, c'était juste une métaphore pour exprimer la vitesse d'execution par rapport au langage java.
 
Je vais me documenter sur JSDL et voir les point fort de python.
merci pour la page des benchmark, super cool.
Je poste le code ce soir quand je rentre...

Message cité 1 fois
Message édité par Funkyfonk le 04-04-2007 à 12:58:15
n°1538360
masklinn
í dag viðrar vel til loftárása
Posté le 04-04-2007 à 13:01:36  profilanswer
 

Funkyfonk a écrit :

Pour la vitesse, Je ne suis pas un expert du python mais comme j'ai supposé que puisqu'il est tout de même utilisé sur les supercalculateurs et utilise des meca de bas niveau


Python n'utilise pas plus de "mécas de bas niveau" que Java, il donne plus facilement accès au système et au métal que Java mais ça n'a aucun rapport [:pingouino]

Funkyfonk a écrit :

Pour ce qui est de python et de l'assembleur, c'était juste une métaphore pour exprimer la vitesse d'execution par rapport au langage java.


Ca reste n'importe quoi, puisque le python est notablement plus lent que Java sur la JVM de Sun [:spamafote]  


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1538377
Funkyfonk
Posté le 04-04-2007 à 13:44:46  profilanswer
 

exact, apres verification, j 'avais mal lu, eloigné des meca bas niveau malgré tout utilisé sur des supercalculateurs.non?. D'ou ma supositions...
 
Pour ce qui est de la vitesse, je veux dire entre l'assembleur et java puisque comme tu l'as montré, ce n'est pas le cas pour python.

n°1538378
Tamahome
⭐⭐⭐⭐⭐
Posté le 04-04-2007 à 13:45:45  profilanswer
 

c'est ici la fete ? [:max evans]

n°1538383
Funkyfonk
Posté le 04-04-2007 à 13:51:57  profilanswer
 

oui, soit le bienvenu

n°1538385
Tamahome
⭐⭐⭐⭐⭐
Posté le 04-04-2007 à 13:54:38  profilanswer
 

merci [:shay]

n°1538389
Funkyfonk
Posté le 04-04-2007 à 14:04:19  profilanswer
 

Welcome to SUN TECH WAR

n°1538391
Pablo Escr​obarbe
Retour d'exil
Posté le 04-04-2007 à 14:05:51  profilanswer
 

Je suis ni pour ni contre le parcours d'un tableau.

n°1538393
Tamahome
⭐⭐⭐⭐⭐
Posté le 04-04-2007 à 14:07:15  profilanswer
 

Votez pour Harko ! [:shay]

n°1538397
Funkyfonk
Posté le 04-04-2007 à 14:10:48  profilanswer
 

tien, peut etre que ca permettra de calmer la tention, un moment de détente lol  
http://www.youtube.com/watch?v=5Z4YFRQf9rE

n°1538408
Pablo Escr​obarbe
Retour d'exil
Posté le 04-04-2007 à 14:22:16  profilanswer
 

Je peux pas voir les videos du boulot :o

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Précédente

Aller à :
  FORUM HardWare.fr
  Programmation
  Java

  acceler le parcour de mon tableau

 

Sujets relatifs
tableau a 2 dimensions!!!!![Pascal] Length pour tableau ?
tri d'un tableau par ordre alphabétique[résolu]Comment attraper tous les noeud d'un même type dans un tableau
foreach pour un tableauafficher une image BMP a partir d'un tableau de pixels
Dégradé dans un tableau...Probleme recherche tableau
tableau php vers excelTableau de BITs en C ?
Plus de sujets relatifs à : acceler le parcour de mon tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR