Was sind die Leistungs- und Wartungsaspekte bei der Verwendung der Strukturtypen von Scala?

7

Meine Mitarbeiter lassen mich sie nicht aus beiden Gründen benutzen. : (

    
Landon Kuhn 07.04.2011, 22:01
quelle

3 Antworten

9

Eine Leistungsüberlegung ist, dass die Methoden in einem Strukturtyp über Reflektion aufgerufen werden, was auf der JVM viel langsamer ist als ein normaler Methodenaufruf. Siehe diese Antwort und Kommentare für detaillierte Informationen.

>     
Jesper 07.04.2011 22:07
quelle
9

Ich habe festgestellt, dass ich, wenn ich Strukturtypen benötige, fast immer dafür verantwortlich ist, dass eine Bibliothek, die ich verwenden wollte, nicht richtig entworfen wurde (z. B. fehlende Superklassen in Fällen wie StringBuilder / StringBuffer).

Wenn Sie also Strukturtypen aus anderen Gründen verwenden möchten, könnte es sich um ein Entwurfsproblem handeln, das schwerwiegender ist als Konfigurations- oder Leistungsüberlegungen. Das Typensystem von Scala ist mächtig und die Verwendung von Strukturtypen ist ein bisschen wie "aufgeben", um es mit "normalen" Mitteln richtig zu machen. Also, wenn Sie etwas Code haben, der Strukturtypen "benötigt", versuchen Sie zu analysieren, warum es so ist, und vielleicht fragen Sie die Gemeinschaft, ob es verbessert werden kann ( Ссылка scheint ein guter Ort dafür zu sein, wenn Sie stecken bleiben.

BTW, jeder neigt dazu, eine Funktion, die er gerade "grokked", z. Anfänger Muster passen wie verrückt, sobald sie das Konzept bekommen, auch wenn es bessere Möglichkeiten gibt (z. B. im Falle von Option Funktionen wie map, flatMap, foreach ...).

    
Landei 08.04.2011 06:47
quelle
4

Es hängt auch davon ab, wie viel Sie verwenden, M. Odersky und G. Dubochet haben einige Benchmarks in ihrem Bericht .

    
Carlos López-Camey 08.04.2011 03:17
quelle

Tags und Links