Skip to content

[Benchmark X64] [MihaZupan] Remove more unsafe code from Uri internals #1614

@MihuBot

Description

@MihuBot

Job completed in 1 hour 2 minutes (remote runner delay: 49 seconds).

Using arguments: benchmark Perf_Uri -medium -NoPRLink

System.Tests.Perf_Uri
BenchmarkDotNet v0.14.1-nightly.20250107.205, Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish)
AMD EPYC 9V74, 1 CPU, 8 logical and 4 physical cores
MediumRun : .NET 10.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Job=MediumRun  IterationCount=15  LaunchCount=2
WarmupCount=10
Method Toolchain input Mean Error Ratio Allocated Alloc Ratio
ParseAbsoluteUri Main ? 166.1814 ns 0.5861 ns 1.00 304 B 1.00
ParseAbsoluteUri PR ? 168.5380 ns 1.1001 ns 1.01 304 B 1.00
DnsSafeHost Main ? 173.7048 ns 4.0725 ns 1.00 328 B 1.00
DnsSafeHost PR ? 164.8996 ns 0.8367 ns 0.95 328 B 1.00
BuilderToString Main ? 71.5654 ns 1.2860 ns 1.00 216 B 1.00
BuilderToString PR ? 69.5725 ns 0.0647 ns 0.97 216 B 1.00
UriBuilderReplacePort Main ? 65.6175 ns 0.3750 ns 1.00 216 B 1.00
UriBuilderReplacePort PR ? 66.2976 ns 1.3258 ns 1.01 216 B 1.00
GetComponents Main ? 10.6229 ns 0.0937 ns 1.00 80 B 1.00
GetComponents PR ? 10.8516 ns 0.1163 ns 1.02 80 B 1.00
PathAndQuery Main ? 0.9056 ns 0.1188 ns 1.05 - NA
PathAndQuery PR ? 0.8215 ns 0.0620 ns 0.95 - NA
EscapeDataString Main {{{{{{{{{{{{(...){{{{{{{{{{{{ [1000] 4,673.8030 ns 6.5694 ns 1.00 6024 B 1.00
EscapeDataString PR {{{{{{{{{{{{(...){{{{{{{{{{{{ [1000] 4,695.6469 ns 40.8134 ns 1.00 6024 B 1.00
CombineAbsoluteRelative Main /new/path 92.0675 ns 0.5477 ns 1.00 200 B 1.00
CombineAbsoluteRelative PR /new/path 94.4632 ns 1.6609 ns 1.03 200 B 1.00
UnescapeDataString Main %E4%BD%A0%E5%A5%BD 37.3165 ns 0.1255 ns 1.00 32 B 1.00
UnescapeDataString PR %E4%BD%A0%E5%A5%BD 38.1200 ns 0.1100 ns 1.02 32 B 1.00
EscapeDataString Main a{üa{üa{üa{ü(...)a{üa{üa{üa{ü [999] 7,328.8241 ns 55.2790 ns 1.00 6688 B 1.00
EscapeDataString PR a{üa{üa{üa{ü(...)a{üa{üa{üa{ü [999] 7,238.8281 ns 18.7705 ns 0.99 6688 B 1.00
EscapeDataString Main aaaaaaaaaaaa(...)aaaaaaaaaaaa [1000] 27.3352 ns 0.6744 ns 1.00 - NA
EscapeDataString PR aaaaaaaaaaaa(...)aaaaaaaaaaaa [1000] 26.6049 ns 0.1424 ns 0.97 - NA
UnescapeDataString Main abc%20def%20ghi%20 29.5808 ns 0.0277 ns 1.00 48 B 1.00
UnescapeDataString PR abc%20def%20ghi%20 29.9914 ns 0.2950 ns 1.01 48 B 1.00
Ctor Main http://dot.net 49.7927 ns 0.1819 ns 1.00 56 B 1.00
Ctor PR http://dot.net 49.9968 ns 0.0256 ns 1.00 56 B 1.00
CtorIdnHostPathAndQuery Main http://dot.ne(...)alue#fragment [43] 185.1049 ns 1.7632 ns 1.00 248 B 1.00
CtorIdnHostPathAndQuery PR http://dot.ne(...)alue#fragment [43] 195.8800 ns 0.7300 ns 1.06 248 B 1.00
Ctor Main http://höst.with.ünicode 219.9153 ns 5.5543 ns 1.00 256 B 1.00
Ctor PR http://höst.with.ünicode 219.8138 ns 4.3970 ns 1.00 256 B 1.00
CtorIdnHostPathAndQuery Main http://höst.w(...)alue#fragment [53] 1,051.5473 ns 7.1945 ns 1.00 936 B 1.00
CtorIdnHostPathAndQuery PR http://höst.w(...)alue#fragment [53] 1,073.5710 ns 2.6858 ns 1.02 936 B 1.00
CtorIdnHostPathAndQuery Main http://host/ 111.9771 ns 2.4199 ns 1.00 200 B 1.00
CtorIdnHostPathAndQuery PR http://host/ 112.5333 ns 1.5538 ns 1.01 200 B 1.00
CtorIdnHostPathAndQuery Main http://host/p(...)s?key=ünicode [50] 467.2619 ns 3.4740 ns 1.00 752 B 1.00
CtorIdnHostPathAndQuery PR http://host/p(...)s?key=ünicode [50] 477.4545 ns 13.0679 ns 1.02 752 B 1.00
CtorIdnHostPathAndQuery Main http://host/p(...)es?key=va lue [49] 276.4820 ns 1.2910 ns 1.00 296 B 1.00
CtorIdnHostPathAndQuery PR http://host/p(...)es?key=va lue [49] 286.7109 ns 2.9624 ns 1.04 296 B 1.00
CtorIdnHostPathAndQuery Main http://host/p(...)3&key4=value4 [64] 224.8260 ns 0.9306 ns 1.00 304 B 1.00
CtorIdnHostPathAndQuery PR http://host/p(...)3&key4=value4 [64] 240.5953 ns 0.9292 ns 1.07 304 B 1.00
CtorIdnHostPathAndQuery Main http://host/p(...)=%C3%BCnicode [61] 489.4140 ns 5.0478 ns 1.00 752 B 1.00
CtorIdnHostPathAndQuery PR http://host/p(...)=%C3%BCnicode [61] 502.3432 ns 3.3578 ns 1.03 752 B 1.00
CtorIdnHostPathAndQuery Main http://host/p(...)?key=va%20lue [57] 228.1495 ns 0.5390 ns 1.00 296 B 1.00
CtorIdnHostPathAndQuery PR http://host/p(...)?key=va%20lue [57] 245.8039 ns 9.3835 ns 1.08 296 B 1.00
Ctor Main http://xn--hs(...)n--nicode-2ya [38] 77.0606 ns 0.9542 ns 1.00 56 B 1.00
Ctor PR http://xn--hs(...)n--nicode-2ya [38] 76.6261 ns 1.2773 ns 0.99 56 B 1.00
CtorIdnHostPathAndQuery Main http://xn--hs(...)alue#fragment [67] 230.8228 ns 1.3680 ns 1.00 296 B 1.00
CtorIdnHostPathAndQuery PR http://xn--hs(...)alue#fragment [67] 237.6567 ns 0.2979 ns 1.03 296 B 1.00
Ctor Main https://a.much.longer.domain.name 86.2592 ns 0.7154 ns 1.00 56 B 1.00
Ctor PR https://a.much.longer.domain.name 89.9344 ns 2.2277 ns 1.04 56 B 1.00
CtorIdnHostPathAndQuery Main https://a.muc(...)alue#fragment [62] 233.7094 ns 0.5609 ns 1.00 280 B 1.00
CtorIdnHostPathAndQuery PR https://a.muc(...)alue#fragment [62] 254.5426 ns 6.0456 ns 1.09 280 B 1.00
Ctor Main https://contoso.com 49.5386 ns 0.0380 ns 1.00 56 B 1.00
Ctor PR https://contoso.com 50.1123 ns 0.4004 ns 1.01 56 B 1.00
Ctor Main https://CONTOSO.com 50.5206 ns 0.0483 ns 1.00 56 B 1.00
Ctor PR https://CONTOSO.com 50.2419 ns 0.0866 ns 0.99 56 B 1.00
CtorIdnHostPathAndQuery Main https://conto(...)alue#fragment [48] 190.6193 ns 0.2877 ns 1.00 256 B 1.00
CtorIdnHostPathAndQuery PR https://conto(...)alue#fragment [48] 199.0000 ns 0.3015 ns 1.04 256 B 1.00
CtorIdnHostPathAndQuery Main https://CONTO(...)alue#fragment [48] 186.3635 ns 0.5555 ns 1.00 256 B 1.00
CtorIdnHostPathAndQuery PR https://CONTO(...)alue#fragment [48] 199.2634 ns 0.5749 ns 1.07 256 B 1.00
EscapeDataString Main üüüüüüüüüüüü(...)üüüüüüüüüüüü [1000] 8,760.3282 ns 33.0787 ns 1.00 12024 B 1.00
EscapeDataString PR üüüüüüüüüüüü(...)üüüüüüüüüüüü [1000] 9,119.5599 ns 242.9852 ns 1.04 12024 B 1.00

Artifacts:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions