J'ai étudié ce qui compose un processeur et comment la mémoire à accès aléatoire est structurée, mais je ne comprends pas registre pour enregistrer les opérations de comparaison. "Pourquoi enregistrer pour enregistrer des opérations de comparaison généralement plus rapide que l'opération équivalente sur deux entrées de données dans la mémoire vive?"Enregistrez-vous pour enregistrer des comparaisons
Répondre
L'accès RAM, lorsqu'il se trouve à l'extérieur du cache, est très lent. Accéder aux données sur votre module DDR3 est plusieurs centaines de fois plus lent que d'accéder aux registres (ou même au cache L1). Les processeurs de bureau (ou de serveur ou d'ordinateur portable) d'aujourd'hui perdent la plupart de leur temps pour accéder à des données en dehors de leur cache (L1), par ex. sur les modules RAM DDR3. Pour mettre les chiffres en perspective: l'accès à un registre ou à une donnée L1 mise en cache prend au plus quelques cycles (donc, sur une machine 3GHz cela veut dire typiquement une nanoseconde). L'acquisition de données sur vos modules RAM DDR3 prend environ 200 ou 300 nanosecondes. Pendant tout ce temps, votre processeur pourrait exécuter plus d'une centaine d'instructions machine.
C'est pourquoi la localité de données est de plus en plus importante. Et cela a des conséquences même sur le code que nous écrivons: l'analyse d'une liste chaînée peut être beaucoup plus lente que l'analyse d'un tableau.
Les détails sont difficiles: il est très difficile de prédire le pire temps d'exécution d'une petite routine sur les processeurs actuels.
- 1. DATEADD - Comment faire des comparaisons
- 2. comparaisons MySQL TIME
- 3. Utilisation de javascript pour effectuer des calculs/comparaisons de date
- 4. LINQ & XNode.DeepEquals exécute des comparaisons deux fois?
- 5. Eq instance a des comparaisons étranges
- 6. Comparaisons directes des types de valeurs C#
- 7. Instruction MySQL WHERE avec des comparaisons croisées
- 8. programme pour les comparaisons en python
- 9. obligatoire Paramètre DB2 pour les comparaisons littérales
- 10. : valide en utilisant des comparaisons logiques
- 11. Filtrage basé sur des comparaisons dans django
- 12. Comparaisons de nombres Java
- 13. Nombre de comparaisons pour MergeSort Java
- 14. C++ cordes Comparaisons
- 15. Comparaisons de chaînes
- 16. Tracé de comparaisons multiples?
- 17. Comparaisons de dates Python
- 18. comparaisons hétérogènes dans python3
- 19. Comparaisons Oracle NUMBER
- 20. JavaScript date comparaisons
- 21. comparaisons Sélectionnez array Trier
- 22. Comparaisons d'horodatage Bash
- 23. Comparaisons de dates XSLT
- 24. Comparaisons dans awk
- 25. C# Multi-comparaisons possibles?
- 26. comparaisons de date Oracle
- 27. comparaisons MySQL et '%'
- 28. MYSQL - comment enchaîner des comparaisons et des requêtes?
- 29. Tri des tableaux avec des comparaisons cycliques (boucle infinie?)
- 30. effectuer des comparaisons d'inégalité à des données alphanumériques dans linq