Local im Hauptprogramm

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Seven

Betreff: Local im Hauptprogramm

BeitragSo, Dez 11, 2011 20:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mal wieder eine kleine Verständnis-Frage.

Wenn ich eine Function benutze und darin sind lokale Variablen,
dann werden diese ja nach dem durchlaufen der Function gelöscht,
bzw. der alte Wert geht verloren.

Bei einer lokalen Variable im Hauptprogramm passiert das nicht,
was für mich heißt, dass ich sie nicht los werde.
Hier also das selbe Ärgernis, wie bei den globalen.
Wäre es hier nicht besser die ganzen in eine Bank einzuspeichern
und sie so gegeben falls zu löschen?
Wie verhält sich das überhaupt mit den ganzen bank Befehlen?
Verbrauchen die viele Ressourcen?

Ahja und noch was:
Wenn ich Types in einer Function benutze, dann werden diese ja nicht
gelöscht, bzw. nur gelöscht, wenn ich delete einsetze.
Sind Types dadurch nicht global?

Und noch eine nette Idee:
Man könnte doch eigentlich dim und die Blitzarrays durch bank ersetzen,
oder nicht? (Mit dem Ziel sie im Nachhinein löschen zu können)

Xeres

Moderator

BeitragSo, Dez 11, 2011 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf die Typeliste (oder Collection, wenn du so willst) kann man überall global zugreifen, ja.
Mit Dim kannst du Arrays auch auf 0 verkleinern, wenn du sie nicht mehr so groß brauchst.

Locale Variablen einsparen zu wollen ist schlichtweg sinnlos. BlitzBasic erfragt Speicher bei Windows und gibt ihn nicht sofort zurück, wenn er nicht mehr gebraucht wird - schließlich könnte er gleich wieder gebraucht werden, und die Speicherverwaltung nimmt auch Zeit in Anspruch.

Wenn du solche Speicheroptimierungen brauchst, machst du was falsch.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

ZEVS

BeitragSo, Dez 11, 2011 21:05
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/foru...hp?t=37906...
Kann es sein, dass du gerne deine Fragen mehrmals stellst? Gut, es ist eine wenig andere Situation, aber praktisch alle Argumente gelten genauso.

ZEVS
 

Seven

BeitragSo, Dez 11, 2011 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Joa, ist was ähnliches, aber hier ging es mir eher um lokale Variablen im Hauptprogramm.
Ich fragte mich nämlich, wozu ich sie dort gebrauchen sollte,
wenn sie letztendlich den selben Nachteil haben, wie globale.

So könnte man gleich immer zu globalen reichen. (zumindest vom
Speicherplatz her. Von der Geschwindigkeit weiß ich es nicht)

Diesmal habe ich um andere Zusammenhänge gefragt^^

BladeRunner

Moderator

BeitragSo, Dez 11, 2011 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Nebenbei erwähnt müsstest Du schon sehr sehr viele Variablen erstellen bis Du auf einem halbwegs modernen Rechner ins Trudeln kommst. Weit mehr als in einem normalen Spielchen wie es ein Hobbiist erstellt für die Logistik braucht.
Mit Arrays und Co. ist es um ein Vielfaches leichter sich den Speicher zuzubomben, da lohnt es sich genau zu überdenken welche Informationen man wirklich braucht.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

FireballFlame

BeitragSo, Dez 11, 2011 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist eine Frage des sauberen programmierens. Globals sind überall aufrufbar, also kann man damit viel Unsinn machen, Locals nicht.
Idealerweise hast du aber bei einem sauberen Code sowieso möglichst wenig direkt im Hauptprogramm stehen, also ist das eigentlich recht unwichtig.

Und nein, Arrays durch Banks zu ersetzen ist eine sehr schlechte Idee. Die Größe von Dim-Arrays lässt sich, wie von Xeres bereits gesagt, nachträglich verändern und Blitzarrays sind sowieso lokal.
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group