Création d'un gros site ! - Divers - Programmation
Marsh Posté le 31-12-2005 à 23:39:56
darkkrab a écrit : Je dois choisir une structure pour créer un serveur internet devant effectuer beaucoup de calcul par secondes et beaucoup daccès à une base de données en écriture/lecture. Je voudrais savoir quel est la méthode (un ou plusieurs langages) la plus RAPIDE. Jaurais besoin de conseils des personnes dexpérience. |
Webdev (humour)
ou sinon heu HTML+JS avec pour les données, des fichiers contenant les données séparées par des ;
c'est bientot le nouvel an !!!!
Marsh Posté le 31-12-2005 à 23:44:15
ReplyMarsh Posté le 01-01-2006 à 02:09:40
Jai le goût de faire ceci :
HTML pour le langage structure (coté client)
JAVASCRIPT pour le langage dynamique (côté client)
PHP pour le langage de calculs et dacheminement (coté serveur)
.JS (javascript) pour la base de données (non sécurisé) (lecture seulement)
MySQL pour la base de données (sécurisé) (lecture & écriture)
Qui dit plus rapide ?
Marsh Posté le 01-01-2006 à 11:43:35
et une base de données type "fichier texte" c'est pas plus rapide ?
Marsh Posté le 01-01-2006 à 11:49:13
mais qu'est-ce qu'il faut pas entendre...
jsp + oracle
Marsh Posté le 01-01-2006 à 16:07:52
C'est pour les structures répétitives. Une fois que le client a le .js il a la structure de la page. Moins lourd donc plus rapide.
JSP, est-ce plus rapide que PHP ? pas sûr
Oracle, est-ce plus rapide que MySQL ? pas sûr
(beaucoup de calcul par secondes et beaucoup daccès à une base de données en écriture/lecture)
Marsh Posté le 01-01-2006 à 16:22:00
darkkrab a écrit : C'est pour les structures répétitives. Une fois que le client a le .js il a la structure de la page. Moins lourd donc plus rapide. |
pour jsp/php, je pense que oui, c'est plus rapide (enfin je pense) dernierement, Caucho a implemente un interpreteur PHP en java, et les perfs sont 6 fois meilleurs qu'avec mod_php, donc y a des chances pour que java soit plus rapide, cela dit il faut prendre ce genre de tests avec des pincettes.
Marsh Posté le 01-01-2006 à 16:31:47
le php n'est pas typé et rien que pour ca c'est déjà plus rapide...
Marsh Posté le 01-01-2006 à 16:51:53
KangOl a écrit : le php n'est pas typé et rien que pour ca c'est déjà plus rapide... |
moi tout ce que je dis c'est que php interprete sur la plateforme java est (a en croire les tests que je mentionne ci-dessus) plus rapide que sur mod_php. Comme je pense que du bytecode java est plus rapide que du php interprete en bytecode java, je pense (et ca n'engage que moi) que du bytecode java est plus rapide que du php sur mod_php
Marsh Posté le 02-01-2006 à 02:04:29
Si c'est sérieux, rien ne vaut un vrai benchmark dans les règles (le mieux étant de le faire toi-même car chaque cas est unique).
Marsh Posté le 03-01-2006 à 22:18:03
Et en construisant un benchmark apache, la rapidité daccès à la base de données et la vitesse des calculs vont être meilleurs ?
Marsh Posté le 04-01-2006 à 00:38:05
KangOl a écrit : le php n'est pas typé et rien que pour ca c'est déjà plus rapide... |
C'est une blague
Citation : Si c'est sérieux, rien ne vaut un vrai benchmark dans les règles (le mieux étant de le faire toi-même car chaque cas est unique). |
Citation : there are lies, damn lies, and benchmarks |
À part ça, le JS c'est d'une lenteur monstrueuse (moins on en a mieux on se porte), SQLite fonctionne très bien en "flat-file" type, MySQL est une base très rapide en lecture mais très lente en écriture (mieux vaut prendre PostgreSQL ou MSSQL si tu as beaucoup d'écritures à faire et que c'est le bottleneck de l'application), et j'ai la franche impression que tu ne connais pas les technos dans lesquelles tu te lances et que tu tires tes "besoins" (non chiffrés) de ton chapeau magique
Pour faire simple:
Sur le codage serveur, le plus rapide c'est probablement du CGI/FastCGI C/C++, mais bon...
Le plus rapide (et crade) le PHP, faire quelque chose de propre avec ce truc est une gageure
Pour faire quelque chose de puissant et simple, voir du côté de Ruby/RoR, ça peut t'intéresser, la vitesse du langage en tant que tel est de l'ordre de celle du PHP (donc relativement lent), mais on y gagne beaucoup en vitesse de dev.
Marsh Posté le 04-01-2006 à 11:48:41
Merci pour la réponse complète masklinn.
Citation : j'ai la franche impression que tu ne connais pas les technos dans lesquelles tu te lances |
Je crée des sites (surtout php et mysql), mais là, je dois créer un site très lourd (gros). Alors, je me mets à jour.
En résumé, pour la rapidité c'est Ruby/RoR et SQLite.
Et le JS, c'est lent. Mais pratique pour les structures répétitives (Ils restent en cache).
Marsh Posté le 04-01-2006 à 11:52:08
darkkrab a écrit : |
euh non? Ca va être dur de faire plus lent que ca.
lui te parles vitesse de développement, toi tu cherches la vitesse d'exécution.
Marsh Posté le 05-01-2006 à 03:28:14
masklinn a écrit : C'est une blague
|
Nan mais ya benchmarks PC Expert et vrais benchmarks aussi
Marsh Posté le 05-01-2006 à 08:40:25
ReplyMarsh Posté le 05-01-2006 à 12:31:38
Dion a écrit : Nan mais ya benchmarks PC Expert et vrais benchmarks aussi |
Va voir l'intro du Great Language Shootout.
Les "vrais benchmark" de languages (parce que c'est de ça qu'on parlait) ça n'existe pas
Marsh Posté le 05-01-2006 à 12:48:00
Personellement, vu qu'en java le code n'a pas besoin d'être réinterprété à chaque exécution, ca me semble devoir être plus rapide que le php et l'asp.
Pour mysql, a ce que j'ai compris, ce qui le ralentis, c'est le nombre d'insertion simultanée et le nombre de conections simultanée. Si t'as une vintaine d'insertion à faire à la fois par des conections séparé, alors c'est clair que mysql sera moins rapide que certain de ses concurents. Par contre, si t'as un seul script à la fois qui fera des insertions les une aprés les autres, la différence sera moins visible.
Avec mysql, un insert de donnée en faisant une requette par ligne sera beaucoup plus lent que si t'insére plusieurs centaines de lignes de donnée en une requette. Avec mssql, il y a le même probléme mais j'ai pas trouvé comment insérer plusieurs lignes de données en une seule requette. mysql peut donc se révéler plus rapide dans certains cas.
Il faut aussi penser aux limites de temps d'exécution quand on utilise des langages tel que php. Ca sert à rien d'être plus rapide si c'est pour ne faire que la moitié du boulot.
Pour asp, fait gaffe à la version du langage. Les premiéres versions du langage avaient la facheuse habitude de parser la totalité du fichier à chaque fois qu'on passe d'une partie html à une partie en code asp et inversement. La génération d'une page contenant de trés nombreux changement de ce genre était donc beaucoup plus lente qu'en php. Avec asp.net il n'y a plus ce probléme à ce que j'ai entendus dire.
Comme tu vois, le probléme est vraiment complexe et tu n'auras surement pas une réponse claire et définitive avec aussi peu de détail.
Déjà si t'as un fichier de 10 Mo à traiter pour en retirer des données (calculé pour certaines) à envoyer dans une base de donnée une fois par jours, ca ne sera pas le même langage qui sera le plus adapté que si t'as 100 000 visites en une heure. Dans le premier cas, le C/C++ sera vraiment rapide, dans le second, ca ramera si c'est un programme CGI ne seraisse que par ce que le serveur web lance une nouvelle instance du CGI à chaque exécution ce qui veut dire perte du temps du lancement pour chaque visite.
EDIT : Correction de terme
Marsh Posté le 05-01-2006 à 12:48:29
masklinn a écrit : Va voir l'intro du Great Language Shootout. |
"On" peut-être mais certainement pas l'auteur du topic :
Citation : |
Il a quelque chose de concret et bien précis à faire. Il le programme en PHP et dans le langage X, il effectue le test pour lequel il doit trouver le langage le plus rapide, et il a trouvé le langage le plus rapide pour la tâche qu'il souhaite. Evidemment ça peut demander beaucoup de boulot, mais c'est empirique et ça marche.
Marsh Posté le 05-01-2006 à 12:51:50
darkkrab > on peut avoir plus d'infos sur le site en question ?
tu parles de calculs intensifs et d'accès nombreux à une base...
en, gros ça peut tout aussi bien être un site marchand (calculs des commandes, remises, etc. + consultation des produits, stocks et enregistrement des commandes), tout comme un site de stats (quelques milliers d'insertion dans la base par secondes, et des consultations statistiques portant sur des centaines de millions de lignes).
ces deux types de sites sont très différents, et leurs besoins/solutions apportées au problème sont très différentes.
en gros, on peut aussi bien te proposer d'utiliser de l'ASP qui écrit et lit dans un fichier XML, qu'un executable en C ou en ASM aui écrit et lit dans un datawarehouse, et écrit dans un cluter de 100 serveurs Oracle. c'est trop vague tes infos...
Marsh Posté le 05-01-2006 à 13:06:51
omega2 a écrit : Personellement, vu que le java n'a pas besoin d'être réexécuté à chaque exécution, ca me semble devoir être plus rapide que le php et l'asp. |
php tourne habituellement dans mod_php, ou en fastcgi, pas en CGI classique
Marsh Posté le 05-01-2006 à 13:21:58
masklinn a écrit : php tourne habituellement dans mod_php, ou en fastcgi, pas en CGI classique |
Autant pour moi, je voulais pas dire exécuté mais interprété et je voulais parler du code, pas de l'exécuteur.
J'ai corrigé mon message du coup.
Marsh Posté le 05-01-2006 à 21:39:02
Une sorte de moteur 3D/Javascript. Ça demande beaucoup de requêtes (Apache et Base de données) pour construire la carte et chaque action impose plusieurs calculs. Il faut aussi penser aux interactions, encore des calculs. Et, si on compte des dizaines des milliers de connectés en même temps, ouf ! Les structures des cartes doivent être en base de données, question de confidentialité. Les scripts Javascript (Pas de Flash ou dApplet) sont terminer ainsi que le système des requêtes. Je cherche donc des langages avec une rapidité dexécution (pas de développement, dev) pour consolider et héberger le tout. Non, je ne suis pas fou.
Marsh Posté le 05-01-2006 à 22:30:30
Java ou C# me semble appropriés, car les deux sont très rapides à l'éxécution et montent très bien la charge, même avec des dizaines de milliers d'actions concurrentes (par contre, je sais pas si le serveur et son OS vont supporter, parceque c'est pas un Nux de base ni un Win2K3 Server de basse qui est capable de gérer autant de thread en // d'un coup !)
Pour la base de données, en plus de la rapidité, il semblerait que tu as besoin d'une assez bonne robustesse. Je pense que Oracle, MSSQL ou PostGre SQL feront l'affaire. Tu peux toujours commencer avec MySQL et voir ce que ça donné, car mise à part insérer des données et les recharger (autant le faire en BLOB plutôt qu'avec des tables dans tous les sens) t'as pas besoin d'un moteur SQL de fou.
Marsh Posté le 06-01-2006 à 00:36:14
masklinn a écrit : Va voir l'intro du Great Language Shootout. |
Non mais si les perfs sont vraiment importantes pour lui, il peut maquetter et bencher
Je parle pas de dire "Pouetpouet est meilleur que TrucTruc"
Marsh Posté le 09-01-2006 à 00:16:42
Résumé (excluant les benchmarks) : Java + PostgreSQL. (Mais quel OS et quel serveur?)
Marsh Posté le 09-01-2006 à 23:20:01
souk a écrit : pour jsp/php, je pense que oui, c'est plus rapide (enfin je pense) dernierement, Caucho a implemente un interpreteur PHP en java, et les perfs sont 6 fois meilleurs qu'avec mod_php, donc y a des chances pour que java soit plus rapide, cela dit il faut prendre ce genre de tests avec des pincettes. |
N'importe nawak ! C'est pas comparable ! Caucho traite le PHP sous forme de bytecode, ce qui est évidemment plus rapide que mod_php puisque recompilé en temps réel et à chaque fois (quoique 6 fois me semble plutôt gros). Mais il existe différents compilateurs de bytecode PHP chez Zend studio notamment et libres. Alors pouet, pouet, cacahuet !
JAVA c'est : pourquoi faire simple quand on peut faire compliqué !
Marsh Posté le 09-01-2006 à 23:53:20
bugmenot a écrit : N'importe nawak ! C'est pas comparable ! Caucho traite le PHP sous forme de bytecode |
Il compile le PHP en bytecode Java quoi, la comparaison est parfaitement valable, ce sont simplement deux implémentations différentes de PHP.
Maintenant, la question est de savoir si ce "gain" existe encore sur de vrai scripts (il semblerait que oui puisque ce post indique que Resin est 4 fois plus rapide que le PHP équivalent "brut" sur une installation de Mediawiki en utilisant le programme de bench "ab" d'Apache, donc ce n'est pas un bench pûrement théorique)
(et accessoirement le module est sous GPL donc ton "et libres" sur les bouzin Zend...)
Marsh Posté le 10-01-2006 à 08:49:26
Et tous ces systémes là, ils sont arrivé à une équivalence de quelle version de php? par ce que si c'est pour dire "on est 6 fois plus rapide mais on fait que du php3", ca perd de son intéret.
Marsh Posté le 10-01-2006 à 08:52:58
ReplyMarsh Posté le 10-01-2006 à 12:40:46
omega2 a écrit : Et tous ces systémes là, ils sont arrivé à une équivalence de quelle version de php? par ce que si c'est pour dire "on est 6 fois plus rapide mais on fait que du php3", ca perd de son intéret. |
RTFA, php5
Marsh Posté le 10-01-2006 à 12:43:44
Reply
Marsh Posté le 31-12-2005 à 20:51:11
Je dois choisir une structure pour créer un serveur internet devant effectuer beaucoup de calcul par secondes et beaucoup daccès à une base de données en écriture/lecture. Je voudrais savoir quel est la méthode (un ou plusieurs langages) la plus RAPIDE. Jaurais besoin de conseils des personnes dexpérience.
PHP, ASP, MySQL, Java, JSP, ODBC, Perl, Coldfusion, quoi choisir ?
Les critères importants sont la rapidité daccès à la base de données et la vitesse des calculs. (Tout en tenant compte du temps de communication entre chaque langage ou interface, sil y a lieu.)
Merci.