Je pense n'avoir pas compris le principe de la mémoire transactionnelle car je ne vois pas du tout comment cela peut arriver à la cheville des verrous.
Si un seul fil d'exécution à besoin d'une ressource, verrou ou mémoire transactionnelle, c'est kif-kif. Sauf que le verrou ne nécessite pas 10000 transistors supplémentaires dans le processeur et/ou une vérification logicielle.
Si deux fils d'exécution on besoin d'une même ressource:
- avec verrou, le premier pose le verrou, le second est en attente (donc libère le processeur pour faire potentiellement autre chose)
- avec mémoire transactionnelle, les deux fils bossent. Celui qui termine en dernier a gaspillé du temps processeur, et de l'autonomie de batterie de portable
L'avantage réside peut-être dans le fait que les verrous nécessitent d'être correctement implémentés, et que des bugs sont possibles dans chaque application. Alors que la mémoire transactionnelle évite au programmeur de se casser la tête. Mais ce qui est mis en avant est que c'est plus rapide, et là, je ne pige pas.
# Exemple de gain avec la mémoire transactionnelle ?
Posté par Kerro . En réponse à la dépêche Sortie de la version 4.7 du compilateur GCC. Évalué à 2.
Je pense n'avoir pas compris le principe de la mémoire transactionnelle car je ne vois pas du tout comment cela peut arriver à la cheville des verrous.
Si un seul fil d'exécution à besoin d'une ressource, verrou ou mémoire transactionnelle, c'est kif-kif. Sauf que le verrou ne nécessite pas 10000 transistors supplémentaires dans le processeur et/ou une vérification logicielle.
Si deux fils d'exécution on besoin d'une même ressource:
- avec verrou, le premier pose le verrou, le second est en attente (donc libère le processeur pour faire potentiellement autre chose)
- avec mémoire transactionnelle, les deux fils bossent. Celui qui termine en dernier a gaspillé du temps processeur, et de l'autonomie de batterie de portable
L'avantage réside peut-être dans le fait que les verrous nécessitent d'être correctement implémentés, et que des bugs sont possibles dans chaque application. Alors que la mémoire transactionnelle évite au programmeur de se casser la tête. Mais ce qui est mis en avant est que c'est plus rapide, et là, je ne pige pas.
Un exemple concret pour m'éclairer ?