Ungenutzte Parameter
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Ungenutzte Parameter
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.ä.?
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!!
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!!
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Ungenutzte Parameter
Manfred,
wenn Du Parameter übergibst sind die ja in der aufgerufenen Funktion nur LOCAL. Das sollte vermutlich eher weniger Speicherprobleme geben.
Jan
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.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Ungenutzte Parameter
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
Tom
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Ungenutzte Parameter
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
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.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Ungenutzte Parameter
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!!
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!!
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Ungenutzte Parameter
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
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.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Ungenutzte Parameter
Jan,
da verwechselst Du etwas.
Bevor es wieder endlos wird.
jetzt klarer?
da verwechselst Du etwas.
Bevor es wieder endlos wird.
Code: Alles auswählen
rufemichauf(test,test2,test3)
function rufemichauf()
tue was
return NIL
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!!
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!!
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Ungenutzte Parameter
Manfred,
OK. Das kleine Detail hattest Du bislang unterschlagen. Oder so ausgedrückt daß das bei mir nicht so angekommen war.
Jan
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.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2934
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Ungenutzte Parameter
Ja Manfred, lass doch mal den Project_Checker laufen, der müsste dir die Stellen anzeigen
Viele Grüße
Wolfgang
Wolfgang