12 points par xguru 2020-05-31 | 2 commentaires | Partager sur WhatsApp

La désallocation d’éléments comme des structures de données complexes peut prendre du temps,

alors une astuce consiste à transférer la structure vers un thread séparé pour y effectuer la libération de mémoire, afin d’améliorer les performances (en pratique, la latence)

→ Dans le cas d’une HashMap contenant 1 million de clés, l’effet observé est un fonctionnement environ 10a0000 fois plus rapide

2 commentaires

 
ryuheechul 2020-05-31

En voyant dans ce post qu’un lien vers Rust Playground était présent — https://play.rust-lang.org/?version=stable&mode=debug&edition=…

je me suis demandé si c’était un GitHub Gist, et après vérification, c’est bien le cas — https://gist.github.com/rust-play/e6036d23879b0d0abda5196dfa8a131e

J’imagine que lorsqu’on appuie sur le bouton de partage dans le Playground, c’est conçu pour être automatiquement enregistré dans un GitHub Gist.

 
xguru 2020-05-31

Comme créer un thread à chaque fois qu’on fait ce genre de chose peut être inefficace, voici defer_drop, qui applique cette astuce et en fait directement une crate

https://docs.rs/defer-drop/1.0.0/defer_drop/