Comparaisons de vitesse - procédure contre OO dans les langues interprétées

voix
17

Dans les langages de programmation interprété, telles que PHP et JavaScript, quelles sont les répercussions d'aller avec une approche orientée objet sur une approche procédurale?

Plus précisément ce que je cherche est une liste de choses à considérer lors de la création d'une application web et le choix entre les approches de procédure et orienté objet, afin d'optimiser non seulement pour la vitesse, mais maintenabilité aussi bien. recherche et Citée cas de test seraient utiles aussi bien si vous connaissez des articles explorant davantage.

Bottom line: la taille (le cas échéant) est la performance vraiment frappé, en allant avec OO vs procédure dans un langage interprété?

Créé 06/08/2008 à 04:34
source utilisateur
Dans d'autres langues...                            


7 réponses

voix
17

Peut-être que je suis fou, mais se soucier de la vitesse dans les cas comme celui-ci en utilisant une langue d'interprétation est comme essayer de comprendre de quelle couleur peindre le hangar. Nous allons même pas entrer dans l'idée que ce type d'optimisation est entièrement pré-mature.

Vous frappez le clou sur la tête quand vous avez dit « maintenabilité ». Je choisirais l'approche qui est la plus productive et la plus maintenable. Si vous avez besoin de vitesse plus tard, il ne va pas venir de basculer entre la procédure par rapport à l'objet paradigmes de codage orientées dans un langage interprété.

Créé 06/08/2008 à 04:36
source utilisateur

voix
10

Malheureusement, je l'ai fait trop mes tests. Je l'ai vitesse d'essai, et il est à peu près la même chose, mais lors du test pour l'utilisation de la mémoire se memory_get_usage () en PHP, j'ai vu un nombre extrêmement grand du côté de la POO.

116,576 octets pour POO à 18,856 octets pour la procédure. Je sais que « matériel ne coûte pas cher », mais allez! augmentation de 1000% dans l'usage? Désolé, ce n'est pas optimale. Et ayant tant d'utilisateurs sollicitent votre site Web à la fois, je suis sûr que votre RAM serait juste brûler, ou court. Ai-je tort?

Créé 22/07/2011 à 22:28
source utilisateur

voix
5

Bottom line: non, parce que les frais généraux d'interprétation accable les frais généraux de dispatching de la méthode.

Créé 06/08/2008 à 04:35
source utilisateur

voix
2

Si vous utilisez un langage interprété, la différence est hors de propos. Vous ne devriez pas utiliser un langage interprété si la performance est un problème. Les deux se produiront peu près le même.

Créé 06/08/2008 à 04:49
source utilisateur

voix
1

Dans mon expérience, un site sous une charge lourde sera enlisé et beaucoup plus ne répond plus facilement avec le code POO que la procédure. La raison est facile à comprendre.

POO exige beaucoup plus des allocations de mémoire (malloc) et beaucoup plus d'opérations à exécuter en mémoire que le code de procédure. Il faut beaucoup plus de temps CPU pour exécuter ses tâches. Il est essentiellement « frais généraux », enroulé autour du code de procédure, en ajoutant à la charge CPU pour exécuter, en particulier lors de l'exécution des opérations de base de données.

De nombreux programmeurs comme la commodité de la POO, créant de petites boîtes noires cachées derrière des interfaces simples. Cependant, je suis bien payé pour faire revivre des sites qui prenaient toujours pour répondre en charge de l'utilisateur lourd. Décapage la POO et le remplacer par des fonctions simples de procédure a fait une énorme différence.

Si vous ne vous attendez pas que votre site soit très occupé, par tous les moyens utiliser POO. Si vous construisez un système à fort trafic, vous aurez envie de dépouiller chaque cycle CPU du traitement et chaque octet de la sortie que vous pouvez.

Créé 22/03/2015 à 19:31
source utilisateur

voix
1

Votre performance sera caractérisée par la mise en œuvre, et non pas la langue. Vous pouvez utiliser la plus lente langue et il pourrait être l'échelle le plus grand site dans le monde aussi longtemps que vous le design à l'échelle.

Rappelez-vous la première règle de optimiztion.

Ne pas.

:)

Créé 22/09/2008 à 19:18
source utilisateur

voix
0

Je l'ai vraiment fait un petit test comme celui-ci en python sur un site Web, je maintiens et a constaté qu'ils sont à peu près équivalent à la vitesse, à l'approche procédurale gagnante par quelque chose comme dix-millièmes de seconde, mais que le code OO était si importante propre Je ne poursuis l'exercice plus longtemps d'une itération.

Alors, vraiment, il n'a pas d'importance (dans mon expérience de toute façon).

Créé 26/08/2008 à 21:01
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more