begin process at 2012 02 15 19:55:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Général

 > 

Problème System.out.println en commentaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème System.out.println en commentaire

mardi 7 juillet 2009 à 14:19:08 | Problème System.out.println en commentaire

Nico38g

Bonjour à tous !
Je suis actuellement en stage, et j'ai à reprendre un projet JAVA écrit précédemment.
Le problème que je rencontre est que l'application fonctionne très bien cependant lorsque je commente une ligne avec un '"System.out.println" alors l'appli ne marche plus.
Voici le code mis en cause :

int grey = input.read();
                    if(grey != -1)
                    {
                        System.out.println("Datamanager : Couleur pixel n°"+i+" == "+grey);//Si cette ligne est supprimer aucune lecture est faire. J'ai pas compris pourquoi
                        this.setPixel(i, grey); //On delegue la responsabilite de la gestion des données d'une image au gestionnaire de données
                      ...

Si quelqu'un pouvait m'aider ça serait cool
J'ai cru voir qu'on pouvait remplacer les println par de log4j, mais je ne sais pas du tout comment faire car finalement l'affichage console de cette information ne m'intéresse pas car il ralentit le programme.

Merci d'avance
Nicolas 
mardi 7 juillet 2009 à 17:38:26 | Re : Problème System.out.println en commentaire

danimo

Salut,

La lecture étant faite à l'intérieur des () du print, si tu supprimes tout, on ne la fait plus...
Supprime donc System.out.println mais garde cette lecture.

Cordialement,

Dan

...\ Dan /...

mardi 7 juillet 2009 à 21:06:15 | Re : Problème System.out.println en commentaire

Nico38g

Bonsoir,
Je ne vois pas de quel lecture vous parlez car il s'agit seulement d'affichage la lecture est réalisée plus haut.
Merci
mardi 7 juillet 2009 à 23:37:41 | Re : Problème System.out.println en commentaire

danimo

Re,

Peux tu me dire ce qu'affiche ce print? merci

...\ Dan /...

mercredi 8 juillet 2009 à 09:37:29 | Re : Problème System.out.println en commentaire

Nico38g

Oui bien sur il affiche quelque chose du genre :
"
Datamanager : Couleur Pixel n°18 == 224
"
Avec la lecture de grey réalisé plus haut par grey=input.grey (lecture d'un flux RS232)
mercredi 8 juillet 2009 à 09:54:03 | Re : Problème System.out.println en commentaire

danimo

Et que penses tu que fait this s'il n'a plus ce résultat ?

...\ Dan /...

mercredi 8 juillet 2009 à 13:20:50 | Re : Problème System.out.println en commentaire

Nico38g

En fait je viens de faire quelques test et je me suis rendu compte que le problème ne vient pas de l'affichage mais plutôt du fait que l'utilisation du println() ralentit le programme et alors cela fonctionne.
Si je supprime la ligne les valeurs de grey, i sont bonnes mais je ne parcours plus la boucle suffisemment de fois.

Voici une partie plus importante du code, et le problème vient de input.available() qui, si le println est supprimé, a une valeur bien inferieure :

public void portEvent(PortEvent evt) {

        switch (evt.getEventType()) {

        //Des données sont disponibles depuis le port
        case PortEvent.DATA_AVAILABLE:
            //System.out.println("DataManager : Receive PORTEVENT.DATA_AVAILABLE");

            InputStream input = null;

            try {

                input = this.myPort.getInputStream();

                int maxpixel = this.mySensorManager.getCurrentSensor().getCapacity(); //height*weight

                //Construction d'une image du capteur
                int i = 0;
                while ((input.available() > 0) && (i<maxpixel)) {
                    System.out.println("DataManager : Reste "+input.available()+" octets a lire");
                    //System.out.println("DataManager : Lecture de données");
                    int grey = input.read();
                    if(grey != -1)
                    {
                        System.out.println("Datamanager : Couleur pixel n°"+i+" == "+grey); //Si cette ligne est supprimer aucune lecture est faire. J'ai pas compris pourquoi
                        this.setPixel(i, grey); //On delegue la responsabilite de la gestion des données d'une image au gestionnaire de données
                       
                        if(i == maxpixel-1)
                        {
                            System.out.println("DataManager : Demande d'envoi de données d'une nouvelle image");
                            try {
                                Thread.sleep(5000);
                            } catch (InterruptedException e1) {
                                // TODO Auto-generated catch block
                                e1.printStackTrace();
                            }
                            this.myPort.getOutputStream().write(1);
                            try {
                                Thread.sleep(100);
                            } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                    }
                    else
                    {
                        System.out.println("DataManager : Plus aucune données a lire");
                    }
                    i++;
                }

            } catch (IOException e) {
                e.printStackTrace();
            }

            break;

        default:
            break;
        }
    }
jeudi 9 juillet 2009 à 10:37:39 | Re : Problème System.out.println en commentaire

Kotomine

Salut, t'es tombé dans un problème classique de conditions de concurrence de type producteur/consommateur  on dirait bien.

Fais attention à ton design, et essaye de l'adapter pour que la vitesse du CPU n'influe pas sur le comportement de ton programme ( Pense toujours que c'est ton OS (windows, linux, ..) qui schedule tes threads/applications, et peut te balancer ton datamanager sur un CPU(ou core) 4x plus rapide que celui qui va faire tourner le code qui envoit les données à ton datamanager)

Un petit lien  ici

http://www.infres.enst.fr/~domas/TP-Java-Conc-2.html

;I'm just keeping the hopeless cross to increase the meaninglessness
vendredi 10 juillet 2009 à 11:11:39 | Re : Problème System.out.println en commentaire

Nico38g

Bonjour !
Merci pour ta réponse car je me suis aperçu que c'est exactement mon problème : synchronisation entre threads ...
J'en avais entendu parler et je viens de l'essayer ...  
Je suis en train de résoudre tout ça, je fais au mieux : je change par exemple l'utilisation de la méthode available() car elle était mal utilisée.
Je vous tiens au courant et encore merci ! 


Cette discussion est classée dans : problème, system, out, println, grey


Répondre à ce message

Sujets en rapport avec ce message

Problème méthode redefinissante [ par Avidev ] Bonjour, je débute en java, avec l'aide d'un livre,mais je bloque sur un listing :class PrintClass { int x = 0; int y = 1; void printMe() { System.ou pb Connection : Connection is busy with results for another hstmt [ par kicri ] Je développe en java avec une base de donnée sous sql server.Lors d'une de mes requetes à la base j'ai cette erreur qui se produit assez souvent : Con question sur action listener [ par niko29940242 ] bjour a tous et a toutesvoila j'ai une ptite kestion sur l'utilisation de actionlistener; en fait j'arive a men servir il nya aucun pb la dessus mais acces au contenu d'un message avec javamail [ par amine hayat ] Bonjour. Voici mon problème.Je suis en train de faire une appli qui doit recevoire et envoyer des emails dans une boîte mail. mon probléme est que je compatibilité argument File String [ par sido722 ] Mon erreurMafenetre4.java:181: tests(java.io.File) in Mafenetre4 cannot be applied to (java.lang.String) tests(file.getAbsolutePath()); [objectOutputStream] blocage sur le writeObject [ par Frouf85 ] bonjour,je fais deux application communiquant via un reseau et 'utilise pour communiquer les objectInputStream et objectOutputStream.Lors du deuxième JFrame bloqué à la fermeture d'une thread [ par brex ] bonjour J'ai un soucis avec mon programme. Il est composé de 3 class: GUI, controller, tcpServer. La class GUI est mon interface graphique (JFrame) q [JMF][RTPManager] probleme de transmission ou de reception de video [ par vdavid1982 ] voila aprés des jours complets de recherche je me suis décidé à demander clairement sur ce forum de l'aide ... je dois réaliser un logiciel de visioco Fermeture d'une Socket par le client [ par Yenapa ] Salut a tousJe suis un train de developper une application client serveur, et j'ai un petit soucis avec mes socket:Pour le moment je me connecte avec FileChooser et InputStream compatibilite ? [ par pyrokana ] Bonjour à tous,Je suis debutant en java et j'ai decide de developper une petite appli tres simple pour le boulot seulement je suis bloqué. En effet ,


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales