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

Python Discussion :

compiler un programme Python pour accélérer son exécution


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 406
    Points : 92
    Points
    92
    Par défaut compiler un programme Python pour accélérer son exécution
    salut à tous
    j'apprend Python
    je viens de programmer à titre d'exo l'ensemble fractal de Mandelbrot
    si j'augmente le nombre de pixels à calculer ça devient vite très lent
    comment compiler un programme ?
    sur wikipedia je lis ceci :
    Des outils comme PyInstaller24 ou d'autres plus spécifiques comme cx_Freeze sous Unix, Windows et Mac OS X, py2app25 sous Mac OS X et py2exe sous Windows permettent de « compiler » un programme Python sous forme d'un exécutable comprenant le programme et un interpréteur Python.
    Le programme ne tourne pas plus rapidement (il n'est pas compilé sous forme de code machine) mais cela simplifie largement sa distribution, notamment sur des machines où l'interpréteur Python n'est pas installé.
    alors, un programme Python est-il vraiment compilable, avec gain de temps d'exécution, ou pas ?

    je suis sous mac os X, je travaille sous python3, j'édite mes programmes dans Xcode et je les exécute en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python3 [pathduprogramme]
    dans le terminal

    Vinz

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par elodouwen Voir le message
    salut à tous

    alors, un programme Python est-il vraiment compilable, avec gain de temps d'exécution, ou pas ?

    Vinz
    Bonjour,

    Le langage Python est un langage interprété / semi-compilé en bytecode (les fichiers *.pyc) mais pas compilable simplement.

    Il existe des moyens détournés tels que Cython ( http://cython.org/ ) mais si vous débutez avec Python, cela risque de virer assez vite au bourbier (!)

    Si vous cherchez la performance, mieux vaut vous orienter d'emblée vers les langages C/C++ avec qqs libs graphiques en renfort e.g. GTK+, Qt5 : la mise en oeuvre est plus longue qu'avec Python mais vous programmerez à un plus bas niveau (plus proche du code machine, donc plus rapide).

    Python est un langage scientifique, mais personne n'a dit que langage scientifique rimait avec course à pied.

    @+.

  3. #3
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 406
    Points : 92
    Points
    92
    Par défaut
    ok merci
    je vais bientôt passer au C alors
    Vinz

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Citation Envoyé par elodouwen Voir le message
    alors, un programme Python est-il vraiment compilable, avec gain de temps d'exécution, ou pas ?
    Les outils mentionnés par Wikipédia ne permettent pas de "compiler" mais de "packager" une application Python sous la forme d'un exécutable. In fine, l'utilisateur pourra lancer un fichier exécutable comme s'il avait été construit avec un langage compilé comme C/C++.
    Dans la pratique, çà n'a d'intérêt que pour distribuer une application sans demander à l'utilisateur d'installer la bonne version de Python, et les autres bibliothèques dont elle dépend.

    Dans la plupart des cas, vous allez utiliser Python pour mettre en œuvre rapidement et facilement des bibliothèques systèmes comme Numpy (calcul) ou Qt (graphique). Ces bibliothèques là sont déjà compilées, et la partie Python n'est la que pour "organiser" le boulot qu'on leur demande de faire.

    Dans certains cas, vous allez écrire une application qui pourrait être optimisée en ré-écrivant certaines parties en C.
    Il faut déjà que l'application "tourne" et que son code soit assez "stable" pour regarder là ou vous perdez le plus de temps et définir ce qui pourrait être amélioré. Ce sont ces parties là qu'il faudra "optimiser".

    je viens de programmer à titre d'exo l'ensemble fractal de Mandelbrot
    si j'augmente le nombre de pixels à calculer ça devient vite très lent
    comment compiler un programme ?
    La complexité d'une fractale de Mandelbrot est en O(n²).
    En compilant vous risquez de bosser beaucoup pour un léger mieux.

    Ceci dit, apprendre le C est un bon investissement.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 406
    Points : 92
    Points
    92
    Par défaut
    ok
    oui, bien sûr, se mettre au C est incontournable
    pour revenir à ce que vous dites
    je n'ai pas mentionné, que dans l'élan de ma toute fraîche découverte de Python, le mieux que j'ai trouvé à faire c'est de bosser avec tkinter
    c'est sasn doute pas la bibliothèque graphique la plus efficace
    sans doute qu'avec Numpy je serai plus rapide ?
    sans doute suis je pour le moment freiné surtout non pas par python mais par tkinter ?
    question :
    vous parlez de qt
    la bibliothèque graphique "qt" est-elle donc manipulable à la fois par Python et par C ?
    est-ce facile à installer ?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par elodouwen Voir le message
    ok
    oui, bien sûr, se mettre au C est incontournable
    pour revenir à ce que vous dites
    je n'ai pas mentionné, que dans l'élan de ma toute fraîche découverte de Python, le mieux que j'ai trouvé à faire c'est de bosser avec tkinter
    c'est sasn doute pas la bibliothèque graphique la plus efficace
    sans doute qu'avec Numpy je serai plus rapide ?
    sans doute suis je pour le moment freiné surtout non pas par python mais par tkinter ?
    question :
    vous parlez de qt
    la bibliothèque graphique "qt" est-elle donc manipulable à la fois par Python et par C ?
    est-ce facile à installer ?
    Qt5 est conçue pour C++ : http://qt-project.org/doc/

    La version pour Python : PyQt / PySide http://qt-project.org/wiki/PySideDocumentation

    @+.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Citation Envoyé par elodouwen Voir le message
    oui, bien sûr, se mettre au C est incontournable
    Je dirais "était". Un langage comme Python vous permet quand même de faire des trucs sympas sans trop vous prendre le chou.
    Faut-il apprendre C? Ça reste un langage majeur pour les programmeurs systèmes.

    Quel type d'applications allez vous coder?
    Quels sont les frameworks, bibliothèques, langages à maîtriser pour faire transformer rapidement des idées en une application qui tourne?
    Avec un langage comme le C, on économise la ressource CPU/mémoire/électricité et çà va plus vite. Pour sortir l'appli. qui marche, ce sera plus tard.
    (Un langage comme) Python vous permet de sortir le truc plus vite. Et des tas de bibliothèques existent pour ne pas trop consommer la ressource CPU/mémoire/électricité.
    Les grosses applications sont écrites en plusieurs langages. Il faut choisir le plus adapté pour écrire des ensembles de fonctionnalités. La monoculture n'est pas bonne ici non plus.
    Mais si vous tenez à faire de la programmation système, C, Java, C# sont des passages obligés.

    pour revenir à ce que vous dites je n'ai pas mentionné, que dans l'élan de ma toute fraîche découverte de Python, le mieux que j'ai trouvé à faire c'est de bosser avec tkinter
    c'est sasn doute pas la bibliothèque graphique la plus efficace
    sans doute qu'avec Numpy je serai plus rapide ?
    sans doute suis je pour le moment freiné surtout non pas par python mais par tkinter ?
    tkinter est aujourd'hui la seule librairie graphique livrée en standard. Son premier avantage est d'être utilisable après avoir installé Python (à partir du package livré en standard pour votre OS. Compilé Python à partir du tarball ne suffit pas pour faire fonctionner tkinter).

    tkinter s'appuie sur TCL/Tk. TCL est un langage de scripting comme Perl,...
    Widgets et méthodes de TCL/Tk sont adaptés aux attentes d'un programmeur en langage "script" - les développeurs RAD -.
    Par héritage, tkinter n'est pas si mal adapté aux développeurs d'application RAD en Python.
    Mieux, sans trop connaître la POO vous pourrez faire de petites applications sympa: pas mal aussi pour "débuter".

    De plus, une librairie graphique est écrite avec un langage système: la plupart du code exécuté "sous" tkinter est écrit en C.
    Le seul boulot de "tkinter" est de vous permettre d'utiliser le GUI depuis Python.
    C'est pareil côté Qt.

    Le soucis n'est pas côté performances mais côté fonctionnalités.
    Une des hantises du programmeur est "apprendre, c'est du temps et de l'argent". Est-ce que j'aurais plus de clients en écrivant Qt sur mon CV plutôt que tkinter? Est-ce que j'ai plus de chance de trouver la fonctionnalité dont j'aurais peut être besoin demain dans Qt ou dans tkinter?
    Ce sont des sujets importants.
    Mais nous ne parlons plus de facilité d'utilisation, ni de performance... mais de coût d'opportunité et de rentabilité d'un investissement.

    question :
    vous parlez de qt
    la bibliothèque graphique "qt" est-elle donc manipulable à la fois par Python et par C ?
    est-ce facile à installer ?
    Qt est utilisable à partir de Python, Ruby, Perl, Java,... et C++
    Si vous utilisez les packages installables sur votre OS, çà se fait en suivant le manuel d'installation adapté à votre cas.
    En cas de problèmes, racontez ce qu'il vous arrive dans le forum. On essaiera de vous donner 2/3 idées.

    Avec des tas de trucs à apprendre, le plus difficile est d'éviter de se disperser. D'avancer par étapes et d'essayer de réutiliser ce qu'on a appris pour avancer: "consolider", "capitaliser",...
    Si vous débutez vous ne savez pas encore trop ce que peut être une interface graphique.
    Les bases acquises avec Tk sont fondamentales.
    Un widget Text, un Label, un Button,... event-loop, callbacks, ... Les trucs importants sont les mêmes partout.
    Démarrer Qt avec un minimum de savoir acquis sur les GUI avec tkinter permet de mettre des marches.
    Si vous partez sur Qt tout de suite, il faudra avoir des notions de POO et de C++ en plus de savoir ce que vous attendez d'un GUI...
    A vous de voir, c'est vous qui allez devoir vous jeter à l'eau et nager.

    Reposez-vous la question (jouer avec Qt) dans quelques semaines?

    Bon courage,
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2010
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2010
    Messages : 406
    Points : 92
    Points
    92
    Par défaut
    merci de vos réponses
    mes buts sont de programmer des maths, des maths, des maths, des fractales, des animations 2d reposant sur des équations dans tous les sens (je suis matheux)… je m'initie aussi dans le même temps à Blender pour faire de la 3d et j'ai vu que python peut travailler avec blender, d'où une autre motivation pour apprendre python
    je vois un peu comment fonctionne tkinter, j'ai compris le principe pour créer des boutons, des textes, des trucs divers, reste à pratiquer
    une autre motivation pour me lancer dans Qt est que cela est utilisé dans le logiciel TeXmacs (www.texmacs.org) dans lequel je suis impliqué, pour le moment à titre d'enseignant - si un jour je peux rentrer dans le code j'en serai ravi
    enfin, un de mes buts est de faire des animations graphiques mathématiques avec Lisp ou autre langage fonctionnel
    mais histoire de commencer par le commencement, je me suis penché d'abord sur Python
    donc, dans l'ordre, python, C, lisp
    je mesure bien qu'il faudra minimum un an ou deux pour commencer à cerner un peu les trucs, et je me donne ce temps là

    pour revenir à nos moutons, sur la page http://qt-project.org/wiki/PySideDocumentation, on me dit que cela (pyside ou pyqt, lequel choisir ?) ne fonctionne qu'avec python2
    histoire d'éclaircir les choses, tout ce que j'ai fait à présent, je l'ai fait sous python3
    dois je revenir à python2 ? c'est pas non plus la fin du monde

    y a til dans qt un système de gestion des couleurs hsv ? car sous tkinter j'ai dû le programmer moi même, c'est toujours intéressant mais plus il y a d'outils mieux c'est

    où trouver une liste expliquée aevc les mains, des modules existants et pouvant fonctionner avec python ? je cerne tkinter, turtle, je vais me pencher sur pyside/pyqt, j'ai installé sans encore m'en servir numpy, si qqn a fait un site qui parle de tout cet univers de modules pour matheux, je suis preneur

    Vincent

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Citation Envoyé par elodouwen Voir le message
    pour revenir à nos moutons, sur la page http://qt-project.org/wiki/PySideDocumentation, on me dit que cela (pyside ou pyqt, lequel choisir ?) ne fonctionne qu'avec python2
    histoire d'éclaircir les choses, tout ce que j'ai fait à présent, je l'ai fait sous python3
    dois je revenir à python2 ? c'est pas non plus la fin du monde
    PyQt et PySide fonctionnent sous Python3.
    Après installer sous OSX est plus galère que sur Linux ou Windows.
    Aller chercher des infos dans ce forum, vous y trouverez des réponses aux autres questions.

    y a til dans qt un système de gestion des couleurs hsv ? car sous tkinter j'ai dû le programmer moi même, c'est toujours intéressant mais plus il y a d'outils mieux c'est
    Ca n'a pas du être si compliqué d'autant que qu'il suffit de récupérer les codes en tappant quelques mots clés sous Google.
    Bien sûr Qt4 sait le faire tout seul, mais il faut lire la documentation

    où trouver une liste expliquée aevc les mains, des modules existants et pouvant fonctionner avec python ? je cerne tkinter, turtle, je vais me pencher sur pyside/pyqt, j'ai installé sans encore m'en servir numpy, si qqn a fait un site qui parle de tout cet univers de modules pour matheux, je suis preneu
    Les matheux utilisent plutôt des distributions genre EPD ou Python(x,y).
    C'est Python + de nombreux packages intéressants que vous installez d'un coup.
    Après il y a pleins de bibliothèques intéressantes mais personne ne pourra choisir a votre place

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Python marche très bien pour faire des maths.

    Les modules fournis avec l'interpréteur Python peuvent déjà faire pas mal de choses: math (fonctions transcendantes), cmath (nombres complexes), digital (nombres de taille arbitraire), etc...

    Les modules qu'on peut ajouter sont très puissants: numpy, scipy, matplotlib (tracé de courbes), sympy (calcul symbolique), gmpy (multi-précision), etc...

    En graphique, il y a quelques fondamentaux à connaître (gestion des évènements, héritage, etc...) pour toutes les bibliothèques graphiques disponibles. Commencer par tkinter peut être une option d'apprentissage, mais on est tout de même limité assez vite. Des bibliothèques graphiques comme PyGtk ou PyQt/PySide sont déjà plus complètes (et plus complexes!). Comme elles sont écrites en C ou C++, elles s'exécutent vite, ce qui fait qu'on peut avoir un programme graphique Python sans savoir que c'est du Python. En ce qui me concerne j'utilise PyQt, et j'en suis très satisfait.

    PyQt et PySide, tous les 2 basés sur Qt, sont très proches. Entre eux, c'est avant tout un problème de licence. Si j'ai bien compris, en gros, PySide permet de distribuer un programme comportant des parties PySide/open-source et des parties privées. Avec PyQt, soit on est à 100% opensource, soit on paye une licence commerciale.

    On peut utiliser Python 2.7 et Python 3.x avec la plupart des modules, mais certains modules anciens écrits en Python 2 n'ont pas encore été traduits en Python 3. A ma connaissance, tous les modules courants ont été d'abord écrits en Python 2, à part PyQt5 qui ne fonctionne qu'avec Python 3.

    Aussi, sauf pour un besoin particulier nécessitant un module qui n'existe pas encore en Python 3, il faut commencer avec Python 3 qui est l'avenir (Python 2.7 est le dernier des Python 2).

    Pour accélérer un programme Python, j'entrevois 3 solutions, dans l'ordre de complexité croissante:
    - rester sous Python, mais utiliser des algorithmes plus efficaces
    - utiliser Cython pour compiler en code natif tout ou partie du code Python
    - écrire les modules critiques en C ou C++ pour importation sous Python

    Avec ces solutions, on arrive à accélérer, tout en restant proche de la simplicité du développement en Python. Au delà, on peut passer à 100% en C ou C++, mais ce n'est plus le même monde...

    Cependant, un apprentissage du langage C et C++ est toujours une bonne chose.

    Concernant ce qu'on peut faire en math avec Python, je peux donner quelques exemples. Bien que n'étant pas mathématicien, je me suis un peu amusé avec, et j'en ai mis quelques cas sur mon site:

    - Générateur de code de Gray (utilisé en automatisme)
    - Calcul du PGCD de 2 valeurs et plus, du PGCD étendu avec coef. de Bézout et du PPCM de 2 valeurs et plus
    - Calcul des restes chinois (arithmétique modulaire)
    - Factorisation par l'algorithme de Pollard rho
    - Test de primalité probabiliste de Miller-Rabin
    - Calcul de la racine entière d'un nombre entier de longueur quelconque
    - Générateur de nombres pseudo-aléatoires "Blum Blum Shub"
    - Lois de probabilité (binomiale, hypergéométrique, Poisson, Normale)
    - Calculs de crédits bancaires
    - Fonctions transcendantes (exp, log, racine, pi, e, trigonométrie, ...)
    - calcul des nombres de Bernoulli
    - Calcul de la date de Pâques
    - Calcul des phases de la lune
    - etc...

    J'ai même une calculatrice scientifique en ligne écrite en Python et s'exécutant en CGI: http://calculext.jpvweb.com/.

    Bon amusement pour la suite!
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  11. #11
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Bonjour,

    Pour ma part je code en python essentiellement pour faire des maths. Python est à la hauteur de MatLab ou de Scilab pour une grande majorité des tâches. Les modules Numpy, scipy, pandas, matplotlib fournissent pléthore de fonctions optimisées (souvent écrites en C ou en Fortran), variés et très documentées (ça c'est vraiment apréciable).

    Honnêtement, je pense que Python est un excellent choix pour ce que vous semblez vouloir faire. Cependant:
    Citation Envoyé par tyrtamos Voir le message
    Aussi, sauf pour un besoin particulier nécessitant un module qui n'existe pas encore en Python 3, il faut commencer avec Python 3 qui est l'avenir (Python 2.7 est le dernier des Python 2)
    Malheureusement tous les modules scientifiques ne sont pas encore passés sous Python3. Je vais peut-être dire une connerie mais il me semble que c'est une histoire de compilateur 64bits Fortran open-source non optimisé.. Bref, pour donner un exemple, l'excellentissime bundle python(x,y) déjà mentionné n'est pour le moment disponible qu'en python 2.7. Ce bundle vaut vraiment le coup d'oeil.

    Je ne suis pas assez calé pour cela, mais il me semble que python3 est suffisament mûr aujourd'hui pour conseiller de débuter directement avec, MAIS attention à ne pas se limiter dans l'utilisation de modules.

    Ju

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 273
    Points : 36 757
    Points
    36 757
    Par défaut
    Citation Envoyé par Julien N Voir le message
    Je ne suis pas assez calé pour cela, mais il me semble que python3 est suffisament mûr aujourd'hui pour conseiller de débuter directement avec, MAIS attention à ne pas se limiter dans l'utilisation de modules
    Le scientifique a besoin d'outils pour faire son boulot.
    Les distributions comme Python(x,y) lui permettent de les utiliser sans avoir a se prendre le chou à les installer et en gérer les dépendances.

    Un développeur d'application en Python a d'autres besoins. Si on mélange les deux on arrivera toujours à des compromis bancales.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Membre du Club
    Homme Profil pro
    infographiste et codeur AS3
    Inscrit en
    Avril 2015
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : infographiste et codeur AS3
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2015
    Messages : 45
    Points : 52
    Points
    52
    Par défaut compilateurs..
    De nos jours, je ne comprends pas comment on a pas encore inventé un compilateur cross plateforme au lieu des compilos pour VM propre à chaque langage.. Depuis qu'Adobe a donné son API AS à la communauté Open Source, Il y a bien le langage OpenFL qui découle du projet Lime pour les anciens Flasheur comme moi, mais je ne pense pas qu'il soit vraiment abouti.. il faut faire des essais.

  14. #14
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Pour en revenir à la question de départ, on a un problème de temps d'exécution d'un algorithme qui est normalement en O(n^2). Donc déjà faudrait vérifier si on n'atteint bien cette performance ou pas. Car avec les machines qu'on a maintenant meme avec des algos en O(n^2) on peut aller très loin. Faut voir si dans l'algorithme il n'y a pas des petites idioties qui conduisent à stocker des données inutilement. Voire également si c'est le calcul qui prends du temps ou l'affichage graphique.

    Faudrait poster du code, je suis sûr qu'il y a plein d'optimisation à faire avant de voir s'il est nécéssaire de partir sur d'autre langages.

  15. #15
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    @alama : Je viens de percuter, mais pourquoi ce ré-up en fait ?

  16. #16
    Membre du Club
    Homme Profil pro
    infographiste et codeur AS3
    Inscrit en
    Avril 2015
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : infographiste et codeur AS3
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2015
    Messages : 45
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par lg_53 Voir le message
    @alama : Je viens de percuter, mais pourquoi ce ré-up en fait ?
    Je n'ai pas regardé la date, j'ai lu, j'ai donné ma contribution, c'est tout Pour en revenir à la vitesse d'exécution, une VM sera, je pense, toujours plus lente qu'une exécution directe sur la couche OS, même si les défenseurs des VMs argumentent à grand coups de JIT etc.. Mais bon, on va dire que l'évolution matériel pallie de + en + à ce souci. Sinon, reste l'ASM

Discussions similaires

  1. Compiler un programme Gnat pour MSDOS
    Par Invité dans le forum Ada
    Réponses: 2
    Dernier message: 07/05/2014, 21h00
  2. Réponses: 0
    Dernier message: 08/03/2010, 15h27
  3. Compilation de programme C pour armv5tejl sous GCC
    Par joprog dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 22/11/2009, 14h46
  4. Réponses: 1
    Dernier message: 04/06/2008, 20h13
  5. Compiler un programme perl pour palteforme Win32
    Par LE NEINDRE dans le forum Modules
    Réponses: 1
    Dernier message: 11/01/2006, 14h27

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