Mir wurde gesagt, dass laufende Programme Wahrscheinlichkeitsdaten erzeugen, die verwendet werden, um wiederholte Anweisungen zu optimieren.
Zum Beispiel, wenn eine "wenn-dann-sonst" -Steuerungsstruktur WAHR 8/10 mal ausgewertet wurde, dann besteht beim nächsten Mal, wenn die "if-then-else" -Anweisung ausgewertet wird, eine Wahrscheinlichkeit von 80% wird WAHR sein. Diese Statistik wird verwendet, um die Hardware aufzufordern, die entsprechenden Daten in die Register zu laden, wobei davon ausgegangen wird, dass das Ergebnis WAHR ist. Die Absicht ist, den Prozess zu beschleunigen. Wenn die Anweisung als TRUE ausgewertet wird, sind die Daten bereits in die entsprechenden Register geladen. Wenn die Anweisung FALSE ergibt, werden die anderen Daten geladen und einfach über das, was als "wahrscheinlicher" entschieden wurde, geschrieben.
Es fällt mir schwer zu verstehen, wie die Wahrscheinlichkeitsberechnungen die Leistungskosten von Entscheidungen, die es zu verbessern versucht, nicht übertreffen. Ist das etwas, was wirklich passiert? Tritt es auf einer Hardwareebene auf? Gibt es einen Namen dafür? Ich kann scheinen, irgendwelche Informationen über das Thema zu finden.dynamische Optimierung laufender Programme
3
A
Antwort
4
Dies ist erledigt. Es heißt Verzweigungsvorhersage. Die Kosten sind nicht trivial, aber es wird von dedizierter Hardware gehandhabt, so dass die Kosten fast ausschließlich in Bezug auf zusätzliche Schaltungen sind - es beeinflusst nicht die Zeit, die zur Ausführung des Codes benötigt wird. Das bedeutet, dass die tatsächlichen Kosten eine verlorene Chance wären - d. H. Wenn es eine andere Möglichkeit zum Entwerfen einer CPU gäbe, die diese Menge an Schaltungen für einen anderen Zweck verwendet und mehr davon gewonnen hat. Meine unmittelbare Vermutung ist, dass die Antwort ist in der Regel keine - Branchenprognose ist in der Regel durchaus in Bezug auf den Return on Investment wirksam.
Verwandte Themen
- 1. Über die dynamische de-Optimierung von HotSpot
- 2. Optimierung der redundanten Verarbeitung für dynamische Spalten in EmberJS
- 3. Laufender zeitgesteuerter Job
- 4. Laufender Rechen von Cron
- 5. Identifizieren langsam laufender Tests
- 6. Laufender String in Android
- 7. Laufender Quickstart auf Mac
- 8. Nodejs - laufender externer Prozess
- 9. Java ohne Optimierung kompilieren?
- 10. Laufender Knoten-Inspector neben nodemon?
- 11. Laufender Prozess als unprivilegierter Benutzer
- 12. Laufender Knoten-serialport in nw.js
- 13. laufender Job in hadoop - ERROR
- 14. Laufender Django-Sellerie in Produktion
- 15. Laufender Dienst für Android Kalenderänderungen?
- 16. Laufender Befehl in einem Docker
- 17. supervisord laufender Knoten als Dienst
- 18. Was ist ein laufender CRC?
- 19. Laufender Charakter Countdown in Java?
- 20. Laufender Code in der Hauptschleife
- 21. Automatische xValue Optimierung
- 22. C/C++ Compiler Feedback Optimierung
- 23. Joomla Website Optimierung mit JCH Optimierung
- 24. Warum sind schnelle Style-Programme kürzer als defensive Style-Programme?
- 25. CGContext Optimierung
- 26. Schleifenentrollen & Optimierung
- 27. NSURLConnection Optimierung
- 28. Cython Optimierung
- 29. SQL-Optimierung
- 30. Concat Optimierung
Verzweigungsprognose. ah, Danke. –