J'aimerais donner des sources pour ce que je dis, mais je ne les ai tout simplement pas, c'est quelque chose que j'ai entendu. p>
Une fois qu'un professeur de programmation m'a dit que certains analyses d'analyse logicielle sont effectuées à .NET VS Python dans certains articles particuliers, il a donné une relation de 5: 8 en faveur de .NET. C'était son argument en faveur du python n'étant pas tellement plus lent que .net p>
Voici la chose, j'aimerais essayer IronPython depuis que je pouvais combiner le cadre Web, je connais le plus (ASP.NET) avec la langue que j'aime le plus (Python) et je me demandais de la vitesse des programmes dans ASP.NET en Python vs la vitesse des programmes dans ASP.NET avec vb.net ou C #. Y a-t-il une analyse comparative logicielle à ce sujet? p>
En outre, ne devrait pas que les vitesses de ironpython comparées à d'autres langues .NET soient similaires, car Ironpython contrairement à Python doit compiler au code intermédiaire .NET? Quelqu'un peut-il enflammer ces problèmes? P>
salutations p>
3 Réponses :
Voici deux liens intéressants avec des comparaisons entre IronPython, CPython et C # (entre autres): p>
Donc, apparemment, il fait le long des lignes de ce que votre professeur vous a dit. Mais comme vous le savez, cela dépend beaucoup de ce que vous utilisez. P>
La différence est principalement due à la nature dynamique des objets utilisés en Python, alors que C # est fortement typée. Donc, IronPython utilise un niveau plus (DLR - Dynamic Language Runtime) au-dessus de ce que C # est exécuté à partir (CLR - Common Language Runtime)., Pour résoudre cette différence p>
Je déteste habituellement citer les articles de Wikipedia, mais cela est un bon point de départ: http: // fr. wikipedia.org/wiki/Dynamic_Language_Runtime p>
Maintenant, pour revenir à votre projet, les performances seront probablement plus dépendants de vos algorithmes / heuristiques - comment vous interroger une base de données par exemple - que sur la langue. Si vous connaissez un framework web et sont heureux avec elle, c'est une bonne idée de coller avec le même environnement plutôt que de gagner un possible quelques pourcents sur quelque chose que vous aurez à apprivoiser. Il ne serait pas le même si l'application était CPU intensive bien sûr. P>
"C # est fortement typé". Voulez-vous dire "statiquement typé"? Ou "déclarations variables fortement typées"? La liaison de type de Python est assez forte, mais les variables sont dynamiques.
Je veux dire des déclarations fortement dactylographiées, ce qui permet au compilateur de se rapprocher beaucoup du résultat final dans les assemblées que ce que Python peut réaliser en raison de sa typage de canard.
Malheureusement, les repères CPPHON et IRINPYTHON ont été exécutés, soit en signalant un tour, soit dans certains cas seulement courir i> un tour, ce qui les rend très discutables.
Cela donne une idée générale, je ne pense pas qu'il serait judicieux d'extraire une figure de performance globale pour de telles applications différentes (qui se reflète dans la divergence de leurs résultats). En comparant quelques points de repère liés à ce que le PO a vraiment besoin serait plus approprié, c'est ce que S.Lott a déclaré dans son poste. Mais c'est plus de travail :-)
@ S.Lott - Dans le monde .net, les gens semblent être intention de se référer à la typographie statique comme "Strong Typage". Je ne sais pas pourquoi ils font ça.
@Redglyph Techniquement, vous voulez dire "statiquement typé", comme l'a souligné S.Lott. Voir wiki .pytHon.org / MOIN / ...
Vous pouvez activer le traçage .NET, qui produit des informations de synchronisation au bas de la page. Faites une application en C # /. NET et une application utilisant Python et examinez les différences de synchronisation. Cela vous donnera une réponse définitive. P>
En toute honnêteté, je pense que vous feriez mieux d'utiliser C #, c'est "plus rapide" de développer depuis que l'environnement vs est là pour vous et il va courir plus vite car il n'est pas nécessaire d'utiliser la langue dynamique. p>
Je sais, mais ce qui m'appelle de Python, il vous permet d'écrire moins de code, en plus de je pense que vous ne pouvez pas le faire en C # sans réécriture (bien que pas complètement sûr) IRALTHONRESOURCE.COM/POST/2008/08/ 23 / ...
Peut-être en C # 4.0 avec les nouvelles fonctionnalités?
En tant que langue dactylographiée de manière dynamique, Python est généralement plus rapide de se développer avec que C #. Si vous utilisez un IDE comme une aile, avec Intellisse etc. pour Python, vous obtenez beaucoup de ce que Visual Studio a à offrir pour C #.
Oui, dans le développement Web est difficile de revenir à une langue statistique dactylographiée lorsque vous avez essayé une typité de manière dynamique une. Mais je pense que j'ai lu c # 4.0 aura des capacités de type dynamique
Oh, je viens de réaliser que je lisais votre livre Ironpython. Toute planification d'une libération espagnole parce que s'il y en a un, je ne le trouve pas :)
Ironpython sera considérablement plus lent que c #. Vous pouvez penser à la comparaison comme très approximativement entre CPPHON et C, mais avec l'écart un peu plus petit. P>
Lorsque vous avez écrit un programme de référence et que vous l'avez dirigé, qu'avez-vous remarqué? Quelles fonctionnalités de .NET voulez-vous utiliser?
Je n'ai pas écrit un programme de référence pour cela. Je me demande s'il y a une différence notable en général, mais si cela dépend trop dans lequel vous utilisez, je suppose qu'il n'y a pas. Nous écrivons des logiciels administratifs généraux pour les entreprises régionales sans grandes demandes de trafic et je ne pensais pas à un projet particulier lorsque j'ai demandé. C'est (très) probablement je ne suis probablement pas au niveau technique que vous avez, mais j'ai vu des points de repère sur Internet lorsqu'il est dans la plupart des articles, Python est répertorié comme plus lent que d'autres langues, et je me demande s'il est pareil pour Python que pour Ironpython en relation avec .NET THXS pour la réponse
"Cela dépend trop dans lesquels vous utilisez" est toujours vrai. Les repères généraux sont inutiles. Quelles caractéristiques particulières vous intéressez-vous? Qu'est-ce qui vous empêche d'écrire une référence entre Ipython et C # pour ces fonctionnalités?
Je suppose que ce qui m'arrête d'écrire un tel repère est le moment où il me faudrait pour déterminer tout ce que je veux utiliser et les utiliser, car j'ai d'autres problèmes de programmation quotidienne pour voir et l'idée de changer la langue .NET n'a pas devenue la langue .NET une priorité pour moi encore
@ S.Lott: Re "Les repères généraux sont inutiles". - Je ne suis pas d'accord. Un ensemble de repères bien écrit peut mettre en évidence les forces / faiblesses relatives pour diverses caractéristiques ou tâches. Pourquoi ne démarrerait-il pas la tâche de benchmarking (comme une autre tâche) en apprenant des expériences antérieures des autres?
Malheureusement, je ne vois pas un ensemble bien écrit de points de repère C # / Ironpython n'importe où. Juste les liens limités d'autres ont affiché dans les réponses ci-dessous. Voici un autre lien pas-notamment informatif: ironpython-urls.blogspot.com/2009/06/...
En CPPHON, vous pouvez utiliser Cython, C Extensions C, F2PY, NUMPLY, NUMBA, etc. ou remplacer tous ensemble avec Pypy. Pas dans Irynthon!