319 private links
Je veux être fier de mon travail. Je veux fournir des choses qui fonctionnent, qui sont stables. Pour faire ça, il faut que l’on comprenne ce que nous faisons, à l’entrée et à la sortie, et ça ne peut pas se faire dans un système fourre-tout avec autant de surcouches.
👍 pour tout ce qui est énoncé dans ce billet de blog
A case study
Optimisations:
- Make use of SQLite PRAGMA statements when possible
- Use prepared statements
- Do a batched insertions
- PyPy is actually 4x faster than CPython
- Threads / async may not be faster always
In CPython: 510s
In PyPy: 150s
In Rust: 33s
Le truc qui prend du temps:
10 Mo, c’est pas grand chose me direz-vous, mais c’est là qu’une particularité de la fonction sscanf vient broyer le tout : pour chaque octet de donnée ajouté lors de la lecture, la fonction compte chaque caractère de la chaîne de caractères de 10 Mo via un strlen.
À la place, stocker le résultat du strlen au départ avant d'itérer résout le problème.
Du point de vue de la consommation énergétique lors de l'utilisation, les data centers ont fait d'énorme progrès !
On oubli cependant le coût de fabrication et de recyclage (quand il a lieu).
C'est complexe.
Supprimer les fichiers de langues …/plugins/…/lang/…
42ko d'économisé, sois 50Tb de bande passante !
TL;DR
You should probably avoid benchmarking branchy code over small problems.