-
VALUE geht nicht bei externen Aufrufen, da geht dann nur CONST, da die Aufrufart mit Value generell eine andere ist.
-
 Zitat von Fuerchau
VALUE geht nicht bei externen Aufrufen, da geht dann nur CONST, da die Aufrufart mit Value generell eine andere ist.
VALUE geht sehr wohl bei externen Prozedur/Funktions-Aufrufen!
Es geht allerdings NICHT bei Programm-Aufrufen!
Was allerdings bei großen Parametern (Datenstruktur oder nicht) zu berücksichtigen ist, ist, dass bei VALUE immer eine Kopie des Original-Feldes/Datenstruktur übergeben wird, wärend bei CONST nur ein Pointer übergeben wird. Ein Duplikat des Original-Feldes wird nur erzeugt, wenn die Definition unterschiedliche ist. Bei großen Strukturen, kann dieser Unterschied sich bei der Performance bemerkbar machen.
Birgitta
-
Bei CONST wird ebenso eine Kopie erzeugt, da sonst das Aufgerufene externe Programm, dass ja von CONST nichts weiß (wie bei CLP), sonst Änderungen vornehmen könnte.
Desweiteren wird durch die Kopie wieder sichergestellt, das die Länge der Übergabe wieder passt, wie schon gesagt. CONST heißt ja gerade, dass der Gerufene nichts ändern darf und das geht nur per Kopie.
Der wesentliche Unterschied zwischen Value und Const/ByRef ist die Überabe-Art:
Bei externen CALL's geht es immer per Reference, bei externen/internen CALPRC's geht Value tatsächlich in den Stack (automatic Storage), während ByRef im static Storage liegt.
Was die Begriffe angeht so sind gebundenen externe Prozeduren dann wie interne Aufrufe zu sehen.
Und was die Performance angeht, so sind 1000 Calls mit Const sicherlich schneller als eine I-O-Anweisung. Das gehört dann so in die Richtung Microoptimierung (von 1 Stunde Laufzeit 5 Sekunden gespart, die aber noch nicht mal gesichert sein können).
-
 Zitat von Fuerchau
Bei CONST wird ebenso eine Kopie erzeugt, da sonst das Aufgerufene externe Programm, dass ja von CONST nichts weiß (wie bei CLP), sonst Änderungen vornehmen könnte.
Desweiteren wird durch die Kopie wieder sichergestellt, das die Länge der Übergabe wieder passt, wie schon gesagt. CONST heißt ja gerade, dass der Gerufene nichts ändern darf und das geht nur per Kopie.
Der wesentliche Unterschied zwischen Value und Const/ByRef ist die Überabe-Art:
Bei externen CALL's geht es immer per Reference, bei externen/internen CALPRC's geht Value tatsächlich in den Stack (automatic Storage), während ByRef im static Storage liegt.
Was die Begriffe angeht so sind gebundenen externe Prozeduren dann wie interne Aufrufe zu sehen.
Und was die Performance angeht, so sind 1000 Calls mit Const sicherlich schneller als eine I-O-Anweisung. Das gehört dann so in die Richtung Microoptimierung (von 1 Stunde Laufzeit 5 Sekunden gespart, die aber noch nicht mal gesichert sein können).
... so schön ist die RPG Welt nun mal nicht wirklich. CONST übergibt auch nur per reference und ist damit nur "hopefully const" und kann durchaus unterlaufen werden.
Was die immer wieder beschworenen Performance Argumente angeht, die für Huddelprogrammierung als Argument ins Feld geführt werden, da lache ich mich schon seit Jahren schlapp, wenn was zu langsam ist, dann liegt das an fehlenden Indexen, krudem Programm Design und verquerer Logik.
D*B
Similar Threads
-
By BeRe in forum Intern - Hilfe - Feedback - Tests-Forum
Antworten: 39
Letzter Beitrag: 27-11-13, 15:49
-
By Gimli in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 11-03-03, 10:16
-
By DEVJO in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 05-03-03, 07:18
-
By Gimli in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 04-03-03, 09:47
-
By Gimli in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 03-03-03, 10:23
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