Commit 5a387df
committed
Optimized HtmlTokenizer.ReadAttributeValueQuoted() and ReadPlainText()
The ReadAttributeValueQuoted() optimization drastically improves performance
for the xamarin3.xhtml benchmark.
BenchmarkDotNet v0.15.8, Windows 11 (10.0.26200.7392/25H2/2025Update/HudsonValley2)
Intel Core Ultra 7 268V 2.20GHz, 1 CPU, 8 logical and 8 physical cores
.NET SDK 10.0.101
[Host] : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3
DefaultJob : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3
Before:
| Method | Mean | Error | StdDev |
|---------------------------- |----------:|---------:|---------:|
| HtmlKit_TextReader_Xamarin3 | 104.38 us | 1.157 us | 1.025 us |
| HtmlKit_Stream_Xamarin3 | 96.45 us | 0.654 us | 0.612 us |
After:
| Method | Mean | Error | StdDev |
|---------------------------- |---------:|---------:|---------:|
| HtmlKit_TextReader_Xamarin3 | 93.79 us | 0.885 us | 0.828 us |
| HtmlKit_Stream_Xamarin3 | 85.62 us | 0.574 us | 0.537 us |1 parent d37c480 commit 5a387df
2 files changed
+113
-22
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
74 | 82 | | |
75 | 83 | | |
76 | 84 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
534 | 534 | | |
535 | 535 | | |
536 | 536 | | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
537 | 617 | | |
538 | 618 | | |
539 | 619 | | |
| |||
802 | 882 | | |
803 | 883 | | |
804 | 884 | | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
805 | 889 | | |
806 | 890 | | |
807 | 891 | | |
| |||
838 | 922 | | |
839 | 923 | | |
840 | 924 | | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
841 | 929 | | |
842 | 930 | | |
843 | 931 | | |
| |||
873 | 961 | | |
874 | 962 | | |
875 | 963 | | |
| 964 | + | |
| 965 | + | |
876 | 966 | | |
877 | 967 | | |
878 | 968 | | |
| |||
895 | 985 | | |
896 | 986 | | |
897 | 987 | | |
| 988 | + | |
| 989 | + | |
898 | 990 | | |
899 | 991 | | |
900 | 992 | | |
| |||
917 | 1009 | | |
918 | 1010 | | |
919 | 1011 | | |
920 | | - | |
921 | | - | |
922 | | - | |
923 | | - | |
924 | | - | |
| 1012 | + | |
925 | 1013 | | |
926 | | - | |
927 | | - | |
928 | | - | |
929 | | - | |
930 | | - | |
931 | | - | |
932 | | - | |
933 | | - | |
934 | | - | |
935 | | - | |
936 | | - | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
937 | 1018 | | |
938 | 1019 | | |
939 | | - | |
940 | | - | |
941 | | - | |
942 | | - | |
| 1020 | + | |
| 1021 | + | |
943 | 1022 | | |
944 | 1023 | | |
945 | 1024 | | |
| |||
1018 | 1097 | | |
1019 | 1098 | | |
1020 | 1099 | | |
| 1100 | + | |
| 1101 | + | |
1021 | 1102 | | |
1022 | 1103 | | |
1023 | 1104 | | |
| |||
1719 | 1800 | | |
1720 | 1801 | | |
1721 | 1802 | | |
| 1803 | + | |
| 1804 | + | |
1722 | 1805 | | |
1723 | | - | |
| 1806 | + | |
1724 | 1807 | | |
1725 | 1808 | | |
1726 | 1809 | | |
| |||
1737 | 1820 | | |
1738 | 1821 | | |
1739 | 1822 | | |
1740 | | - | |
| 1823 | + | |
1741 | 1824 | | |
1742 | 1825 | | |
1743 | 1826 | | |
| |||
0 commit comments