PHP vs. C

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP vs. C

Re: PHP vs. C

par Nagol » 27 oct. 2011, 14:31

compilez en montant les options de debug (-Wall) vous verrez si y'a que segfault comme message d'erreur :)

Re: PHP vs. C

par AoSiX » 27 oct. 2011, 09:56

Et qu'un seul message d'erreur : "Segmentation Fault" ;)
Merci d'être passé, ta remarque va me faire la journée XD j'adore :)

Re: PHP vs. C

par @rthur » 26 oct. 2011, 20:24

Et qu'un seul message d'erreur : "Segmentation Fault" ;)

Re: PHP vs. C

par albat » 26 oct. 2011, 20:18

Le C, c'est le langage le plus facile à apprendre.
Il n'y a qu'une seule instruction : malloc() :langue:

Re: PHP vs. C

par stealth35 » 26 oct. 2011, 17:45

tu peux monter les codes :?:

Re: PHP vs. C

par Berzemus » 26 oct. 2011, 17:17

En C beaucoup plus qu'en php la qualité du codeur compte, php étant fait en C ce n'est que logique d'attendre un résultat meilleur en C (parce que pas de bytecode pas de lancement de vm et un accès privilégié à la mémoire qui permet de limiter les allocations et donc d'augmenter les performances.
En d'autres termes: en C le dégré d'optimisation du code compte bien plus qu'en PHP. :twisted:

Certes. A noter encore qu'il s'agit ici d'un module externe, la manière la plus lente. Il pourrait être intégré à Php, voir même compilé directement dans le moteur Zend lui-même (la solution la plus efficace, mais la plus contraignante).

Les fonctions utilisés dans la fonction PHP de l'expérience ci-dessus proviennent quasi toutes du moteur Zend, et sont donc très rapides. Je crois me souvenir d'avoir lu que lors du portage de la fonction strlen() vers le moteur zend, ce dernier en est devenu 25% plus rapide.

Re: PHP vs. C

par Nagol » 26 oct. 2011, 16:33

En C beaucoup plus qu'en php la qualité du codeur compte, php étant fait en C ce n'est que logique d'attendre un résultat meilleur en C (parce que pas de bytecode pas de lancement de vm et un accès privilégié à la mémoire qui permet de limiter les allocations et donc d'augmenter les performances.

Re: PHP vs. C

par Berzemus » 26 oct. 2011, 16:07

A noter aussi qu'il ma fallu une bonne journée pour réaliser la partie C, alors que le code PHP n'a pris que 5 minutes :twisted:

PHP vs. C

par Berzemus » 26 oct. 2011, 16:06

Hop, un petit compte rendu suite à une expérience (tout à fait non scientifique) que j'ai eu l'occasion de faire, c-à-d porter une fonction PHP vers un module C.

On se dit: ouatcha, ça va dépoter grave !! Alors tout de suite la conclusion: Un peu ouais, mais pas tellement que ça.

Tout d'abord, la fonction concernée: elle extrait les mots d'un texte, en compte les occurrences, et les compare à un autre texte (les "mots vides", ou stopwords, ç-à-d des mots trop communs pour avoir une réelle signification).

Voici les résultats avec une fonction entièrement en Php (il s'agit a chaque fois des mêmes données de départ):

Code : Tout sélectionner

Took 0.013445138931274, found 568 unique words.
Avant de le transférer vers une extension Php, j'ai testé le code à travers un exécutable externe (donc en C compilé), appelé via exec():

Code : Tout sélectionner

Took 0.018234014511108, found 568 unique words.
Ensuite, la même chose sous forme d'une extension Php:

Code : Tout sélectionner

Took 0.0087411403656006, found 568 unique words.
Voilà pour ce qui est d'un gain de performance exceptionnel.. :mrgreen:


Ce qu'il faut savoir: le code C n'est pas optimal, il y a encore certaines lourdeurs, mais d'un autre côté, en Php aussi. Et chaque option arrive exactement au même résultat (ce qui implique pas mal de post-traitement dans le deuxième cas).

Et le texte était encore assez réduit, je devrais réessayer avec un texte plus vaste, pour pousser un peu les limites du système.