Ungenutzte Parameter

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Ungenutzte Parameter

Beitrag von Manfred »

Hi,
wie ist es eigentlich wenn ich an eine Funktion Parameter übergebe, die dann überhaupt nicht genutzt werden? Ist das egal, oder belasten die irgendwie unnötigerweise den Speicher o.ä.?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Ungenutzte Parameter

Beitrag von Jan »

Manfred,

wenn Du Parameter übergibst sind die ja in der aufgerufenen Funktion nur LOCAL. Das sollte vermutlich eher weniger Speicherprobleme geben.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Ungenutzte Parameter

Beitrag von Tom »

Aber egal ist es auch nicht. Wenn ein riesiges Array per reference übergeben wird, kann das - je nach Häufigkeit der Funktionsaufrufe - auch ordentlich Kraft kosten. Und umsonst ist sowieso nix. Wenn eine Variable alloziert wird, geschieht etwas. Möglicherweise - bezogen auf die Gesamtkosten der Anwendung - nicht viel, aber jedes Byte Code löst Prozesse aus. Man muss heutzutage zwar nicht mehr wirklich sparsam programmieren, aber ich denke, man kann auf diese Art auch spürbare Performanceverluste generieren - wenn man es massiert macht. Wenn es aber irgendwo eine Funktion gibt, die gelegentlich aufgerufen wird, und die nur zwei von fünf Parametern verwendet, dürfte der Performanceverlust gegenüber der optimierten Variante im Nanosekundenbereich liegen.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Ungenutzte Parameter

Beitrag von Jan »

Tom,

das ist natürlich korrekt. Ich halte es durchaus für besser, nicht unnötig Parameter zu übergeben. Nicht so sehr wegen des Speichers (das sollte in der Tat heute eher weniger relevant sein, wenn man es nicht durch Konstrukte wie von Dir beschrieben auf die Spitze treibt). Aber es macht den Code auch unübersichtlich. Irgendwann verliert man den Überblick, was denn jetzt real benutzt wird und was nur leer irgendwo rumschwirrt. Das betrifft ja nicht nur die Übersichtlichkeit in den jeweiligen Funktionen. Sondern auch die Suche - diese Variablen tauchen dort auf, ohne daß das Sinn ergeben würde.

Von daher bemühe ich selber mich immer, sowas zu vermeiden.

Aber es gibt durchaus auch Situationen, wo ich unbenutzte Variablen habe. Weil ich die früher mal gebraucht hatte, bei einer Codeänderung aber noch nicht die Zeit gefunden hatte, alle Aufrufe um diesen einen Parameter zu kürzen. Oder noch nicht klar ist ob das dauerhaft so bleiben wird, und dann schlepp ich das halt noch etwas mit.

Da ich grundsätzlich mit den W-Compilerwarnungen arbeite stören unbenutzte Parameter natürlich enorm beim compilieren. Das umgehe ich dann immer mit der undokumentierten UnUsed(xParameter) direkt nach den LOACL-Deklarationen. Was dann aber auch etwaige Aufräumaktionen erleichtert. Einfach den Code nach dieser Funktion durchforsten, dann hat man alles beisammen, was eventuell bereinigt werden könnte.

Manfred hat ja nicht geschildert, in welchen Situationen er unbenutzte Parameter mitführt. So akribisch wie der aber immer codet setze ich voraus, daß es hier nicht um Schludrigkeiten oder Faulheit geht.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Ungenutzte Parameter

Beitrag von Manfred »

es ist genau andersherum. Es gibt (noch) Funtkionsaufrufe, die Parameter übergeben, die aber am Ziel nicht benötigt werden. Ich überlege halt nur, ob ich mir jetzt die Mühe mache und danach forsche. Wolfgang C. hatte ja mal ein Tool dafür gabut. Müßte ich nochmal laufen lassen....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Ungenutzte Parameter

Beitrag von Jan »

Manfred,

wenn Du die w-Optionen einschaltest, bekommst Du die doch alle ausgeworfen. Hier also speziell /wu für unbenutzte Variablen. Da muß man nicht mehr lange nach suchen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Ungenutzte Parameter

Beitrag von Manfred »

Jan,
da verwechselst Du etwas.
Bevor es wieder endlos wird.

Code: Alles auswählen

rufemichauf(test,test2,test3)
function rufemichauf()
	     tue was
	     return NIL

jetzt klarer?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Ungenutzte Parameter

Beitrag von Jan »

Manfred,

OK. Das kleine Detail hattest Du bislang unterschlagen. Oder so ausgedrückt daß das bei mir nicht so angekommen war.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Ungenutzte Parameter

Beitrag von Wolfgang Ciriack »

Ja Manfred, lass doch mal den Project_Checker laufen, der müsste dir die Stellen anzeigen :D
Viele Grüße
Wolfgang
Antworten