+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherches
    Inscrit en
    août 2008
    Messages
    22 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherches
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 391
    Points : 122 504
    Points
    122 504

    Par défaut Quelques expériences de Dart avec LLVM donnent des résultats prometteurs

    Quelques expériences de Dart avec LLVM donnent des résultats prometteurs
    qui pourraient être améliorés avec des optimisations du ramasse-miettes ajouté

    Dart est l’un des nombreux langages de programmation développés par Google. Il avait pour objectif premier de remplacer JavaScript dans les navigateurs (certaines versions préliminaires de Chrome avaient une machine virtuelle Dart), puis ses objectifs ont évolué pour être plus consensuels : un remplaçant potentiel de Java, mais avec toujours en tête l’idée de générer du code JavaScript très efficace. Le langage a donc un système de type dynamique et optionnel (les types des variables ne sont connus qu’à l’exécution), mais en limitant ses capacités dynamiques à la portion congrue (pas de fonction eval, pas d’ajout de propriétés à un objet après sa création).

    Des ingénieurs de Google ont tenté une expérience : remplacer la machine virtuelle derrière l’implémentation standard de Dart par LLVM et une compilation avant l’exécution, voir si cela permettrait d’améliorer la performance à l’exécution, notamment — LLVM est l’infrastructure de compilation derrière Clang, notamment. La tâche n’est pas aisée a priori : la machine virtuelle de Dart effectue déjà un gros travail de compilation du code à la volée avec des optimisations. LLVM n’est pas non plus prévu pour des langages avec ramasse-miettes, qui perturbent ses routines d’optimisation du code.

    De manière générale, une idée reçue est que l’implémentation d’un langage a droit à soit un ramasse-miette précis et efficace, soit un haut niveau d’optimisation du code. En effet, le ramasse-miette parcourt régulièrement les pointeurs sur de la mémoire allouée pour vérifier qu’elle est toujours utile ; après une passe d’optimisation, le code a tellement changé d’apparence qu’il est impossible de s’y retrouver. Une technique pour contourner le problème est de stocker les pointeurs dans une zone particulière, mais cela met en échec bon nombre d’optimisations possibles du code.

    Il y a peu, LLVM a intégré une nouvelle fonctionnalité expérimentale, les points d’état, qui sert justement à laisser le compilateur effectuer ses optimisations sans perturber le fonctionnement d’un ramasse-miettes. Le principe est de marquer explicitement les modifications du code au ramasse-miettes, de telle sorte que, en cas de déplacement d’un objet en mémoire, tous les pointeurs concernés peuvent être mis à jour (plus d’informations dans la documentation de LLVM).

    L’expérience s’est basée sur le code de Dartino, qui utilisait déjà LLVM pour optimiser du code Dart. Cependant, Dartino n’utilisait pas de ramasse-miettes, cette implémentation se limitait à lamentablement planter en cas de manque de mémoire. L’opération principale a été d’ajouter un ramasse-miettes à l’exécution et de le faire travailler de pair avec les optimisations. (Voir les détails d’implémentation.) Les résultats sont prometteurs : la performance est similaire à Flutter, qui a le même objectif (compiler du code Dart), tout en utilisant une infrastructure plus générique. Très peu de travail spécifique à Dart a été requis côté LLVM — certaines modifications pourraient augmenter la performance drastiquement, cependant. Des améliorations du ramasse-miettes pourraient aussi améliorer fortement la situation, les algorithmes actuellement utilisés pour cette expérience n’étant pas au même niveau que Flutter.


    Globalement, l’objectif de cette « petite » expérience est atteint : oui, il est possible de mélanger LLVM, des optimisations très pointues du code, avec un ramasse-miettes, avec une performance tout à fait respectable.

    Source : Dart-on-LLVM.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions) ? Contactez-moi par MP.

    Nouveau ! Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Membre émérite
    Profil pro
    Développeur
    Inscrit en
    mars 2012
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur
    Secteur : Communication - Médias

    Informations forums :
    Inscription : mars 2012
    Messages : 1 427
    Points : 2 355
    Points
    2 355

    Par défaut

    c'est quoi cette traduction à la française: "ramasse-miette" !
    "Garbage collector" est un mot connu des programmeurs.
    Si la réponse vous a aidé, pensez à cliquer sur +1

  3. #3
    Membre expérimenté Avatar de SkyZoThreaD
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    juillet 2013
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : juillet 2013
    Messages : 524
    Points : 1 379
    Points
    1 379

    Par défaut

    Citation Envoyé par hotcryx Voir le message
    c'est quoi cette traduction à la française: "ramasse-miette" !
    "Garbage collector" est un mot connu des programmeurs.
    Je suis d'habitude plutôt anti-traduction car ça peut modifier le sens ou ajouter de l’ambiguïté, mais je trouve "ramasse-miettes" limite meilleur que "garbage collector".
    La liberté est à la sociologie ce que l'instant présent est à la physique relativiste.

  4. #4
    Membre éprouvé
    Profil pro
    undef
    Inscrit en
    février 2013
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : undef

    Informations forums :
    Inscription : février 2013
    Messages : 400
    Points : 1 161
    Points
    1 161

    Par défaut

    Ramasse-miettes tout autant. Un texte cent pour cent français n'a rien de choquant.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    février 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2014
    Messages : 13
    Points : 57
    Points
    57

    Par défaut DartVader

    C'est drôle cette réaction de certain sur le mot "ramasse-miette" au lieu de garbage collector alors que la vrai question, elle, devrait-être: ça existe encore Dart et il y a vraiment des gens entreprise qui l'utilisent?!?

  6. #6
    Expert éminent

    Profil pro
    tutu
    Inscrit en
    juin 2003
    Messages
    5 591
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : tutu

    Informations forums :
    Inscription : juin 2003
    Messages : 5 591
    Points : 9 655
    Points
    9 655
    Billets dans le blog
    3

    Par défaut

    Citation Envoyé par hotcryx Voir le message
    c'est quoi cette traduction à la française: "ramasse-miette" !
    "Garbage collector" est un mot connu des programmeurs.
    Que penses-tu de l'autre traduction : "glaneur de cellules" ?

  7. #7
    Membre confirmé Avatar de alves1993
    Homme Profil pro
    Développeur Java/Dart (Back-End;Front-End;Android)
    Inscrit en
    décembre 2012
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Java/Dart (Back-End;Front-End;Android)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : décembre 2012
    Messages : 205
    Points : 477
    Points
    477

    Par défaut Dart est toujours vivant

    Citation Envoyé par 1franck Voir le message
    C'est drôle cette réaction de certain sur le mot "ramasse-miette" au lieu de garbage collector alors que la vrai question, elle, devrait-être: ça existe encore Dart et il y a vraiment des gens entreprise qui l'utilisent?!?
    Oui des personnes utilisent Dart en production, avec ce lien-là tu auras une liste de personnes utilisant Dart en production https://www.dartlang.org/community/who-uses-dart.
    Moi j'utilise Dart et Angular (https://webdev.dartlang.org/angular) pour concevoir mes applications Web.
    En plus l'indice TIOBE indique que c'est le second langage qui a eu une montée fulgurante http://news.dartlang.org/2017/01/dar...t-growing.html.
    Un geek ne vieillit pas, il se met à jour.

    Pour plus d'informations sur Android regarder la faq Android.
    Ensuite les tutoriels Android sont disponibles ici
    Pour les mecs, qui n'arrivent pas toujours à digérer le Javascript, Dart peut-être une solution pour vous.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    mai 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mai 2015
    Messages : 13
    Points : 33
    Points
    33

    Par défaut ERP x RSE mobile first: architecture modulaire, CMS: Dart TS ou JS? Ou NativeScript?

    Salut!

    S'il te plait toi qui utilise Dart et Angular, peux tu me conseiller?

    J'essaie de faire un outil de gestion pour familles, et réseau social interne et intra familles: regarde www.tribeez.com , modulaire, avec à terme un appstore de module ou apps ou plugin pour qu'une famille taille sur mesure ton portail (à la ExOplatform par exemple, ou Odoo (ERP), etc.). Sans oublier le réseau social.

    Nous avons commencé en React sur Firebase. Mais l'équipe de dev va grandir (de 1 il y a 3 mois nous serons 4 la semaine prochaine puis etc.) et pas que des top gun. Et des partenaires extérieurs sont intéressés pour d'autres usages, nous cherchons une architecture façon CMS et ses plugins ou chacun puisse ensuite personnaliser son portail à l'usage de ses clients: colocataires, famille, groupe d'amis, entreprises, etc.

    React me semble très riche dynamique et à la pointe, mais manque de cadre pour que tous respectent un urbanisme facilement. Angular (4 maintenant), complet et cadré, semble être une solution. En JS, TS ou Dart? Avec toujours Firebase et consorts derrière ou avec quel autre solution?

    Nous visons "mobile first", et bien sûr un seul codebase pour toutes les plateformes iOS Android et Web responsive sinon ça va devenir ingérable... (là, j'ai pas encore bien compris ce que NativeScript offre alors qu'il y a déjà JS TS et Dart dans Angular... et Dart pour Fuschia arrive... pffff...)

    Et productivité maximale car ça avance vraiment pas...

    Enorme merci pour tes conseils!

  9. #9
    Rédacteur/Modérateur

    Avatar de Songbird_
    Homme Profil pro
    Bidouilleur
    Inscrit en
    juin 2015
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 19
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2015
    Messages : 353
    Points : 2 622
    Points
    2 622
    Billets dans le blog
    3

    Par défaut

    Salut,

    C'est drôle cette réaction de certain sur le mot "ramasse-miette" au lieu de garbage collector alors que la vrai question, elle, devrait-être: ça existe encore Dart et il y a vraiment des gens entreprise qui l'utilisent?!?
    Pourquoi pas ? Selon toi, Dart est moins recommandable que JS ?
    Le peu de fois où j'ai travaillé avec Dart (dans mon coin), j'ai tout de suite accroché. Le langage est robuste, la syntaxe n'est pas aussi verbeuse que celle de Java et interagit plutôt bien avec des modules JS existants.
    C'est pas une aubaine, c'est sûr, mais pour ma part j'apprécie énormément de faire du front avec Dart.

    En dehors de cela, pourquoi faudrait-il que des "gens d'entreprise" utilisent un langage pour le soutenir ou s'y intéresser ? Le monde de l'informatique n'est pas qu'une question d'argent ou de carrière, selon moi. Sinon autant s'arrêter à Java/Python/C++, même pas la peine de faire des news ou d'étudier les technologies émergentes. Il ne faudrait pas oublier que tous les outils que nous utilisons aujourd'hui étaient des outils de niche lorsqu'ils sont sortis. D'autres ont percés et ont été acceptés comme des "standards" dans le paysage, d'autres moins. Je ne pense pas que cela fasse d'eux des outils moins intéressants.
    Avant de poster: FAQ Rust(WIP); FAQ Dart; FAQ Java; FAQ JavaFX.
    Vous souhaiteriez vous introduire au langage Rust ? C'est par ici ou ici !
    Une question à propos du langage ? N'hésitez pas à vous rendre sur le forum !

    N'hésitez pas à contribuer ou nous faire part de vos retours !
    Release Rust FAQ #7


    Ninja Gaiden meets Metal.

Discussions similaires

  1. quelques conseils pour debuter avec l'Intelligence Artificielle
    Par KINENVEU dans le forum Intelligence artificielle
    Réponses: 3
    Dernier message: 13/02/2009, 08h53
  2. Quelques mises aux points avec wxNotebook
    Par TheDrev dans le forum wxWidgets
    Réponses: 2
    Dernier message: 05/02/2008, 18h12
  3. Quelques questions pour débuter avec FOP
    Par lr dans le forum APIs
    Réponses: 2
    Dernier message: 08/04/2006, 14h09
  4. quelques problemes de debutant avec count
    Par shirya dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/09/2005, 23h14

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