Laden...

Using nutzen oder nicht (Performance) [==> kein Unterschied]

Erstellt von mrennen vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.153 Views
M
mrennen Themenstarter:in
166 Beiträge seit 2008
vor 8 Jahren
Using nutzen oder nicht (Performance) [==> kein Unterschied]

Hallo zusammen,

ich habe da mal eine Frage nach der Performance bzgl. Using nutzen oder nicht.

Hat das mal jemand getestet was besser ist bzgl. Geschwindigkeit und Speicherauslastung?

zum Beispiel:


namespace Test
{
    public partial class frmMemo : System.Windows.Forms.Form
    {
        public frmMemo(string table, string memo)
        {
            InitializeComponent();

            Text = string.Concat(Localize.TranslateToString(Name, table), " - ", Localize.TranslateToString(Name, "Memo Preview"));
            teMemo.MhtText = memo;
        }
    }
}

vs.


using System.Windows.Forms;

namespace Test
{
    public partial class frmMemo : Form
    {
        public frmMemo(string table, string memo)
        {
            InitializeComponent();

            Text = string.Concat(Localize.TranslateToString(Name, table), " - ", Localize.TranslateToString(Name, "Memo Preview"));
            teMemo.MhtText = memo;
        }
    }
}

W
955 Beiträge seit 2010
vor 8 Jahren

Hi,

ist komplett Rille, das macht der Compiler zur Entwurfszeit.

M
mrennen Themenstarter:in
166 Beiträge seit 2008
vor 8 Jahren

Ich könnte mir vorstellen dass z.B.

using System;

die komplette dll in den Speicher läd auch wenn ich nur Teile brauche.

Das ist eigentlich der ganze Sinn meiner Frage 😃

W
955 Beiträge seit 2010
vor 8 Jahren

Er wird m.E. so oder so die DLLs komplett in den Speicher laden die deine Assemblies referenzieren. Also entferne lieber unnötige Referenzen.
(Das Betriebssystem könnte evtl nur Teile einer DLL laden - und später benötigte Teile durch die Seitenfehler nachladen aber das ist unabhängig von dir)
Ich würde an Deiner Stelle nicht solche Mikrooptimierung durchführen, es ist besser geeignete Datenstrukturen und Algorithmen zu verwenden - mit verringerten Laufzeit- und Speicherkomplexitäten läßt sich viel mehr rausholen.

T
62 Beiträge seit 2012
vor 8 Jahren

Das using für den namespace dient wirklich nur der vereinfachten Schreibweise für den Entwickler.
Schau dir mal den IL Code deiner Anwendung an, dann wirst du sehen das dort überall vor den Klassen/Methoden der komplette Namespace ausgeschrieben wird.

Hat alles mit Performance nichts zu tun.

16.827 Beiträge seit 2008
vor 8 Jahren

Dass eine Assembly in den Speicher kommt, sobald sie referenziert wird, ist richtig; hat aber mit dem usings nichts zutun.
Gerade der Kaltstart einer Anwendung profitiert aber davon, dass unnötige Referenzen entfernt werden.

Ansonsten ist der Mikro-Optimierung nichts hinzuzufügen; nicht beachten.