Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Visual Studio

GELÖST

Variablen in VB.NET

Mitglied: MarcoBorn

MarcoBorn (Level 1) - Jetzt verbinden

26.08.2014 um 12:01 Uhr, 1067 Aufrufe, 4 Kommentare

Hallo Forum,
in VB.NET gibt es ja die Möglichkeit, Variablen global oder lokal zu definieren. Zusätzlich können Variablen auch nur innerhalb von z.B. Schleifen gültig sein.

Ist es z.B. aus Performancegründen sinnvoller, die Variablen möglichst global oder möglichst lokal zu definieren?


Viele Grüße,
M. Born
Mitglied: colinardo
26.08.2014, aktualisiert um 12:20 Uhr
Moin Marco,
Zitat von MarcoBorn:
Ist es z.B. aus Performancegründen sinnvoller, die Variablen möglichst global oder möglichst lokal zu definieren?
Der Performance-Unterschied ist so klein das er subjektiv nicht wahrnehmbar ist. Bei modernen Compilern wirst du keinen Unterschied mehr feststellen. Dabei müssen sie aber nicht gleichzeitig als Public deklariert sein, sondern es können natürlich auch lokal in der jeweiligen Prozedur deklarierte Variablen sein.
Es kommt hier in erster Linie darauf an in welchem Kontext du die Variablen noch benötigst oder nicht, und man so eben Speicher spart, denn der Speicher lokaler Variablen in einem Loop wird ja nach dem Loop wieder freigegeben (spätestens wenn der GarbageCollector anspringt).


Grüße Uwe
Bitte warten ..
Mitglied: MarcoBorn
26.08.2014 um 12:42 Uhr
Hallo Uwe,
ich habe bisher immer nach Möglichkeit, die lokalen Variablen einer Prozedur am Anfang definiert und vor Beendigung der Prozedur durch Setzen auf Nothing wieder "gelöscht". Nur in Ausnahmefällen habe ich globale Variablen eingesetzt, die für eine ganze Klasse genutzt wurden.

Ich bin mir nicht sicher, ob das ständige Neuanlegen und Löschen einer lokalen Variable innerhalb schneller oder langsamer ist. So habe ich z.B. etliche Prozeduren, die mehrere Schleifen durchlaufen und nutze dafür immer das Zählervariablen i, j, k.

Da der RAM-Verbrauch während des Durchlaufs stark ansteigt, möchte ich ggf. über eine bessere Variablennutzung solche Effekte minimieren oder beseitigen.


Viele Grüße,
M. Born
Bitte warten ..
Mitglied: colinardo
26.08.2014, aktualisiert um 12:54 Uhr
Ich bin mir nicht sicher, ob das ständige Neuanlegen und Löschen einer lokalen Variable innerhalb schneller oder langsamer ist.
Wie du obigen Links entnehmen kannst, ist das eigentliche Anlegen der Variablen außerhalb der Schleife minmalst schneller aber heutzutage absolut zu vernachlässigen, da die Compiler inzwischen intelligent genug sind!
Da der RAM-Verbrauch während des Durchlaufs stark ansteigt, möchte ich ggf. über eine bessere Variablennutzung solche Effekte minimieren oder beseitigen.
Wenn du unbedingt RAM zeitig sparen musst, ist der manuelle Aufruf des GarbageCollectors mit GC.Collect() eine Methode Speicher der inzwischen nicht mehr benutzte Variablen freizugeben. Gerade wenn du non-managed (also keine NET-Objekte) wie z.B. COM-Objekte erzeugst ist das in manchen Fällen nötig. Aber normalerweise erledigt das die .NET-Runtime von Zeit zu Zeit automatisch.
Lokale Variablen haben ja sowieso eine kürzere Lebenszeit und fallen somit schneller aus dem Speicher als global definierte. Da sie ja nur im jeweiligen Code-Abschnitt gültig sind und dann durch die Runtime freigegeben werden.

Grüße Uwe
Bitte warten ..
Mitglied: MarcoBorn
26.08.2014 um 13:07 Uhr
Das manuelle Aufrufen des GC hatte ich schon getestet, aber es hat keine Besserungen gebracht. Aber ich werde mal testen, ob das Verschieben der Variablendeklaration in Schleifen etc. etwas bringt.

Vielen Dank,
M. Born
Bitte warten ..
Ähnliche Inhalte
Visual Studio
Variabler Ordnername VB.Net
gelöst Frage von Tealk144Visual Studio12 Kommentare

Servus, also ich habe einen Ordner an dem immer ein Datum angehängt ist, diesen Variablen namen müsste ich irgendwie ...

VB for Applications
VB.NET - Variable aus Textbox in Progressbar ausgeben
gelöst Frage von TermimanVB for Applications2 Kommentare

Hallo liebe Programmier, mich plagt seit gestern ein kleines Problem : Ich habe mir eine kleine Prozedur geschrieben mit ...

Visual Studio
Richtiges Löschen globaler Variablen in VB.NET
gelöst Frage von MarcoBornVisual Studio10 Kommentare

Hallo Forum, ich habe ein Verständnisproblem, wie man Variablen richtig wieder löscht. Folgendes Beispiel. Ich habe ein Programm, das ...

Visual Studio
Automatische Treiberinstallation mit VB.NET
gelöst Frage von joehuabaVisual Studio3 Kommentare

Hallo Zusammen, Folgende Problemstellung: 1. Ich habe einen Rechner per Hand neu installiert, da fehlen einige Treiber 2. Ich ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 8 StundenRouter & Routing2 Kommentare

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 15 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 19 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

Sonstige Systeme
7-zip: Programm frägt nach Passwort erst bei einzelnen Dateien
Frage von freeskierchrisSonstige Systeme7 Kommentare

Guten Morgen, ich habe ein Problem beim Arbeiten mit 7-zip: Wenn ich die einzelnen Dateien zu einem Archiv verpacke ...