Je te rejoins. Je n'ai pas le temps de tester le code, mais j'ajoueterais :
quel est l'impact de BeautifulSoup dans ton thread ?
tu fais uniquement 3 requêtes ? Tu as combien de core ? Si tu parallélise avec un nombre inférieur ou égale à ton nombre de core tu n'a pas de context switch. Même si tu n'a qu'un seul core tu n'a que 3 context switch
je suis pas sûr de voir de lissage dans ton test, même si en soit ça doit plus impacter les threads systèmes
J'ai vite fais trouvé un bench qui fait exactement ce test mais sur qui montre plus l'évolution en fonction du nombre de requêtes, jusqu'à 10 url les threads sont meilleurs (contrairement à toi il utilise un pool de threads pour ne pas exploser son CPU et éviter de payer de trop le coût de création des threads). Tu peux trouver le lien ici : A better way for asynchronous programming: asyncio over multi-threading.
est-ce que si on implémente intelligemment les green threads sur plusieurs threads systèmes (éventuellement, en fixant ces threads sur des cœurs), on peut gagner en perf (en utilisant X green threads sur N cœurs versus X threads systèmes sur N cœurs) ?
[^] # Re: Des bonnes idées
Posté par barmic 🦦 . En réponse à la dépêche Les nouvelles fonctionnalités de PHP 8. Évalué à 2.
Je te rejoins. Je n'ai pas le temps de tester le code, mais j'ajoueterais :
J'ai vite fais trouvé un bench qui fait exactement ce test mais sur qui montre plus l'évolution en fonction du nombre de requêtes, jusqu'à 10 url les threads sont meilleurs (contrairement à toi il utilise un pool de threads pour ne pas exploser son CPU et éviter de payer de trop le coût de création des threads). Tu peux trouver le lien ici : A better way for asynchronous programming: asyncio over multi-threading.
C'est précisément ce que fait go par exemple.
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll