Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

Perf::ARM
Perl extension wrapper for the ARM 2.0 implementation

Perf::ARM - Perl extension wrapper for the ARM 2.0 implementation


NAME

Perf::ARM - Perl extension wrapper for the ARM 2.0 implementation


SYNOPSIS


  use Perf::ARM;

  my ($appl_id,$tran_handle, $tran_id, $rc);

  ($appl_id=Perf::ARM::arm_init( "$0", "*", 0,0,0)) ||

    die "arm_init() failed \n";

  $tran_id=Perf::ARM::arm_getid($appl_id, "simple_tran",

    "detail_$$", 0,0,0);

  $tran_handle=Perf::ARM::arm_start($tran_id, 0,0,0);

  #  do the unit of work to be measured

  &do_my_work(@my_args)

  $rc=Perf::ARM::arm_stop($tran_handle, 0, 0,0,0);

  $rc=Perf::ARM::arm_end($appl_id, 0,0,0);


DESCRIPTION

This serves as a simple wrapper around the ARM C routines:

arm_init(char *,char *,long ,char *,long ); [ returns long ]

arm_getid(long ,char *,char *,long ,char *,long ); [ returns long ]

arm_start(long ,long ,char *,long ); [ returns long ]

arm_update(long ,long ,char *,long ); [ returns long ]

arm_stop(long ,long ,long ,char *,long ); [ returns long ]

arm_end(long ,long ,char *,long ); [ returns long ]


Exported functions, with ARM defines


  extern arm_int32_t  arm_init(

    char*        appl_name,

    char*        appl_user_id,

    arm_int32_t  flags,

    char*        data,

    arm_int32_t  data_size);

  extern arm_int32_t  arm_getid(

    arm_int32_t  appl_id,

    char*        tran_name,

    char*        tran_detail,

    arm_int32_t  flags,

    char*        data,

    arm_int32_t  data_size);

  extern arm_int32_t  arm_start(

    arm_int32_t  tran_id,

    arm_int32_t  flags,

    char*        data,

    arm_int32_t  data_size);

  extern arm_int32_t  arm_update(

    arm_int32_t  start_handle,

    arm_int32_t  flags,

    char*        data,

    arm_int32_t  data_size);

  extern arm_int32_t  arm_stop(

    arm_int32_t  start_handle,

    arm_int32_t  tran_status,

    arm_int32_t  flags,

    char*        data,

    arm_int32_t  data_size);

  extern arm_int32_t  arm_end(

    arm_int32_t  appl_id,

    arm_int32_t  flags,

    char*        data,

    arm_int32_t  data_size);


AUTHOR

bryan_backer@hp.com


BUGS, LIMITATIONS

The module's tests do not currently pass if the system has the no-operation (NULL) shared libraries, as they return zero for all calls.

On some HP-UX builds of perl with the usemymalloc build flag set to 'y', Perf::ARM dumps core. The cause of this problem is not fully understood. If the problem occurs, rebuild the perl with usemymalloc='n'. Running perl -V will show the usemymalloc setting for your perl.


TO DO


    - create a useful subset of tests that work with the null libarm

      from the ARM SDK, allowing 'make test' to pass on those systems.

    - integrate David Carter's Inline suggestions

    - integrate David Carter's function name and null parameter

      shortening suggestions

    - build an object interface similar to the ARM 3.0 Java interface

      described at http://regions.cmg.org/regions/cmgarmw/ARM30.html


SEE ALSO

ARM FAQ at http://www.cmg.org/regions/cmgarmw/armfaq.html

Glance docs at http://www.openview.hp.com/products/

CMG ARM Working Group info page at http://www.cmg.org/regions/cmgarmw/

HP-UX: /opt/perf/include/arm.h or /usr/include/arm.h

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy