Skip to main content

VBC 4.5 - Slow load time of process using lots of shared libraries

  • February 16, 2013
  • 0 replies
  • 0 views

Problem:

  • Product Name: VisiBroker for C
  • Product Version: 4.5
  • Product Component: ORB
  • Platform/OS Version: HP-UX 11.11

When running VBC 4.5 process on HPUX 11.11, it is experiencing long load times due to liborb_r.sl spending a long time intializing. The process links in about 10 shared libraries containing idl2cpp generated stubs for interfaces. For test purposes, the process was not calling any application code and this process took about 6 seconds to start up. Upon running the process through Quantify it is observed that about half of the time is spent in the _shlInit for liborb_r.sl.

Quantify detail:

Function name: _shlInit[liborb_r.sl]

Filename: /opt/vbroker45p34debug/lib/liborb_r.sl

Called: 1 time

Function time: 7 cycles (0.00% of .root.)

Function descendendants time: 2729750 cycles (53.25% of .root.)

How can the orb initialization time be shortened ?

Resolution:

The slow load time is witnessed on HP-UX 11 platform and is caused by the HP-UX loader when a process is using lots of shared libraries. Using chatr to change the following attribute of the executable, speeds up the load time :

chatr gst enable

From the man page of chatr on HP-UX 11 :

>>>>

.... chatr - change program's internal attributes

.... gst flag Control whether the global symbol table hash mechanism is used to look up values of symbol import/export entries. The two flag values, enable and disable, respectively enable and disable use of the global symbol table hash mechanism. The default is disable.

....

 


#VisiBroker
#Security