|
Von: thomas.raddatz@xxxxxxyou
An: rpg400-l@xxxxxxxxxxxx,
Datum: 26.02.2014 09:56
Betreff: RE: Dynamic Storage
Gesendet von: rpg400-l-bounces@xxxxxxxxxxxx
Walter,
You may also consider to create your own heap using CEE APIs. This way
do not need to take care about to free each memory pointer, but discardthe
the complete heap. In order to make it more comfortable, you can wrap
CEE APIs in your own RPG procedures.job.
Memory usage is almost the same as for the traditional way:
CLLE/CEE RPG/BIFs RPG/CEE
TEST_F234 TEST_F235 TEST_F236
Initial Memory Usage 12.288 12.288 12.288
Before Create Heap 12.288 n/a 12.288
After Create Heap 24.576 12.288 24.576
After Get Heap Storage 8.417.280 8.404.992 8.417.280
After Reallocate Storage 27.283.456 27.271.168 27.283.456
After Free Storage 27.283.456 27.271.168 27.283.456
After Discard Heap 12.288 n/a 12.288
Back on The Command Line 12.288 27.271.168* 12.288
Basic Heap Size: 12.288
* Size is stable regardless of how many
times the program is called.
Using the CEE APIs takes 12.288 bytes additional memory for each heap
created.
You find the details and the source code in the attached Excel file.
Last but not least, I used DSPMEMUSG to the size of the allocated heap
memory.
http://www.tools400.de/Downloads/Freeware/Tools/dspmemusg.zip
Thomas.
rpg400-l-bounces@xxxxxxxxxxxx schrieb am 25.02.2014 19:30:37:
Von: wbellisio@xxxxxxxxxxx
An: rpg400-l@xxxxxxxxxxxx,
Datum: 25.02.2014 19:31
Betreff: RE: Dynamic Storage
Gesendet von: rpg400-l-bounces@xxxxxxxxxxxx
Thank you Barbara. That is the exact answer I was looking for.
I'll be calling the program one last time to set on LR and execute
the dealloc to free the dynamic storage, since it is an interactive
mailto:rpg400-l-bounces@xxxxxxxxxxxx
Is there an easy way "see" the heap storage currently in use for the
activation group (in my example, the default activation group)?
Walter
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [
] On Behalf Of Barbara Morris
Sent: Tuesday, February 25, 2014 1:21 PM
To: RPG400-L@xxxxxxxxxxxx
Subject: Re: Dynamic Storage
On 2014-02-24 15:15, Walter Bellisio wrote:
... Then a RCLRSC was executed. - Finally, when the same RPG program
was run again with a breakpoint at the first statement, that the
arrays pointer was set to null ...
The RCLRSC caused the RPG program to be reinitialized on its next
call, which caused the pointers to be set to null. But the heap
storage was not released.
This situation, where you lose the ability to free the storage, is
known as a "memory leak". Nothing has a pointer to the storage so it
can't be used, but it remains allocated until the job ends.
--
Barbara
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L) mailing list To post a message email: RPG400-
L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
--
IMPORTANT NOTICE:
This email is confidential, may be legally privileged, and is for the
intended recipient only. Access, disclosure, copying, distribution, or
reliance on any of it by anyone else is prohibited and may be a criminal
offence. Please delete if obtained in error and email confirmation
to the sender.--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.