IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

wget en java opti ?


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 60
    Par défaut wget en java opti ?
    bonjour,

    je cherche a faire en java un wget j utilise un code trouver sur le forum

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public  String getSourceOfWebPage(String url_page) throws MalformedURLException, IOException
     {
         URLConnection urlConnection = new URL(url_page).openConnection();
         urlConnection.connect();
         Scanner scanner = new Scanner(urlConnection.getInputStream());
         StringBuffer source = new StringBuffer();
         while (scanner.hasNextLine())
     {
         source.append(scanner.nextLine());
         }
     
         return source.toString();
        }
    probleme c est qu il es 2 fois moin rapide que ca en python ou en php

    donc la question es y a t il une solution pour le rendre plus rapide ou pas?

    python

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import urllib, sys
    print urllib.urlopen(sys.argv[1]).read()
    php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $content = file_get_contents("http://www.monsite.com");
    echo $content;

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Déjà ton code n'est pas correct puisque le flux n'est pas fermé !
    (et perso j'aurais utilisé une lecture par buffer manuel plutôt que la classe Scanner, mais c'est un détail).


    Citation Envoyé par simoelasimo Voir le message
    probleme c est qu il es 2 fois moin rapide que ca en python ou en php

    donc la question es y a t il une solution pour le rendre plus rapide ou pas?
    2 fois moins rapide cela me semble quand même énorme...

    Tu fais comment pour obtenir ce résultat ? Et quels sont les temps que tu obtiens...


    a++

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 60
    Par défaut
    oui c est enorme c est pour cela que je cherche quelque chose de mieu coter java

    notamant t es "lecture par buffer manuel" peu tu expliquer ou faire un exmple

    pour obtenir ce resultat je lance plusieur fois les les prog avec time et je fait une moyen.

    pour java
    time java -jar prog.jar

    real 0m0.450s
    user 0m0.152s
    sys 0m0.012s

    pour python

    time python con.py site

    real 0m0.244s
    user 0m0.028s
    sys 0m0.008s

    pour php

    time php comp.php

    real 0m0.262s
    user 0m0.020s
    sys 0m0.004s

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Par défaut
    C'est normal que tu obtiennes ce genre de temps puisque la JVM doit être chargée à chaque lancement de l'application.

    Maintenant, si tu fais les tests de calcul du temps d'exécution à proprement parler, au sein de l'application plutôt qu'à l'extérieur, il y a de grande chances que Java passe devant les autres.

    Mais pour résoudre le problème de temps d'exécution de l'application à proprement parler, je ne sais pas très bien comment gérer cela, si ce n'est fournir un lanceur qui épurera un peu la JVM à lancer (si c'est même possible).

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 60
    Par défaut
    tu a tout a fait raison c est le chargement qui prend du temp !!

    si ja lance une bouble de 10 wget , java est plus rapide

    si vous avez des ameliorations a sugerer pour ma fonction vous ete les bien venu

    merci

  6. #6
    Invité de passage
    Inscrit en
    Novembre 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 1
    Par défaut gcj pour pallier au temps de chargmeent de la jvm
    Pour obtenir un executable plus rapide à charger, il est possible de compiler une telle appli avec gcj sous cygwin si tu es sous windows.
    j'ai déja compilé un proxy http avec.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. wget suivi de l'URL dans un bout de code Java
    Par Inquirer94 dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 26/03/2007, 14h53
  2. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo