Merci énormément! Je trouve ce type de vidéo super intéressant ! Personnellement je galère beaucoup à cause de ces questions, j'ai jamais travaillé sur des applications sur lesquelles j'ai vraiment eu besoin de réfléchir en terme de performance et de scalabilité. Merci et j'espère qu'il y aura d'autres vidéos comme celle là bientôt !
Très bonne présentation. Certains on apporté les réponses concernant Python et les difficulter présenté pour Node.js (aujourd'hui résolu). Personnellement je suis encore un peu jeune sous java pour vraiment oser prendre parole, mais perso j'utilise un framework (executor) pour faire du multithread et j'aimerai bien savoir ce qu'il en retourne donc pour Java. Espérons un retour d'information ici... Encore merci à tous.
En Java, dans le cas d'un serveur HTTP "traditionnel" qui gère la spécification servlet tu as 1 thread qui gère 1 requête (le tout est optimisé via un pool de thread). Le concept d'event loop s'est aussi intégré à Java avec les frameworks Vert.x ou bien Spring Webflux (avec Netty comme container au lieu d' Apache Tomcat pour les applications Spring WebMvc traditionnels)
pour le PHP: si vous utilise les serveur Web Apache , il existe plusieurs mode de concurrence "MPM" : prefork (mode classic) , worker ( commen nginx) , event (comme nodejs) , ces modes on des influences sur la performance de notre serveur
7 років тому
T'as bien raison de parler de la complexité de l'asynchrone de node.js, mais je pense que le mécanisme de Promise a bien résolu ce problème. On a (enfin) un mot du langage qui permet de montrer qu'une tache bloquante vient d’être lancé et d'y joindre le code asynchrone à exécuter lorsqu'on aura le résultat. Ca reviendrait à dire que les lambdas manquent à java 1.7 en ne prenant pas en compte que java 1.8 l'intègre. Ce n'est qu'un exemple mais les langages évoluent et, même si on manipule le même concept derrière, la lisibilité s'est grandement améliorée
Merci pour cette nouvelle vidéo. Pour ma par je serai assez curieux de voir une comparaison de ces techno avec les 2 langages les plus utilisées encore C/C++ et JAVA :D
trés intéressant merci est-il possible d'avoir plus de vidéos du même type ? fontionnement de la boucle d'événements JS, différences entre goroutines et thread... merci d'avance
Go Erlang sont basé sur du CSP de tony hoare, go c'est par channel qui est définie sur un type, erlang c'est par Pid et mailbox du process, erlang tu doint faire ton propre loop et wait sur les message non blockante, en nodejs l'event loop et déja définie avec la libuv, mais erlang est purement fonctionelle
J'aime beaucoup cette vidéo, et ça m'a conduit à changer ma stack apache+mod_php par apache + php-fpm :) Par contre, tu dis "ça va-t-être" à chaque paragraphe, ça pique les oreilles. On dit "ça va être", il n'y a pas de liaison entre les deux. Désolé, grammar nazi inside.. :D
Euh... Désolé de chipoter mais la traduction de "pool" par "piscine" - ce qui est très mignon par ailleurs - est incorrecte : sachant que PHP-FPM gèrent des "workers", les "pools" sont en fait des "regroupements" - au sens "équipe"... Parce que franchement, "piscine", dans ce contexte, ça n'a pas vraiment de sens (à part pour les remouds ?)
Sinon, chaud patate ici pour une découverte simultanée avec GoLang, que je trouve hyper fascinant. Elixir aussi a bien des charmes qui méritent qu'on s'y intéressent...
www.wordreference.com/enfr/pool pool n (group: workers, applicants, etc.) (groupe de travailleurs, anglicisme) pool nm groupe nm équipe nf There is a large pool of applicants for this job. Sarah was a member of the typing pool. Sarah faisait partie du pool des dactylographes.
les tests sont biaisés car le CPU monte a 100%. donc t'es capé en ressources peut importe le coté sync/async du language. faudrait refaire la meme chose avec un cpu plus grand. ou des tests moins lourds. car là c'est le hardware qui limite le test.
C'est voulu, le but est de comparer le bénéfice obtenu lors de l'I/O ou le processeur peut effectivement faire des choses en attendant et le cas ou le code est intensif niveau CPU.
J'adore ce type de vidéos, pour gérer les performances d'un serveur web 😌
Merci énormément! Je trouve ce type de vidéo super intéressant ! Personnellement je galère beaucoup à cause de ces questions, j'ai jamais travaillé sur des applications sur lesquelles j'ai vraiment eu besoin de réfléchir en terme de performance et de scalabilité. Merci et j'espère qu'il y aura d'autres vidéos comme celle là bientôt !
Peut être des vidéos sur la création d'un bot discord fera intervenir ce genre de notion (ou une vidéo elixir je ne sais pas encore ;))
Ca serait bien oui
Comme toujours, merci à toi. Un vrai modèle pour ce corps de métier
merci nous avons besoin de vous dans nos technique de développement
Très bonne présentation. Certains on apporté les réponses concernant Python et les difficulter présenté pour Node.js (aujourd'hui résolu). Personnellement je suis encore un peu jeune sous java pour vraiment oser prendre parole, mais perso j'utilise un framework (executor) pour faire du multithread et j'aimerai bien savoir ce qu'il en retourne donc pour Java.
Espérons un retour d'information ici...
Encore merci à tous.
En Java, dans le cas d'un serveur HTTP "traditionnel" qui gère la spécification servlet tu as 1 thread qui gère 1 requête (le tout est optimisé via un pool de thread). Le concept d'event loop s'est aussi intégré à Java avec les frameworks Vert.x ou bien Spring Webflux (avec Netty comme container au lieu d' Apache Tomcat pour les applications Spring WebMvc traditionnels)
Ce serait génial si vous pouviez faire un tuto de golang :)
Avec un framework
pour le PHP: si vous utilise les serveur Web Apache , il existe plusieurs mode de concurrence "MPM" : prefork (mode classic) , worker ( commen nginx) , event (comme nodejs) , ces modes on des influences sur la performance de notre serveur
T'as bien raison de parler de la complexité de l'asynchrone de node.js, mais je pense que le mécanisme de Promise a bien résolu ce problème. On a (enfin) un mot du langage qui permet de montrer qu'une tache bloquante vient d’être lancé et d'y joindre le code asynchrone à exécuter lorsqu'on aura le résultat.
Ca reviendrait à dire que les lambdas manquent à java 1.7 en ne prenant pas en compte que java 1.8 l'intègre. Ce n'est qu'un exemple mais les langages évoluent et, même si on manipule le même concept derrière, la lisibilité s'est grandement améliorée
Merci pour cette nouvelle vidéo. Pour ma par je serai assez curieux de voir une comparaison de ces techno avec les 2 langages les plus utilisées encore C/C++ et JAVA :D
Et également python
Mash'allah SUPER INTERESENT!! merci jonathan! merci!
trés intéressant merci est-il possible d'avoir plus de vidéos du même type ? fontionnement de la boucle d'événements JS, différences entre goroutines et thread... merci d'avance
Merci pour cette vidéo très instructive.
Go Erlang sont basé sur du CSP de tony hoare, go c'est par channel qui est définie sur un type, erlang c'est par Pid et mailbox du process, erlang tu doint faire ton propre loop et wait sur les message non blockante, en nodejs l'event loop et déja définie avec la libuv, mais erlang est purement fonctionelle
Merci à vous, Je vous souhaite bonne continuation ! merci à vous
Merci pour cette analyse !
Très instructif, merci :)
très bon concept de vidéo
Merci pour cette analyse ! par contre c'est quoi l'outil que vous utilisez pour faire le Benchmark "hey -c 100 -n 100 url etc.." ?
+1, je me pose la même question
En vrai c'est Apache Benchmark ;)
J'aime beaucoup cette vidéo, et ça m'a conduit à changer ma stack apache+mod_php par apache + php-fpm :)
Par contre, tu dis "ça va-t-être" à chaque paragraphe, ça pique les oreilles. On dit "ça va être", il n'y a pas de liaison entre les deux. Désolé, grammar nazi inside.. :D
tu pourrais me dire ce que tu utilise sur ton linux (barre de tache et environnement graphique ...)
Yep j'ai détaillé un peu ma configuration ici : www.grafikart.fr/blog/mon-environnement
merci beaucoup
Cc grafikart on a besoin de ce test en 2023
Rien n'a changé dans le fonctionnement des technologies présentées depuis
IntelliJ permet-il de faire tout ça de base (terminal, ssh) ou faut-il lui adjoindre une ribambelle de plugins ?
Je n'utilise pas IntelliJ dans cette vidéo mais directement mon terminal (terminator)
ah ok -_-', connaissais pas
Quel est le thème de vim qui est utilisé ?
Spacevim si je me souviens bien
@@grafikart merci
Php n’a pas de serveur intégré ?
Le serveur intégré de PHP est réservé pour le développement
et donc du coup pas d'info sur Erlang ...
Euh... Désolé de chipoter mais la traduction de "pool" par "piscine" - ce qui est très mignon par ailleurs - est incorrecte : sachant que PHP-FPM gèrent des "workers", les "pools" sont en fait des "regroupements" - au sens "équipe"... Parce que franchement, "piscine", dans ce contexte, ça n'a pas vraiment de sens (à part pour les remouds ?)
Certes le premier résultat dans Google Trad, c'est "piscine" mais c'est pas la bonne occurrence...
Sinon, chaud patate ici pour une découverte simultanée avec GoLang, que je trouve hyper fascinant. Elixir aussi a bien des charmes qui méritent qu'on s'y intéressent...
www.wordreference.com/enfr/pool
pool n (group: workers, applicants, etc.) (groupe de travailleurs, anglicisme) pool nm
groupe nm
équipe nf
There is a large pool of applicants for this job. Sarah was a member of the typing pool.
Sarah faisait partie du pool des dactylographes.
Fabien Plart c'est ça. mais faut bien trouver un terme en français plutôt que lâcher un vulgaire anglicisme, non ?
Yep dans le futur j'utiliserais groupe ça traduit bien le concept ^^
php a un serveur web de dev integré :/
Ce serveur n'est absolument pas conçu pour de la production
les tests sont biaisés car le CPU monte a 100%. donc t'es capé en ressources peut importe le coté sync/async du language. faudrait refaire la meme chose avec un cpu plus grand. ou des tests moins lourds. car là c'est le hardware qui limite le test.
C'est voulu, le but est de comparer le bénéfice obtenu lors de l'I/O ou le processeur peut effectivement faire des choses en attendant et le cas ou le code est intensif niveau CPU.