Warum sind interface-Methoden-Aufrufe langsamer als konkrete Aufrufe?

Diese Frage kommt in den Sinn, wenn ich finden Unterschied zwischen abstrakter Klasse und Schnittstelle.
In dieser Beitrag ich kam zu wissen, dass Schnittstellen sind langsam, da Sie erforderliche zusätzliche Dereferenzierung.
Aber ich bin nicht immer welche Art der Dereferenzierung erforderlich, die durch die Schnittstelle und nicht durch die abstrakte Klasse oder konkrete Klasse.Bitte klären Sie es auf.
Vielen Dank im Voraus

  • Was ist die Quelle, die dir gesagt "Schnittstellen sind langsam"?
  • Schnittstellen sind nicht mehr zu Bremsen. 😉
  • Die Log4J-Dokumentation besagt, "In log4j, logging-Anfragen für Instanzen von der Logger-Klasse. Logger ist eine Klasse und kein interface. Diese messbar reduziert die Kosten des Methodenaufrufs auf Kosten der Flexibilität geht." Mir, das liest sich wie, "in Zeiten, in denen extrem aggressive Optimierung ist erforderlich, - Schnittstellen kann ein Hindernis sein." Ich weiß nicht, wie genau das ist (und nie da gewesen in dieser situation, kann ich nicht bezeugen zu seiner Genauigkeit), aber es ist eine seriöse Quelle.
  • Verwandte: stackoverflow.com/questions/5451775/....
  • gcc.gnu.org/ml/java/1999-q4/msg00305.html
  • blog.paulgu.com/2008/09/03/... auf dieser Quelle zum letzten Punkt, in dem Sie erklärte, dass die java-Schnittstellen sind langsam.
  • Wäre wirklich neugierig zu sehen, der test zeigt einen messbaren Unterschied nach JIT. Log4J hat schon eine sehr sehr lange Zeit, kann glauben, dass das wahr war vor 12 Jahren, bevor es war sogar 1.4.2 hotspot. Schwer zu glauben, dass es zu messbaren Unterschied würde es nach JIT-auf eine moderne JVM.
  • Gut, mein Gedanke ist, "Macht es wirklich so viel Unterschied auf moderne Architektur? Wir sind in einer Welt, wo solche Optimierungen sind für Menschen, die 'nicht leisten können RAM'"
  • dein Erster post ist über gcj, die eine schreckliche Java-implementation (Sie hat einen notwendigen job, aber in reiner Qualität in der Produktion, es war nie wirklich gut). Ihre zweite link besagt lediglich, als wäre es eine Tatsache und gibt keine Hinweis darauf, wie er zu diesem Schluss gekommen. Die Chancen sind, er Las es in einem 10 Jahre alten Artikel selbst.
  • es;s nicht nur über RAM oder Optimierung, sondern um zu lernen, grundlegende Konzepte.nun wird ein Tag jeder kann die kaufen, sehr konfigurierten system, aber kein können, sondern Konzepte der Programmierung,

InformationsquelleAutor Sanjay Jain | 2011-07-27
Schreibe einen Kommentar