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

Débats sur le développement - Le Best Of Discussion :

Conception et réalisation de programmes hautes performances et/ou sûrs


Sujet :

Débats sur le développement - Le Best Of

  1. #161
    Membre habitué
    Profil pro
    Développeur Java
    Inscrit en
    Juin 2009
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2009
    Messages : 102
    Points : 172
    Points
    172
    Par défaut
    Petite question pour Mac Lak... Il me semble que sur l'A380 ils ont introduit énormément de Java ? Ce ne sont que pour les systèmes secondaires / isolés alors ? Aucun calculateur, ni rien ?
      0  0

  2. #162
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Je me permet de citer une nouvelle fois cet article que j'ai sorti sur l'autre troll de je n'sais plus combien de pages :

    Scientific and technical computing, as, for example, carried out at CERN, is characterized by demanding problem sizes and a need for high performance at reasonably small memory footprint. There is a perception by many that the Java language is unsuited for such work. However, recent trends in its evolution suggest that it may soon be a major player in performance sensitive scientific and technical computing. For example, IBM Watson's Ninja project showed that Java can indeed perform BLAS matrix computations up to 90% as fast as optimized Fortran. The Java Grande Forum Numerics Working Group provides a focal point for information on numerical computing in Java. With the performance gap steadily closing, Java has recently found increased adoption in the field. The reasons include ease of use, cross-platform nature, built-in support for multi-threading, network friendly APIs and a healthy pool of available developers. Still, these efforts are to a significant degree hindered by the lack of foundation toolkits broadly available and conveniently accessible in C and Fortran.

    The latest stable Colt release breaks the 1.9 Gflop/s barrier on JDK ibm-1.4.1, RedHat 9.0, 2x IntelXeon@2.8 GHz.
    Source : http://acs.lbl.gov/~hoschek/colt/

    Donc java et bonnes performances ne sont pas totalement incompatibles. On retient toutefois que ces braves gens ont du coder leurs propres structures de données utilisant des primitifs en majorité, afin d'éviter le boxing qui est parfois très handicapant sur les grosses collections.
      0  0

  3. #163
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par _skip Voir le message
    Donc java et bonnes performances ne sont pas totalement incompatibles.
    Mais pas encore compatibles

    However, recent trends in its evolution suggest that it may soon be a major player in performance sensitive scientific and technical computing.
    Encore beaucoup de suppositions, de possibilités, et de recherches...

    Donc pas encore utlisable...

    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques
      0  0

  4. #164
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Encore beaucoup de suppositions, de possibilités, et de recherches...
    Donc pas encore utlisable...
    Alors pourquoi tant d'outils de ce genre existent en java, pourquoi des frameworks de simulation multi agents et de parallélisme et pourquoi des organismes comme le Cern investissent-ils dans cette technologie?

    Je soupçonne parfois les arguments en sa défaveur de ne pas tenir compte des évolutions qu'à subi cette techno depuis 1996.
      0  0

  5. #165
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par _skip Voir le message
    On retient toutefois que ces braves gens ont du coder leurs propres structures de données utilisant des primitifs en majorité, afin d'éviter le boxing qui est parfois très handicapant sur les grosses collections.
    En clair, ça veux dire quoi?
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com
      0  0

  6. #166
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    En clair, ça veux dire quoi?
    Quand tu veux mettre un type primitif (int, long, char, ....) dans une collection générique de la bibliothèque standard Java, ils sont autoboxés, autrement dit on les enveloppe dans le type objet correspondant (Integer, ...) pour que la collection puisse les traiter comme n'importe quel contenu.
    Pour avoir des hautes performances il est nécessaire d'écrire des collections spécialisés pour l'un de ces types, de façon à ce que ce type primitif n'ait pas besoin d'être boxé pour entrer dans cette collection. En bref ils ont dû écrire et utiliser des Int(Float/Long/...)ListArray qui ne peuvent contenir que des int et pas des Object quelconques.

    NB: Tu pourrais faire un effort, ça fait pratiquement 2 ans que je n'ai plus vraiment fait de Java (et je n'en ai jamais fait intensivement) mais j'ai décodé sans problème.

    --
    Jedaï
      0  0

  7. #167
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Quand tu veux mettre un type primitif (int, long, char, ....) dans une collection générique de la bibliothèque standard Java, ils sont autoboxés, autrement dit on les enveloppe dans le type objet correspondant (Integer, ...) pour que la collection puisse les traiter comme n'importe quel contenu.
    Pour avoir des hautes performances il est nécessaire d'écrire des collections spécialisés pour l'un de ces types, de façon à ce que ce type primitif n'ait pas besoin d'être boxé pour entrer dans cette collection. En bref ils ont dû écrire et utiliser des Int(Float/Long/...)ListArray qui ne peuvent contenir que des int et pas des Object quelconques.

    NB: Tu pourrais faire un effort, ça fait pratiquement 2 ans que je n'ai plus vraiment fait de Java (et je n'en ai jamais fait intensivement) mais j'ai décodé sans problème.

    --
    Jedaï
    c'était pour être certain d'avoir compris que ces gens s'étaient passé d'un des trucs sympas du java .

    ça me rappelle un cp (java) qui me disait qu'il fallait le faire ressembler à du C pour avoir des perfs :/, je ne sais pas s'il a raison, je n'ai jamais vraiment fait de java en tout cas pas de façon intime.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com
      0  0

  8. #168
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Ces objets boxés ont l'inconvénient d'être à la fois immuables et conséquents en terme d'occupation mémoire.

    Un boolean d'un byte en fait 16 dans sa version boxée. Ca devient un Boolean qui hérite de Object, possède une fonction d'égalité, une fonction de hachage, de conversion en String, tout ce dont le framework a besoin pour pouvoir le traiter comme absolument n'importe quel autre type.

    Dans le cas d'une matrice de primitifs, euh... je ne sais pas comment ça se dit en français, le contraire de *dense*, "sparse" en anglais (éparse?), donc avec un taux de remplissage assez faible mais des dimensions importantes, le fait d'utiliser des HashMaps "indice -> valeur" va nécessiter beaucoup d'opérations de boxing et d'unboxing, avec le cout en performance et l'occupation mémoire qui va avec.

    C'est pourquoi l'implémentation d'une table de hachage ouverte à base de primitif non générique prend tout son sens. Et c'est ce que les libs mathématiques offrent bien souvent.
      0  0

  9. #169
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    En clair, ça veux dire quoi?
    ça veut dire qu'en Java, pour chaque type primitif (int, float ...) il y a leur équivalent en Objet (Integer, Float, ...) et que si on passe par les objets, c'est forcément plus couteux.

    Pour en revenir au sujet :

    Malgré quelques répétitions, j'ai trouvé l'opposition plutôt productive et j'ai appris pleins de trucs.

    J'ai découvert grâce à Mac Lak () tout un monde dont je n'imaginai même pas l'étendue. Si j'avais initialement tendance à penser que son champ d'application concerne qu'un faible pourcentage du développement informatique, je ne me risquerai plus comme certains à sortir un pourcentage de mon chapeau car finalement, mon expérience n'est qu'un petit point de vue.
    Le petit reproche que je lui ferai, c'est qu'il n'a pas réussi à me faire comprendre en quoi le foreach est plus dangereux que le for dans le cas où le container est exploré entièrement (de 1 à n), que son contenu ne varie pas durant la boucle, que l'iterator fait ce qu'il est censé faire et qu'il n'y a pas d'accès concurrent. (Dans tous les autres cas, peut être même les plus fréquent dans son domaine, j'ai bien compris les nuances)
    J'aurai également une question sur les outils de développement qu'il utilise ?
    Alors que le code identique est factorisé dans des composants réutilisables dans une approche de plus haut niveau, j'ai l'impression que dans l'approche de plus bas niveau, on procède plus par copier/coller de snippet de code presque identique mais pas tout à fait. Est ce le cas ?

    Concernant l'intervention d'alex_pi, merci de pousser mac dans le développement de ses opinions. Je trouve l'apport de liens en référence plutôt sain pour le débat même si les protagonistes n'en font pas toujours la même lecture (il paraît qu'on lit un document dans le sens qui nous convient ). Je dois également avouer que de mon point de vue, le monde des langages fonctionnels demeure universitaire (le jouet des labos). Merci donc à gorgonite pour l'explication.


    J'essaye de garder un regard objectif même si je suis plus attiré par le haut niveau. En théorie, j'aimerai me passer du bas niveau mais en pratique, l'indépendance n'est pas toujours aussi nette et le méconnaître n'est pas sans conséquence. Je suis content qu'il y a des macs qui font pour nous le "sale bouleau" (comprenez le truc que j'aime pas).
    De plus, je crains de voir dans mon domaine (les applications web) les dérives du "haut niveau" où à force d'abstraire, on empile les couches ... (A ce titre, il y a des idées intéressantes dans le livre "Better, Faster, Lighter Java"). Rester pragmatique est donc à mon humble avis une attitude saine.

    PS : Je confirme un point de vue de MAC : penser comme la machine, ne jamais être sur de soi aide beaucoup dans le débuggage.

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.
      0  0

  10. #170
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par _skip Voir le message
    Alors pourquoi tant d'outils de ce genre existent en java, pourquoi des frameworks de simulation multi agents et de parallélisme et pourquoi des organismes comme le Cern investissent-ils dans cette technologie?
    Peut-être parce que, comme son nom l'indique, c'est un organisme de Recherche


    PS: en tous cas, les termes utilisés, en anglais, font bien preuve du fait que ce n'est pas encore vrai...


    Citation Envoyé par benwit Voir le message
    De plus, je crains de voir dans mon domaine (les applications web) les dérives du "haut niveau" où à force d'abstraire, on empile les couches ...
    Absolument, et c'est une des dérives qui a justement le plus de répercussions dans le domaine du sujet du thread...



    Citation Envoyé par benwit Voir le message
    Rester pragmatique est donc à mon humble avis une attitude saine.



    Citation Envoyé par benwit Voir le message
    PS : Je confirme un point de vue de MAC : penser comme la machine, ne jamais être sur de soi aide beaucoup dans le débuggage.
    Mais pas seulement dans le débuggage, c'est ce que certains soulignaient plus haut...

    Pour beaucoup d'applications sensibles...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques
      0  0

  11. #171
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    PS: en tous cas, les termes utilisés, en anglais, font bien preuve du fait que ce n'est pas encore vrai...
    Y a peu de chance que ca soit le cas un jour. Java est un langage objet, donc une collection de trucs, ca sera toujours un "objet" collection qui contient des "objets" trucs. Ca ne sera jamais aussi optimisé qu'un tableau lineaire de valeurs en C.

    Mais ce n'est pas non plus le but de Java (le langage) de faire dans la performance "C". C'est pour cela qu'il existe JNI : un moyen d'utiliser/appeler du code "C" depuis Java. Ca existe d'ailleurs dans la plupart des langages.

    Ne pas utiliser ces possibilités offertes par les langages et critiquer les performances, c'est faire une grosse erreur en tant que développeur.

    Pour moi, un bon expert d'un langage, ce n'est pas celui qui connait la syntaxe/grammaire par coeur. Ce n'est pas non plus celui qui connait tous les snipets/patterns usuels. Ni celui qui peut expliquer comment ca marche à l'intérieur (compilateur, librairies, ...). Encore moins celui qui réussit a coder héroïquement ce que tout le monde pensait impossible de réaliser.

    Pour moi, un bon expert d'un langage, c'est celui qui est capable de me dire que ce langage n'est pas adapté a ce que je veux faire.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
      0  0

  12. #172
    Rédacteur en Chef
    Avatar de Marc Lussac
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mars 2002
    Messages
    28 664
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2002
    Messages : 28 664
    Points : 61 614
    Points
    61 614
    Par défaut
    Cher amis ,

    Message adressé à deux individus qui se reconnaitrons : Vous seriez bien aimable d'arrêter de pourrir la vie des modérateurs et de leur faire la guerre, les hors sujets sur le forum concernant la modération sont interdits dans les règles du club.

    Du coup vous avez gagné ! Les modérateurs ont été tellement dégoutés par le comportement immature et irresponsable de certains qu'ils ont parqués tous le sujet, c'est malin.

    Malgré que certaines participations sur cette discussion n'aient pas un grand intérêt car du pur troll, je remets au moins la discussion en ligne qu'elle soit accessible en lecture.

    Tous les commentaires sur la modération seront supprimés illico, les récidivistes seront bannis du forum, de plus pour faire taire les rumeurs comme quoi tout ce sujet n'est qu'un vaste "sac à trolls" sans intérêt il est possible que des modérateurs passent sur le sujet pour faire des suppressions massives et ne garder ce qui est jugé intéressant.

    Oui c'est moche, mais c'est mieux que de supprimer tous le débat, il y à certainement dans le lot de ce foutoir des interventions de professionnels en informatique expérimentés et avisés et pas que du troll.

    Le sujet sera peut être réouvert un jour quand vous serez calmés.

    Si vous avez une plainte à formuler sur la modération, merci d'envoyer un message argumenté avec les précisions utiles au responsable modération : Guardian

    Ne pas me contacter pour le forum et je ne répondrai à aucune question technique. Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts

    15 000 offres d'emploi développeurs et informatique
    Cours et tutoriels développeurs et informatique
    Les FAQ's & Les Livres
    Codes sources
    Téléchargements
      0  0

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/10/2012, 10h19
  2. réalise un programme avec Delphi tres compliqué
    Par ouldfella dans le forum Delphi
    Réponses: 11
    Dernier message: 04/09/2006, 23h49
  3. Réponses: 15
    Dernier message: 18/05/2006, 13h43
  4. conception et réalisation d'une application client/serveur
    Par masvivi dans le forum Développement
    Réponses: 1
    Dernier message: 24/08/2005, 12h32
  5. Qui a inventé le concept de "langage de programmation?
    Par Biane dans le forum Langages de programmation
    Réponses: 10
    Dernier message: 11/02/2004, 10h11

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