nfx-datetime 0.1.1
Cross-platform C++ DateTime library with 100-nanosecond precision and ISO 8601 support
Loading...
Searching...
No Matches
benchmark Directory Reference

Detailed Description

Benchmarks


Test Environment

Hardware Configuration

Component Specification
Computer Model Lenovo ThinkPad P15v Gen 3
CPU 12th Gen Intel Core i7-12800H (20 logical, 14 physical cores)
Base Clock 2.80 GHz
Turbo Clock 4.80 GHz
L1 Data Cache 48 KiB (×6 P-cores) + 32 KiB (×8 E-cores)
L1 Instruction Cache 32 KiB (×6 P-cores) + 64 KiB (×2 E-core clusters)
L2 Unified Cache 1.25 MiB (×6 P-cores) + 2 MiB (×2 E-core clusters)
L3 Unified Cache 24 MiB (×1 shared)
RAM DDR4-3200 (32GB)
GPU NVIDIA RTX A2000 4GB GDDR6

Software Configuration

Platform OS Benchmark Framework C++ Compiler nfx-datetime Version
Linux LMDE 7 Google Benchmark v1.9.4 GCC 14.2.0-x64 v0.1.0
Linux LMDE 7 Google Benchmark v1.9.4 Clang 19.1.7-x64 v0.1.0
Windows Windows 10 Google Benchmark v1.9.4 MinGW GCC 14.2.0-x64 v0.1.0
Windows Windows 10 Google Benchmark v1.9.4 Clang-GNU-CLI 19.1.5-x64 v0.1.0
Windows Windows 10 Google Benchmark v1.9.4 Clang-MSVC-CLI 19.1.5-x64 v0.1.0
Windows Windows 10 Google Benchmark v1.9.4 MSVC 19.44.35217.0-x64 v0.1.0

Performance Results

DateTime Operations

Operation Linux GCC Linux Clang Windows MinGW GCC Windows Clang-GNU-CLI Windows Clang-MSVC-CLI Windows MSVC
Construct from Y-M-D 9.16 ns 11.8 ns 15.0 ns 9.80 ns 13.5 ns 19.5 ns
Construct from Y-M-D-H-M-S 9.77 ns 10.1 ns 15.5 ns 10.5 ns 13.8 ns 19.2 ns
DateTime::now() 36.0 ns 40.7 ns 131 ns 78.8 ns 94.6 ns 127 ns
DateTime::utcNow() 13.0 ns 13.8 ns 57.8 ns 18.2 ns 26.0 ns 19.9 ns
Parse ISO 8601 Basic 50.0 ns 45.9 ns 76.5 ns 49.4 ns 64.0 ns 77.4 ns
Parse ISO 8601 Extended 65.1 ns 56.7 ns 97.7 ns 56.2 ns 74.3 ns 90.0 ns
ToString ISO 8601 265 ns 256 ns 510 ns 1270 ns 1521 ns 1381 ns
toIso8601Extended 369 ns 361 ns 695 ns 1672 ns 2079 ns 1925 ns
Add TimeSpan 0.105 ns 0.210 ns 0.180 ns 0.217 ns 0.332 ns 0.711 ns
Subtract TimeSpan 0.105 ns 0.209 ns 0.176 ns 0.247 ns 0.274 ns 0.711 ns
Subtract DateTime 0.213 ns 0.218 ns 0.347 ns 0.225 ns 0.274 ns 0.698 ns
ToEpochSeconds 0.105 ns 0.210 ns 0.169 ns 0.448 ns 0.529 ns 0.872 ns
FromEpochSeconds 0.105 ns 0.210 ns 0.168 ns 0.211 ns 0.262 ns 0.698 ns
GetComponents 21.1 ns 25.8 ns 29.5 ns 26.1 ns 29.9 ns 76.7 ns
Comparison 0.335 ns 0.320 ns 0.504 ns 0.334 ns 0.378 ns 0.698 ns

DateTimeOffset Operations

Operation Linux GCC Linux Clang Windows MinGW GCC Windows Clang-GNU-CLI Windows Clang-MSVC-CLI Windows MSVC
Construct with Offset 9.63 ns 9.92 ns 9.54 ns 10.8 ns 13.5 ns 19.5 ns
DateTimeOffset::now() 34.5 ns 40.6 ns 118 ns 81.6 ns 81.7 ns 115 ns
Parse with Offset 66.2 ns 59.4 ns 66.3 ns 72.3 ns 75.2 ns 103 ns
Parse UTC 52.3 ns 44.8 ns 53.7 ns 56.4 ns 60.2 ns 90.0 ns
ToUTC 0.695 ns 0.465 ns 0.468 ns 0.470 ns 0.507 ns 0.952 ns
ToOffset 0.933 ns 0.489 ns 0.705 ns 0.556 ns 0.704 ns 0.963 ns
GetUTCDateTime 0.296 ns 0.442 ns 0.305 ns 0.464 ns 0.467 ns 0.984 ns
ToString 293 ns 282 ns 416 ns 1603 ns 1644 ns 1800 ns
Add TimeSpan 0.212 ns 0.209 ns 0.211 ns 0.227 ns 0.235 ns 0.715 ns
Subtract DateTimeOffset 0.223 ns 0.282 ns 0.224 ns 0.350 ns 0.348 ns 0.732 ns
Comparison_DifferentOffsets 0.305 ns 0.369 ns 0.331 ns 0.411 ns 0.395 ns 0.750 ns

TimeSpan Operations

Operation Linux GCC Linux Clang Windows MinGW GCC Windows Clang-GNU-CLI Windows Clang-MSVC-CLI Windows MSVC
FromHours 0.106 ns 0.210 ns 0.110 ns 0.222 ns 0.209 ns 0.785 ns
FromMinutes 0.105 ns 0.211 ns 0.108 ns 0.218 ns 0.210 ns 0.785 ns
FromSeconds 0.105 ns 0.212 ns 0.111 ns 0.216 ns 0.220 ns 0.785 ns
FromMilliseconds 0.105 ns 0.210 ns 0.109 ns 0.215 ns 0.218 ns 0.767 ns
Parse ISO 8601 Simple 41.1 ns 37.5 ns 59.7 ns 81.6 ns 83.7 ns 128 ns
Parse ISO 8601 with Days 39.8 ns 36.8 ns 58.2 ns 77.6 ns 76.7 ns 117 ns
Parse Numeric 22.7 ns 13.1 ns 33.3 ns 46.4 ns 46.0 ns 62.8 ns
ToString ISO 8601 142 ns 147 ns 176 ns 757 ns 750 ns 858 ns
Add 0.105 ns 0.212 ns 0.107 ns 0.217 ns 0.220 ns 0.785 ns
Subtract 0.105 ns 0.214 ns 0.109 ns 0.218 ns 0.215 ns 0.767 ns
Negate 0.105 ns 0.213 ns 0.111 ns 0.218 ns 0.220 ns 0.785 ns
TotalHours 0.105 ns 0.214 ns 0.111 ns 0.219 ns 0.220 ns 0.774 ns
TotalSeconds 0.105 ns 0.211 ns 0.111 ns 0.218 ns 0.215 ns 0.785 ns
TotalMilliseconds 0.105 ns 0.210 ns 0.110 ns 0.218 ns 0.254 ns 0.785 ns
Comparison 0.105 ns 0.210 ns 0.110 ns 0.216 ns 0.225 ns 0.785 ns

Benchmarks executed on November 17, 2025