Is this an ILE C main program? How was it created, with CRTBNDC?
CRTBNDC defaults to ACTGRP(*NEW), which imposes significant overhead if
you are calling the same program over and over again. The CRTBNDC
command does not provide any way to change the ACTGRP parameter, so you
must use CRTCMOD and CRTPGM instead, and then you can specify
ACTGRP(name) to create a named activation group.
Or, create a service program, with your C procedure that you need to
call repeatedly, and specify ACTGRP(name) on the CRTSRVPGM command, and
then create a very small "main" program (wrapper) that also runs in the
same activation group, and calls the procedure in the service program.
(Service programs are initialized in an activation group, and remain
"activated" until either "end of job" or until you explicitly destroy
the activation group, e.g. using the RCLACTGRP CL command.)
What procedures or functions within QC2POSIX are you using? If you can
provide some details about what your program is doing, then perhaps
someone can comment on how to reduce this "overhead".
All the best,
Mark S. Waterbury
> Zvi Kave wrote:
I have ILE C program which is called many times every second.
I found that QC2POSIX takes lot of CPU (40%).
Someone knows how to make ILE C program resident in memory?