---
name: "B::TerseSize"
section: "3pm"
platform: "linux"
package: "libb-size-perl"
version: "0.05-1"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/B::TerseSize"
---

# B::TerseSize(3pm)

Printing info about ops and their (estimated) size

## NAME

B::TerseSize - Printing info about ops and their (estimated) size

## SYNOPSIS

```
        perl -MO=TerseSize[,OPTIONS] foo.pl
```

## DESCRIPTION

The *B::Size* and *B::TerseSize* modules attempt to measure the size  of Perl op codes.  The output of **B::TerseSize** is similar to that of  *B::Terse*, but includes the size of each OP in the tree and the PADLIST (subroutine lexical variables).  The module can be run just as  other compiler backends or used via *Apache::Status* (version 2.02 and higher).

If the *Apache::Status* *StatusTerseSize* option is enabled, there will be a main menu item added, "Memory Usage".  Clicking on this link  will cause *B::TerseSize* to produce a summary of package memory usage.  This summary can take quite a while to produce, as each package subroutine syntax tree will be walked, adding up the information.  This information will be cached, so running httpd in *-X* (non-forking mode) is a good choice.

When browsing the Apache::Status "Symbol Table Dump", a "Memory Usage" link will be at the bottom of each page.  These summaries also include measurements of package global variables.

The Apache::Status symbol table browser will also provide an option to  dump a subroutine tree along with the other subroutine options.

## CAVEATS

The memory measurements are only an estimate.  But, chances are, if a  measurement is not accurate, it is smaller than the actual size.

The "execution order" option under Apache::Status can only be run once unless you are using Perl 5.6.0+ or apply the *patches/b\_clearsym\_60.pat* to older Perls.

## SEE ALSO

B(3), *B::Size*(3), *B::LexInfo*(3), *Apache::Status*(3)

## AUTHOR

Doug MacEachern based in part on B::Terse by Malcolm Beattie
