Notes 2020-S1¶
Cf. surtout: https://www.notion.so/Cython-280a5df9eb57433292a57d6809214578
Call JPS le 6 avril 2020¶
Ils ont essayé plein de librairies (5 ou 6). Aucune n’est vraiment aussi rapide que (?).
lwan:
- ca va vite
- ce qui est lent c’est l’allocation mémoire initiale (faite avec malloc)
- malgré ca ça reste mieux (donc c’est pas prioritaire)
Ensuite on fait tout pour s’abstraire de la bibliothèques.
Dans les schedulers il ya plusieurs facon d’allouer les tâches. Le mieux c’est le “work-stealing”. Cf. examen de master de Julius.
Le work-stealing tient la charge quand on a plus que 8 coeurs. Les schedulers classiques ont tendance à s’effondrer au-dessus de 8 coeurs.
Go a un scheduler par work-stealing, c’est pour ca que ca marche bien quand il y beaucoup de coeurs.
On veut du http2 et du http3 de nos jours. 2 possibilités:
- Tout réimplémenter (en Python) = boulot infernal (2 ans)
- NB: http2 permet d’envoyer des contenus de manière prédictive + garder des sessions ouvertes.
Pour implémenter du webrtc, il n’y a que deux libs existantes (celle de facebook + celle des japonais = dna ou qq chose comme ca).
Call JPS le 26 Mai 2020¶
Le projet est financé !
Q: Que faire d’un dictonnaire dans Cython+ ?
Discussion sur le typage des dictionnaires.
=> Il faut expérimenter.
1 mois pour comprendre comment fonctionne le compilo Cython.
Resources¶
Web servers¶
GitHub - kazuho/picoev: a tiny, lightning fast event loop for network applications
https://github.com/mopemope/meinheld.git
GitHub - python-greenlet/greenlet: Lightweight in-process concurrent programming
Go¶
Why Go and not Rust? | Loris Cro’s Personal Blog