# NAME

Filesys::DiskUsage::Fast - A fast disk usage counter (du) with XS

# SYNOPSIS

    use Filesys::DiskUsage::Fast qw(du);
    

    my $total = du( $dir );
    my $total = du( $dir1, $dir2, ... );

# DESCRIPTION

A simple but fast disk usage counter implemented as XS module.

# FUNCTIONS

- __du()__

    Returns total byte number contained in directories specified.

        my $total = du("/usr/local");
        my $total = du("/bin", "/sbin", "/usr/bin", "/usr/sbin");

# GLOBAL VARIABLES

- __$ShowWarnings__

    If true, errors will be warn()ed. Default is true.
    Set false to suppress warnings (not found, permission denied etc).

        local $Filesys::DiskUsage::Fast::ShowWarnings = 0;
        du(...);

- __$SectorSize__

    If > 0, the specified size is used to calculate the block size.
    Default value is 0, returns real occupied size.

        local $Filesys::DiskUsage::Fast::SectorSize = 4096;
        du(...);

# PERFORMANCE

    s/iter   pp   xs
 pp   1.35   -- -85%
 xs  0.197 584%   --

tested on a directory contains around 11GB 3300+ files, CentOS 5 (HDD).

# CAVEAT

All symbolic links always result 0 byte. Block, FIFO and other special files may not be counted accurately.

# DEPENDENCY

None

# SEE ALSO

Filesys::DiskUsage, Number::Bytes::Human

# REPOSITORY

https://github.com/ryochin/p5-filesys-diskusage-fast

# AUTHOR

Ryo Okamoto, `<ryo at aquahill dot net>`

# COPYRIGHT & LICENSE

Copyright 2012 Ryo Okamoto, All Rights Reserved.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
