-
Auch bei Returnwerten ist das eher unkritisch da sie auf dem Stack angelegt und nach der Zuweisung wieder verworfen werden.
Sicherlich muss ein "Return Wert" das Ergebnis auf dem Stack ablegen.
Da lokale Variablen im automatischen Speicher liegen muss dieser Wert ja "gerettet werden" um nach oben weitergegeben und wieder zerstört zu werden.
In obigem Bespiel ist der Effekt eigentlich egal, da in beiden Fällen identischer Platz verbraten wird.
Ein "Return Var1 + Var2" legt ein Zwischenergebnis an, das dann durch den Return wieder kopiert werden muss. Das Zwischenergebnis kann man natürlich auch selber anlegen und der Return kopiert dieses dann wieder.
Sehr große Zwischenergebnisse bewegen auch tatsächlich viele Bytes und zwar unabhängig davon, ob bei Varlen-Feldern alles gebraucht wird oder nicht.
Der Type Varlen (egal ob SQL oder RPG) wird nur durch Laufzeitroutinen und nicht native durch MI unterstützt.
Das Feld wird nämlich immer bis am Ende mit Leerzeichen aufgefüllt!
Dies kann man sehr schön im Debugger sehen (X-Ausgabe) oder in COBOL.
Nach der Zuweisung eines kurzen Wertes in die Variable, die vorher länger gefüllt war wird der Rest des Feldes tatsächlich initialisiert!
In COBOL wird tatsächlich eine Struktur mit der Länge (4-Byte COMP-4) und dem Inhalt definiert. COBOL unterstützt den Typ nicht native, man muss das Feld füllen und die Länge anschließend selber ausrechnen. Genau dies macht die Runtime von SQL und RPGLE.
CHAR-Felder sind also auch schneller als VARCHAR-Felder.
Man sollte sich also schon überlegen, ob Routinen dieser Art vielleicht besser die Ergebnisfelder exportieren und somit statisch anlegen. Jeder Caller ist für die schnelle Entsorgung des Ergebnis sowieso verantwortlich und Returnwerte mit 16MB sollten sowieso vermieden werden.
Similar Threads
-
By Etherion in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 03-09-14, 11:04
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 18-05-14, 16:26
-
By Kirsten Steer in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 17-10-02, 08:59
-
By Newbie in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 04-07-02, 08:19
-
By Kent in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 19-06-01, 10:45
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks