NAME
Acme::CPANModules::CalculatingDayOfWeek - Modules to calculate day of
week
VERSION
This document describes version 0.001 of
Acme::CPANModules::CalculatingDayOfWeek (from Perl distribution
Acme-CPANModules-CalculatingDayOfWeek), released on 2019-11-20.
SYNOPSIS
To run benchmark with default option:
% bencher --cpanmodules-module CalculatingDayOfWeek
To run module startup overhead benchmark:
% bencher --module-startup --cpanmodules-module CalculatingDayOfWeek
For more options (dump scenario, list/include/exclude/add participants,
list/include/exclude/add datasets, etc), see bencher or run "bencher
--help".
DESCRIPTION
Modules to calculate day of week.
BENCHMARKED MODULES
Version numbers shown below are the versions used when running the
sample benchmark.
Date::DayOfWeek 1.22
Time::DayOfWeek 1.8
DateTime 1.39
Date::Calc 6.4
Time::Moment 0.38
BENCHMARK PARTICIPANTS
* Date::DayOfWeek::dayofweek (perl_code)
Function call template:
Date::DayOfWeek::dayofweek(<day>, <month>, <year>)
* Time::DayOfWeek::DoW (perl_code)
Function call template:
Time::DayOfWeek::DoW(<year>, <month>, <day>)
* DateTime (perl_code)
Code template:
DateTime->new(year=><year>, month=><month>, day=><day>)->day_of_week
* Date::Calc::Day_of_Week (perl_code)
Function call template:
Date::Calc::Day_of_Week(<year>, <month>, <day>)
* Time::Moment (perl_code)
Code template:
Time::Moment->new(year => <year>, month => <month>, day => <day>)->day_of_week
BENCHMARK DATASETS
* date1
SAMPLE BENCHMARK RESULTS
Run on: perl: *v5.24.0*, CPU: *Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
(4 cores)*, OS: *GNU/Linux LinuxMint version 18.2*, OS kernel: *Linux
version 4.8.0-53-generic*.
Benchmark with default options ("bencher --cpanmodules-module
CalculatingDayOfWeek"):
#table1#
{dataset=>"date1"}
+----------------------------+-----------+-----------+------------+---------+---------+
| participant | rate (/s) | time (μs) | vs_slowest | errors | samples |
+----------------------------+-----------+-----------+------------+---------+---------+
| DateTime | 44000 | 23 | 1 | 5.3e-08 | 20 |
| Date::DayOfWeek::dayofweek | 630000 | 1.59 | 14.2 | 7.9e-10 | 22 |
| Date::Calc::Day_of_Week | 753000 | 1.33 | 17 | 3.2e-10 | 35 |
| Time::DayOfWeek::DoW | 1100000 | 0.89 | 25 | 1.2e-09 | 21 |
| Time::Moment | 2974870 | 0.336149 | 67.0065 | 0 | 20 |
+----------------------------+-----------+-----------+------------+---------+---------+
Benchmark module startup overhead ("bencher --cpanmodules-module
CalculatingDayOfWeek --module-startup"):
#table2#
+---------------------+-----------+------------------------+------------+-----------+---------+
| participant | time (ms) | mod_overhead_time (ms) | vs_slowest | errors | samples |
+---------------------+-----------+------------------------+------------+-----------+---------+
| DateTime | 98 | 95.3 | 1 | 0.00021 | 21 |
| Date::Calc | 17 | 14.3 | 5.7 | 2.5e-05 | 20 |
| Time::Moment | 7 | 4.3 | 14 | 1.3e-05 | 20 |
| Time::DayOfWeek | 5.9 | 3.2 | 17 | 2.3e-05 | 20 |
| Date::DayOfWeek | 5.2 | 2.5 | 19 | 8.3e-06 | 21 |
| perl -e1 (baseline) | 2.7 | 0 | 36 | 7e-06 | 20 |
+---------------------+-----------+------------------------+------------+-----------+---------+
To display as an interactive HTML table on a browser, you can add option
"--format html+datatables".
INCLUDED MODULES
* Date::DayOfWeek
Both Date::DayOfWeek and Time::DayOfWeek are lightweight modules.
* Time::DayOfWeek
Both Date::DayOfWeek and Time::DayOfWeek are lightweight modules.
This module offers cryptic and confusing function names: "DoW"
returns 0-6, "Dow" returns 3-letter abbrev.
* DateTime
Compared to Date::DayOfWeek and Time::DayOfWeek, DateTime is a
behemoth. But it provides a bunch of other functionalities as well.
* Date::Calc
Date::Calc is a nice compromise when you want something that is more
lightweight and does not need to be as accurate as DateTime.
* Time::Moment
Time::Moment is also a nice alternative to DateTime. Although it's
not as featureful as DateTime, it is significantly more lightweight.
Compared to Date::Calc, Time::Moment's API is closer to DateTime's.
Being an XS module, it's also faster.
HOMEPAGE
Please visit the project's homepage at
<https://metacpan.org/release/Acme-CPANModules-CalculatingDayOfWeek>.
SOURCE
Source repository is at
<https://github.com/perlancar/perl-Acme-CPANModules-CalculatingDayOfWeek
>.
BUGS
Please report any bugs or feature requests on the bugtracker website
<https://rt.cpan.org/Public/Dist/Display.html?Name=Acme-CPANModules-Calc
ulatingDayOfWeek>
When submitting a bug or request, please include a test-file or a patch
to an existing test-file that illustrates the bug or desired feature.
SEE ALSO
Acme::CPANModules - about the Acme::CPANModules namespace
cpanmodules - CLI tool to let you browse/view the lists
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2019 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.