It's been a while since I've posted here.
I can't believe I've never noticed this before, but it seems like PCPERFORM has a memory leak. We've got a process running that does thousands of PCPERFORMs during a session, and performance was deteriorating over time. I opened up the Windows process manager and noticed NTVDM was using over 500 MB of memory. Since then, I've been trying to track down the source of the memory leak, and it seems to be PCPERFORM. I've just been running a loop that basically runs a null batch program, and after a couple thousand iterations, the memory leak added up to about 250 bytes per PCPERFORM. Any suggestions?
P.S. This is Arev 2.12.
Have you tested an alternative:
PC EXIT routine
?
What happens if you use EMS Magic?
Same thing.
It looks like the bulk of the shelling is done to create subdirectories. Is there a way to create a subdirectory from Arev without spawning a DOS shell?
http://www.sprezzatura.com/library/revmedia/vol2-iss4-art1.php
World leaders in all things RevSoft
Thanks. I guess I should have known that already.
To answer your question, the DOS session and its environment block is never released by Windows. The offsets of AREV sessions in memory are 256 bytes different for Windows as against the same exe in raw DOS sessions.
Can you instead write a DOS batch file with those thousands of entries and run it as a large batch?
In fact, that's what is done after the documents are created. They are all gzipped and then zipped up in batch. The problem was in creating the directory structure, which has been resolved with the solution posted by The Sprezzatura Group. The process also runs much faster now.