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

avec Java Discussion :

Java langage compilé


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 5
    Points : 8
    Points
    8
    Par défaut Java langage compilé
    Bonjour,

    Pour les programmes java dont on sait que le temps de compilation sera négligeable par rapport au temps d’exécution, est-il possible de forcer la jvm à compiler tout le bitcode dès le départ dans le but d’obtenir des temps d’exécution semblables aux programmes déjà compilés en binaire.
    Si ce n’est pas possible à l’heure actuelle, est-ce envisageable dans les prochaines versions ?

  2. #2
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Salut,

    Je vais répondre à coté exprès dans un premier temps.

    Si tu as un besoin fort en performances, en tout cas plus fort que ce dont est capable Java aujourd'hui, le mieux est de s'orienter vers un langage plus efficace et connu pour ça comme le C par exemple.

    Pour répondre à différent points que tu évoques dans ton post, les performances de Java aujourd'hui sont tout à fait honnêtes et pour avoir vu certains benchmark il y a quelque années, tu serais surpris de voir que pour certaines choses il arrive même à être plus performant que certains langages compilés.

    Le principe à la base de Java est tout de même "compile once run everywhere" et donc s'appuie lourdement sur le fait qu'une machine virtuelle exécute le bytecode de manière identique partout et que seule cette machine virtuelle est spécifique à un OS et donc compilée pour lui.

    Et ça ne risque pas de changer, c'est à la base de la spécification de Java tout de même.

    Après il reste sûrement une approche possible du genre de traduire le programme Java en un autre langage qui lui se compile directement en code machine.. mais je ne conseillerai jamais ça comme solution à des soucis de performances.

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  3. #3
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Déjà si tu veux des performances tu dois utiliser la JVM server, avec l'option -server. Cette JVM effectues des opérations plus poussé pour améliorer les performances, en dépit d'un temps de chargement un peu plus lent. Bref parfait pour un serveur

    Sinon tu peux peut-être jouer avec -XX:CompileThreshold= pour modifier le nombre d'itération/exécution de méthode avant qu'elle soit compilé.
    -XX:CompileThreshold=1 devrait donc forcer la compilation de toute les méthode (attention ca risque d'avoir l'effet inverse à celui souhaité).

    N'hésites pas à consulter la doc des arguments de la JVM : http://www.oracle.com/technetwork/ja...sp-140102.html
    Mais c'est à utiliser avec précautions

    a++

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    La JVM compile le bytecode en code natif selon des critères qui lui sont propres sur un projet de calcul 3D, elle le faisait au premier appel de la chaîne de calcul.

    Tu peux donc utiliser un mode "Server" qui va tourner en tâche de fond et attendre des données à traiter. Les premiers traitements seront longs mais par la suite ca ira beaucoup plus vite.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

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

Discussions similaires

  1. Théorie des langages / Compilation
    Par Identifiant dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 28/01/2010, 18h10
  2. Cherche : Langage Compilé Rapide !
    Par kedare dans le forum Langages de programmation
    Réponses: 62
    Dernier message: 06/05/2006, 22h52
  3. [langage] Compilation ???
    Par Slippers dans le forum Langage
    Réponses: 2
    Dernier message: 09/02/2005, 14h44
  4. [Définition]Java langage "libre" ?
    Par Regis.C dans le forum Général Java
    Réponses: 9
    Dernier message: 28/01/2005, 14h23
  5. [langage] compiler un prog perl
    Par mike21 dans le forum Langage
    Réponses: 20
    Dernier message: 23/11/2004, 17h57

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