Hi all,
Thanks.
The discussion is more than enough. I finished my solution.

Regards

On Wed, Apr 15, 2009 at 5:36 PM, Jim Idle <[email protected]> wrote:

>  Mike Preece wrote:
>
> On Apr 8, 3:45 am, Jim Idle <[email protected]> <[email protected]> 
> wrote:
>
>
>  Praveen wrote:
>
>
>  Hi Micev,
>
>
>  T24 programming standards refrains you from calling T24 API's outside
> T24 environment. But still if you insist on calling T24 API's from
> jsh, you can follow this(only if you wish)
> you can initialize the Global COMMON variables and then invoke GLOBUS
> API's. If you're working post T24 R07 release, replace the call to
> GLOBUS.INITIALISE with T24.INITIALISE
> *----------
> SPFFile = 'F.SPF'
> SPFFileHandler = ''
> SPFFileID = 'SYSTEM'
> SPFFileRec = ''
> SPFReadErr = ''
> CALL GLOBUS.INITIALISE
> CALL OPF(SPFFile,SPFFileHandler)
> CALL F.READ(SPFFile,SPFFileID,SPFFileRec,SPFFileHandler,SPFReadErr)
> *---------
>
>
>  I hate to think of the performance overhead of calling asubroutine
> every time you want to do a single READ :-(
>
> Jim
>
>
>  I missed this earlier. Was it a serious concern - or a wind up? How
> expensive is a subroutine call?
>
>  A subroutine is a C function call and as such is fairly inexpensive in and
> of itself. However, when a subroutine is called:
>
> The system must initialize the call heap with any local (C level) variables
> (not too expensive if there are relatively few storage locations, which
> jBASE tries to minimize,
> jBASE must initialize any local jBC variables to the value required for the
> emulation and allocate the storage in some cases such as when the default is
> ""
> jBASE must tear down any jBC variables that were local to the subroutine.
>
> If all variables used in the subroutine are COMMON, then the overhead
> is/can be greatly reduced. But if the subroutine is called a million times
> in a batch program, and if this is compounded with a subroutine call for
> everything, such as getting the next element from a list and so on, then the
> overhead of calling subroutines vs using the native language constructs is
> enormous in relative terms. Obviously, a READ statement goes pretty much
> straight to the runtime and while subroutines are call-by-reference (so at
> least you don't need to copy the READ buffer to return the value), a call to
> the runtime is always going to be better than a call to a subroutine.
>
> On the upside, calling subroutines in jBASE is much less of an overhead
> than it is in say UniVerse, so overall programs using this behavior will be
> lots better under jBASE.
>
> Also, we should remember that some of the reasons for calling T24
> subroutines are to do with security and best practices as well as providing
> more of an API than just reading a file (at least I believe so for most
> things), so the overhead involved may be somewhat necessary.
>
> Jim
>
> >
>
>


-- 
Igor Micev

--~--~---------~--~----~------------~-------~--~----~
Please read the posting guidelines at: 
http://groups.google.com/group/jBASE/web/Posting%20Guidelines

IMPORTANT: Type T24: at the start of the subject line for questions specific to 
Globus/T24

To post, send email to [email protected]
To unsubscribe, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/jBASE?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to