Was ist schneller: Automapper, Valuinjector, oder manuelle Zuordnung? Bis zu welchem Grad ist jeder schneller?

Nehme an, dass ich das Objekt in mein DAL (ORM etc.)

public class Student
{
   public string Name {get;set;}
   public string Address {get;set;}
   public string Phone {get;set;}
   public Parent Parent {get;set;}
}
public class Parent
{
   public string Name {get;set;}
   public string Address {get;set;}
   public string Phone {get;set;}
}

Und ich habe ein ViewModel, das aussieht wie dieses

public class StudentDetailVM
{
   public string Name {get;set;}
   public string Address {get;set;}
   public string Phone {get;set;}

   public string ParentName {get;set;}
   public string ParentPhone {get;set;}
}

In diesem Fall muss ich zum glätten der Objekte. Ich kann dies mit einem tool wie Automapper, ValueInjector, oder ich könnte es manuell machen. Dies ist eine mühsame Arbeit, wenn es viele solche Klassen zu behandeln, aber es scheint sich um eine Leistung /Entwickler Effizienz Kompromiss zwischen allen drei Ansätzen.

Ich bin auf der Suche nach Anleitung zum Gebrauch von Automapper vs Valueinjector vs eine manuelle Zuordnung. Ich bin mir sicher, dass die manuelle Zuordnung ist die Schnellste, aber um wie viel?

  1. Sind einige Szenarien viel langsamer/schneller als andere (z.B. Abflachung, etc.)?

  2. Würde es Sinn machen ein hybrid-Ansatz zum mapping von Objekten zwischen Ebenen?

Der Grund warum ich Frage ist, weil ein Codeplex-Projekt namens emitmapper die geschaffen wurde, um performance-Probleme in automapper, und ich erinnere mich an einen Kommentar, der sagte automapper in Anspruch nehmen können .5ms, map, eine große Klasse. (Referenz erforderlich)

Auch ich erinnere mich an einen Artikel, der beschreibt, wie die Benutzer haben eine höhere chance zu bleiben auf Ihrer Seite, wenn es lädt innerhalb von 70ms, im Gegensatz zu 90 MS oder mehr. (Ich bin auf der Suche nach diesem link). Wenn automapper verbraucht die meisten meiner page-load-time, kombiniert mit Netzwerk-Latenz, dann sehe ich Potenzial nicht zu nutzen automapper und manuelle Klassen für meine high-volume-Seiten und bleiben mit einem hybrid-Ansatz.

Bottom line: ich würde die tests selbst, aber ich weiß nicht genug über .NET internals zu erstellen genaue Ergebnisse, die verwendet werden können als wiederverwendbare Richtlinie.

InformationsquelleAutor der Frage random65537 | 2011-11-14

Schreibe einen Kommentar