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