1#!/usr/bin/perl
2use strict;
3use warnings;
4
5use DateTime      qw[];
6use Time::Moment  qw[];
7use Time::Piece   qw[];
8
9use Devel::Size   qw[total_size];
10use Storable      qw[nfreeze];
11
12my $tm = Time::Moment->now;
13my $tp = Time::Piece::localtime();
14my $dt = DateTime->now;
15my $lt = [localtime()];
16
17print  "Comparing instance size:\n";
18printf "Time::Moment ............... : %4d B\n", total_size($tm);
19printf "Time::Piece ................ : %4d B\n", total_size($tp);
20printf "localtime() ................ : %4d B\n", total_size($lt) - total_size([]);
21printf "DateTime ................... : %4d B\n", total_size($dt);
22printf "DateTime w/o zone and locale : %4d B\n", total_size do {
23    my $clone = $dt->clone;
24    delete @{$clone}{qw(time_zone locale)}; $clone;
25};
26
27print  "\nComparing Storable::nfreeze() size:\n";
28printf "Time::Moment ............... : %4d B\n", length nfreeze $tm;
29printf "DateTime ................... : %4d B\n", length nfreeze $dt;
30
31