You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PolyglotNotebooksStudy/Docs/多语言笔记.8.1.运行Benchmark基准测试.i...

550 lines
27 KiB
Plaintext

{
"cells": [
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"运行 BenchmarkDotnet 基准测试\n",
"============================"
]
},
2 months ago
{
"cell_type": "markdown",
"metadata": {},
"source": [
"在多语言笔记中,可以很方便的使用 BenchmarkDotnet 进行基准测试。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 使用步骤"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
2 months ago
"### 1. 安装 BenchmarkDotNet 包"
]
},
{
"cell_type": "code",
2 months ago
"execution_count": 4,
"metadata": {
"dotnet_interactive": {
"language": "csharp"
},
"polyglot_notebook": {
"kernelName": "csharp"
}
},
2 months ago
"outputs": [
{
"data": {
"text/html": [
2 months ago
"<div><div><strong>Restore sources</strong><ul><li><span>https://api.nuget.org/v3/index.json</span></li></ul></div><div></div><div><strong>Installed Packages</strong><ul><li><span>BenchmarkDotNet, 0.13.12</span></li></ul></div></div>"
2 months ago
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"// 默认包源\n",
2 months ago
"#i \"nuget:https://api.nuget.org/v3/index.json\"\n",
"\n",
2 months ago
"#r \"nuget: BenchmarkDotNet, 0.13.12\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.编写基准测试类"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"定义包含 [Benchmark] 属性的测试方法"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [],
"source": [
"using BenchmarkDotNet.Attributes;\n",
"using BenchmarkDotNet.Running;\n",
"\n",
"public class MyBenchmarks\n",
"{\n",
" [Benchmark]\n",
" public void TestMethod()\n",
" {\n",
" // 待测试的性能代码\n",
" }\n",
"}\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3. 运行基准测试"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"在笔记中调用 BenchmarkRunner需显式指定配置如 Release 模式):"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"polyglot_notebook": {
"kernelName": "csharp"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b]9;4;3;0\u001b\\// Validating benchmarks:\n",
"// * No exporters defined, results will not be persisted.\n",
"\n",
"// ***** BenchmarkRunner: Start *****\n",
"// ***** Found 1 benchmark(s) in total *****\n",
"// ***** Building 1 exe(s) in Parallel: Start *****\n",
"// ***** Done, took 00:00:00 (0 sec) *****\n",
"// Found 1 benchmarks:\n",
"// MyBenchmarks.TestMethod: Job-LIUZPN(Toolchain=InProcessEmitToolchain)\n",
"\n",
"Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)\n",
"// **************************\n",
"// Benchmark: MyBenchmarks.TestMethod: Job-LIUZPN(Toolchain=InProcessEmitToolchain)\n",
"// *** Execute ***\n",
"// Launch: 1 / 1\n",
"\n",
"// Benchmark Process Environment Information:\n",
"// BenchmarkDotNet v0.13.12\n",
"// Runtime=.NET 9.0.4 (9.0.425.16305), X64 RyuJIT AVX2\n",
"// GC=Concurrent Server\n",
"// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256\n",
"// Job: Job-LIUZPN(Toolchain=InProcessEmitToolchain)\n",
"\n",
"OverheadJitting 1: 1 op, 381100.00 ns, 381.1000 us/op\n",
"WorkloadJitting 1: 1 op, 531000.00 ns, 531.0000 us/op\n",
"\n",
"OverheadJitting 2: 16 op, 483900.00 ns, 30.2437 us/op\n",
"WorkloadJitting 2: 16 op, 985900.00 ns, 61.6187 us/op\n",
"\n",
"WorkloadPilot 1: 16 op, 14400.00 ns, 900.0000 ns/op\n",
"WorkloadPilot 2: 32 op, 6000.00 ns, 187.5000 ns/op\n",
"WorkloadPilot 3: 64 op, 5900.00 ns, 92.1875 ns/op\n",
"WorkloadPilot 4: 128 op, 2600.00 ns, 20.3125 ns/op\n",
"WorkloadPilot 5: 256 op, 3500.00 ns, 13.6719 ns/op\n",
"WorkloadPilot 6: 512 op, 7300.00 ns, 14.2578 ns/op\n",
"WorkloadPilot 7: 1024 op, 11300.00 ns, 11.0352 ns/op\n",
"WorkloadPilot 8: 2048 op, 20900.00 ns, 10.2051 ns/op\n",
"WorkloadPilot 9: 4096 op, 25200.00 ns, 6.1523 ns/op\n",
"WorkloadPilot 10: 8192 op, 38900.00 ns, 4.7485 ns/op\n",
"WorkloadPilot 11: 16384 op, 99500.00 ns, 6.0730 ns/op\n",
"WorkloadPilot 12: 32768 op, 203900.00 ns, 6.2225 ns/op\n",
"WorkloadPilot 13: 65536 op, 284400.00 ns, 4.3396 ns/op\n",
"WorkloadPilot 14: 131072 op, 503100.00 ns, 3.8383 ns/op\n",
"WorkloadPilot 15: 262144 op, 1037600.00 ns, 3.9581 ns/op\n",
"WorkloadPilot 16: 524288 op, 2141100.00 ns, 4.0838 ns/op\n",
"WorkloadPilot 17: 1048576 op, 5614900.00 ns, 5.3548 ns/op\n",
"WorkloadPilot 18: 2097152 op, 9530900.00 ns, 4.5447 ns/op\n",
"WorkloadPilot 19: 4194304 op, 16251500.00 ns, 3.8747 ns/op\n",
"WorkloadPilot 20: 8388608 op, 31093100.00 ns, 3.7066 ns/op\n",
"WorkloadPilot 21: 16777216 op, 69916600.00 ns, 4.1674 ns/op\n",
"WorkloadPilot 22: 33554432 op, 104092200.00 ns, 3.1022 ns/op\n",
"WorkloadPilot 23: 67108864 op, 204056800.00 ns, 3.0407 ns/op\n",
"WorkloadPilot 24: 134217728 op, 416212900.00 ns, 3.1010 ns/op\n",
"WorkloadPilot 25: 268435456 op, 862297500.00 ns, 3.2123 ns/op\n",
"\n",
"OverheadWarmup 1: 268435456 op, 471566400.00 ns, 1.7567 ns/op\n",
"OverheadWarmup 2: 268435456 op, 466552400.00 ns, 1.7380 ns/op\n",
"OverheadWarmup 3: 268435456 op, 576908400.00 ns, 2.1492 ns/op\n",
"OverheadWarmup 4: 268435456 op, 608361000.00 ns, 2.2663 ns/op\n",
"OverheadWarmup 5: 268435456 op, 696230600.00 ns, 2.5937 ns/op\n",
"OverheadWarmup 6: 268435456 op, 567256700.00 ns, 2.1132 ns/op\n",
"OverheadWarmup 7: 268435456 op, 554610300.00 ns, 2.0661 ns/op\n",
"OverheadWarmup 8: 268435456 op, 582468400.00 ns, 2.1699 ns/op\n",
"OverheadWarmup 9: 268435456 op, 528403500.00 ns, 1.9685 ns/op\n",
"\n",
"OverheadActual 1: 268435456 op, 677908400.00 ns, 2.5254 ns/op\n",
"OverheadActual 2: 268435456 op, 593884600.00 ns, 2.2124 ns/op\n",
"OverheadActual 3: 268435456 op, 552982700.00 ns, 2.0600 ns/op\n",
"OverheadActual 4: 268435456 op, 593728300.00 ns, 2.2118 ns/op\n",
"OverheadActual 5: 268435456 op, 540111500.00 ns, 2.0121 ns/op\n",
"OverheadActual 6: 268435456 op, 477180500.00 ns, 1.7776 ns/op\n",
"OverheadActual 7: 268435456 op, 479161100.00 ns, 1.7850 ns/op\n",
"OverheadActual 8: 268435456 op, 531079500.00 ns, 1.9784 ns/op\n",
"OverheadActual 9: 268435456 op, 492533500.00 ns, 1.8348 ns/op\n",
"OverheadActual 10: 268435456 op, 540470700.00 ns, 2.0134 ns/op\n",
"OverheadActual 11: 268435456 op, 768091200.00 ns, 2.8614 ns/op\n",
"OverheadActual 12: 268435456 op, 500270800.00 ns, 1.8637 ns/op\n",
"OverheadActual 13: 268435456 op, 498249700.00 ns, 1.8561 ns/op\n",
"OverheadActual 14: 268435456 op, 567981300.00 ns, 2.1159 ns/op\n",
"OverheadActual 15: 268435456 op, 531957100.00 ns, 1.9817 ns/op\n",
"OverheadActual 16: 268435456 op, 563283000.00 ns, 2.0984 ns/op\n",
"OverheadActual 17: 268435456 op, 569417600.00 ns, 2.1212 ns/op\n",
"OverheadActual 18: 268435456 op, 546393200.00 ns, 2.0355 ns/op\n",
"OverheadActual 19: 268435456 op, 476632100.00 ns, 1.7756 ns/op\n",
"OverheadActual 20: 268435456 op, 532101400.00 ns, 1.9822 ns/op\n",
"\n",
"WorkloadWarmup 1: 268435456 op, 733488300.00 ns, 2.7325 ns/op\n",
"WorkloadWarmup 2: 268435456 op, 759722600.00 ns, 2.8302 ns/op\n",
"WorkloadWarmup 3: 268435456 op, 749575500.00 ns, 2.7924 ns/op\n",
"WorkloadWarmup 4: 268435456 op, 725301100.00 ns, 2.7020 ns/op\n",
"WorkloadWarmup 5: 268435456 op, 745114600.00 ns, 2.7758 ns/op\n",
"WorkloadWarmup 6: 268435456 op, 848129700.00 ns, 3.1595 ns/op\n",
"WorkloadWarmup 7: 268435456 op, 759963400.00 ns, 2.8311 ns/op\n",
"\n",
"WorkloadActual 1: 268435456 op, 700981100.00 ns, 2.6114 ns/op\n",
"WorkloadActual 2: 268435456 op, 871329600.00 ns, 3.2460 ns/op\n",
"WorkloadActual 3: 268435456 op, 685167900.00 ns, 2.5524 ns/op\n",
"WorkloadActual 4: 268435456 op, 715374000.00 ns, 2.6650 ns/op\n",
"WorkloadActual 5: 268435456 op, 652972400.00 ns, 2.4325 ns/op\n",
"WorkloadActual 6: 268435456 op, 679481300.00 ns, 2.5313 ns/op\n",
"WorkloadActual 7: 268435456 op, 639918800.00 ns, 2.3839 ns/op\n",
"WorkloadActual 8: 268435456 op, 664201000.00 ns, 2.4743 ns/op\n",
"WorkloadActual 9: 268435456 op, 730607000.00 ns, 2.7217 ns/op\n",
"WorkloadActual 10: 268435456 op, 793689100.00 ns, 2.9567 ns/op\n",
"WorkloadActual 11: 268435456 op, 673956500.00 ns, 2.5107 ns/op\n",
"WorkloadActual 12: 268435456 op, 695907000.00 ns, 2.5925 ns/op\n",
"WorkloadActual 13: 268435456 op, 690626300.00 ns, 2.5728 ns/op\n",
"WorkloadActual 14: 268435456 op, 638296000.00 ns, 2.3778 ns/op\n",
"WorkloadActual 15: 268435456 op, 663132100.00 ns, 2.4704 ns/op\n",
"WorkloadActual 16: 268435456 op, 696899000.00 ns, 2.5962 ns/op\n",
"WorkloadActual 17: 268435456 op, 764926400.00 ns, 2.8496 ns/op\n",
"WorkloadActual 18: 268435456 op, 787455000.00 ns, 2.9335 ns/op\n",
"WorkloadActual 19: 268435456 op, 692160800.00 ns, 2.5785 ns/op\n",
"WorkloadActual 20: 268435456 op, 718761200.00 ns, 2.6776 ns/op\n",
"WorkloadActual 21: 268435456 op, 724229300.00 ns, 2.6980 ns/op\n",
"WorkloadActual 22: 268435456 op, 640115300.00 ns, 2.3846 ns/op\n",
"WorkloadActual 23: 268435456 op, 666321500.00 ns, 2.4822 ns/op\n",
"WorkloadActual 24: 268435456 op, 1011237500.00 ns, 3.7672 ns/op\n",
"WorkloadActual 25: 268435456 op, 802223500.00 ns, 2.9885 ns/op\n",
"WorkloadActual 26: 268435456 op, 722083600.00 ns, 2.6900 ns/op\n",
"WorkloadActual 27: 268435456 op, 810133100.00 ns, 3.0180 ns/op\n",
"WorkloadActual 28: 268435456 op, 756040100.00 ns, 2.8165 ns/op\n",
"WorkloadActual 29: 268435456 op, 994470200.00 ns, 3.7047 ns/op\n",
"WorkloadActual 30: 268435456 op, 861272600.00 ns, 3.2085 ns/op\n",
"WorkloadActual 31: 268435456 op, 754507000.00 ns, 2.8108 ns/op\n",
"WorkloadActual 32: 268435456 op, 809822400.00 ns, 3.0168 ns/op\n",
"WorkloadActual 33: 268435456 op, 717488700.00 ns, 2.6729 ns/op\n",
"WorkloadActual 34: 268435456 op, 855054700.00 ns, 3.1853 ns/op\n",
"WorkloadActual 35: 268435456 op, 718882900.00 ns, 2.6780 ns/op\n",
"WorkloadActual 36: 268435456 op, 776371300.00 ns, 2.8922 ns/op\n",
"WorkloadActual 37: 268435456 op, 712470600.00 ns, 2.6542 ns/op\n",
"WorkloadActual 38: 268435456 op, 684294800.00 ns, 2.5492 ns/op\n",
"WorkloadActual 39: 268435456 op, 762930600.00 ns, 2.8421 ns/op\n",
"WorkloadActual 40: 268435456 op, 827339400.00 ns, 3.0821 ns/op\n",
"WorkloadActual 41: 268435456 op, 730217300.00 ns, 2.7203 ns/op\n",
"WorkloadActual 42: 268435456 op, 786903100.00 ns, 2.9314 ns/op\n",
"WorkloadActual 43: 268435456 op, 791861300.00 ns, 2.9499 ns/op\n",
"WorkloadActual 44: 268435456 op, 734407200.00 ns, 2.7359 ns/op\n",
"WorkloadActual 45: 268435456 op, 715738500.00 ns, 2.6663 ns/op\n",
"WorkloadActual 46: 268435456 op, 645804200.00 ns, 2.4058 ns/op\n",
"WorkloadActual 47: 268435456 op, 746088000.00 ns, 2.7794 ns/op\n",
"WorkloadActual 48: 268435456 op, 798878600.00 ns, 2.9761 ns/op\n",
"WorkloadActual 49: 268435456 op, 841277200.00 ns, 3.1340 ns/op\n",
"WorkloadActual 50: 268435456 op, 767504500.00 ns, 2.8592 ns/op\n",
"WorkloadActual 51: 268435456 op, 670642300.00 ns, 2.4983 ns/op\n",
"WorkloadActual 52: 268435456 op, 734972200.00 ns, 2.7380 ns/op\n",
"WorkloadActual 53: 268435456 op, 734025600.00 ns, 2.7345 ns/op\n",
"WorkloadActual 54: 268435456 op, 680251700.00 ns, 2.5341 ns/op\n",
"WorkloadActual 55: 268435456 op, 897927800.00 ns, 3.3450 ns/op\n",
"WorkloadActual 56: 268435456 op, 733411000.00 ns, 2.7322 ns/op\n",
"WorkloadActual 57: 268435456 op, 886096200.00 ns, 3.3010 ns/op\n",
"WorkloadActual 58: 268435456 op, 626306000.00 ns, 2.3332 ns/op\n",
"WorkloadActual 59: 268435456 op, 704193500.00 ns, 2.6233 ns/op\n",
"WorkloadActual 60: 268435456 op, 836078900.00 ns, 3.1146 ns/op\n",
"WorkloadActual 61: 268435456 op, 710367200.00 ns, 2.6463 ns/op\n",
"WorkloadActual 62: 268435456 op, 639291100.00 ns, 2.3815 ns/op\n",
"WorkloadActual 63: 268435456 op, 760419400.00 ns, 2.8328 ns/op\n",
"WorkloadActual 64: 268435456 op, 767204200.00 ns, 2.8581 ns/op\n",
"WorkloadActual 65: 268435456 op, 740556200.00 ns, 2.7588 ns/op\n",
"WorkloadActual 66: 268435456 op, 677227400.00 ns, 2.5229 ns/op\n",
"WorkloadActual 67: 268435456 op, 628378400.00 ns, 2.3409 ns/op\n",
"WorkloadActual 68: 268435456 op, 648624500.00 ns, 2.4163 ns/op\n",
"WorkloadActual 69: 268435456 op, 625241200.00 ns, 2.3292 ns/op\n",
"WorkloadActual 70: 268435456 op, 621494600.00 ns, 2.3152 ns/op\n",
"WorkloadActual 71: 268435456 op, 785918100.00 ns, 2.9278 ns/op\n",
"WorkloadActual 72: 268435456 op, 679462700.00 ns, 2.5312 ns/op\n",
"WorkloadActual 73: 268435456 op, 803845400.00 ns, 2.9946 ns/op\n",
"WorkloadActual 74: 268435456 op, 658608900.00 ns, 2.4535 ns/op\n",
"WorkloadActual 75: 268435456 op, 639482200.00 ns, 2.3823 ns/op\n",
"WorkloadActual 76: 268435456 op, 663531300.00 ns, 2.4718 ns/op\n",
"WorkloadActual 77: 268435456 op, 683369900.00 ns, 2.5458 ns/op\n",
"WorkloadActual 78: 268435456 op, 680896400.00 ns, 2.5365 ns/op\n",
"WorkloadActual 79: 268435456 op, 696729500.00 ns, 2.5955 ns/op\n",
"WorkloadActual 80: 268435456 op, 685439500.00 ns, 2.5535 ns/op\n",
"WorkloadActual 81: 268435456 op, 684179000.00 ns, 2.5488 ns/op\n",
"WorkloadActual 82: 268435456 op, 779341100.00 ns, 2.9033 ns/op\n",
"WorkloadActual 83: 268435456 op, 655296100.00 ns, 2.4412 ns/op\n",
"WorkloadActual 84: 268435456 op, 628327900.00 ns, 2.3407 ns/op\n",
"WorkloadActual 85: 268435456 op, 629001300.00 ns, 2.3432 ns/op\n",
"WorkloadActual 86: 268435456 op, 762178700.00 ns, 2.8393 ns/op\n",
"WorkloadActual 87: 268435456 op, 648718100.00 ns, 2.4167 ns/op\n",
"WorkloadActual 88: 268435456 op, 769951000.00 ns, 2.8683 ns/op\n",
"WorkloadActual 89: 268435456 op, 691268700.00 ns, 2.5752 ns/op\n",
"WorkloadActual 90: 268435456 op, 638621700.00 ns, 2.3791 ns/op\n",
"WorkloadActual 91: 268435456 op, 761102400.00 ns, 2.8353 ns/op\n",
"WorkloadActual 92: 268435456 op, 734246400.00 ns, 2.7353 ns/op\n",
"WorkloadActual 93: 268435456 op, 798007700.00 ns, 2.9728 ns/op\n",
"WorkloadActual 94: 268435456 op, 780768100.00 ns, 2.9086 ns/op\n",
"WorkloadActual 95: 268435456 op, 705217300.00 ns, 2.6271 ns/op\n",
"WorkloadActual 96: 268435456 op, 662000500.00 ns, 2.4661 ns/op\n",
"WorkloadActual 97: 268435456 op, 683222400.00 ns, 2.5452 ns/op\n",
"WorkloadActual 98: 268435456 op, 650537700.00 ns, 2.4234 ns/op\n",
"WorkloadActual 99: 268435456 op, 737556000.00 ns, 2.7476 ns/op\n",
"WorkloadActual 100: 268435456 op, 808114200.00 ns, 3.0105 ns/op\n",
"\n",
"WorkloadResult 1: 268435456 op, 160690000.00 ns, 0.5986 ns/op\n",
"WorkloadResult 2: 268435456 op, 331038500.00 ns, 1.2332 ns/op\n",
"WorkloadResult 3: 268435456 op, 144876800.00 ns, 0.5397 ns/op\n",
"WorkloadResult 4: 268435456 op, 175082900.00 ns, 0.6522 ns/op\n",
"WorkloadResult 5: 268435456 op, 112681300.00 ns, 0.4198 ns/op\n",
"WorkloadResult 6: 268435456 op, 139190200.00 ns, 0.5185 ns/op\n",
"WorkloadResult 7: 268435456 op, 99627700.00 ns, 0.3711 ns/op\n",
"WorkloadResult 8: 268435456 op, 123909900.00 ns, 0.4616 ns/op\n",
"WorkloadResult 9: 268435456 op, 190315900.00 ns, 0.7090 ns/op\n",
"WorkloadResult 10: 268435456 op, 253398000.00 ns, 0.9440 ns/op\n",
"WorkloadResult 11: 268435456 op, 133665400.00 ns, 0.4979 ns/op\n",
"WorkloadResult 12: 268435456 op, 155615900.00 ns, 0.5797 ns/op\n",
"WorkloadResult 13: 268435456 op, 150335200.00 ns, 0.5600 ns/op\n",
"WorkloadResult 14: 268435456 op, 98004900.00 ns, 0.3651 ns/op\n",
"WorkloadResult 15: 268435456 op, 122841000.00 ns, 0.4576 ns/op\n",
"WorkloadResult 16: 268435456 op, 156607900.00 ns, 0.5834 ns/op\n",
"WorkloadResult 17: 268435456 op, 224635300.00 ns, 0.8368 ns/op\n",
"WorkloadResult 18: 268435456 op, 247163900.00 ns, 0.9208 ns/op\n",
"WorkloadResult 19: 268435456 op, 151869700.00 ns, 0.5658 ns/op\n",
"WorkloadResult 20: 268435456 op, 178470100.00 ns, 0.6649 ns/op\n",
"WorkloadResult 21: 268435456 op, 183938200.00 ns, 0.6852 ns/op\n",
"WorkloadResult 22: 268435456 op, 99824200.00 ns, 0.3719 ns/op\n",
"WorkloadResult 23: 268435456 op, 126030400.00 ns, 0.4695 ns/op\n",
"WorkloadResult 24: 268435456 op, 261932400.00 ns, 0.9758 ns/op\n",
"WorkloadResult 25: 268435456 op, 181792500.00 ns, 0.6772 ns/op\n",
"WorkloadResult 26: 268435456 op, 269842000.00 ns, 1.0052 ns/op\n",
"WorkloadResult 27: 268435456 op, 215749000.00 ns, 0.8037 ns/op\n",
"WorkloadResult 28: 268435456 op, 320981500.00 ns, 1.1957 ns/op\n",
"WorkloadResult 29: 268435456 op, 214215900.00 ns, 0.7980 ns/op\n",
"WorkloadResult 30: 268435456 op, 269531300.00 ns, 1.0041 ns/op\n",
"WorkloadResult 31: 268435456 op, 177197600.00 ns, 0.6601 ns/op\n",
"WorkloadResult 32: 268435456 op, 314763600.00 ns, 1.1726 ns/op\n",
"WorkloadResult 33: 268435456 op, 178591800.00 ns, 0.6653 ns/op\n",
"WorkloadResult 34: 268435456 op, 236080200.00 ns, 0.8795 ns/op\n",
"WorkloadResult 35: 268435456 op, 172179500.00 ns, 0.6414 ns/op\n",
"WorkloadResult 36: 268435456 op, 144003700.00 ns, 0.5365 ns/op\n",
"WorkloadResult 37: 268435456 op, 222639500.00 ns, 0.8294 ns/op\n",
"WorkloadResult 38: 268435456 op, 287048300.00 ns, 1.0693 ns/op\n",
"WorkloadResult 39: 268435456 op, 189926200.00 ns, 0.7075 ns/op\n",
"WorkloadResult 40: 268435456 op, 246612000.00 ns, 0.9187 ns/op\n",
"WorkloadResult 41: 268435456 op, 251570200.00 ns, 0.9372 ns/op\n",
"WorkloadResult 42: 268435456 op, 194116100.00 ns, 0.7231 ns/op\n",
"WorkloadResult 43: 268435456 op, 175447400.00 ns, 0.6536 ns/op\n",
"WorkloadResult 44: 268435456 op, 105513100.00 ns, 0.3931 ns/op\n",
"WorkloadResult 45: 268435456 op, 205796900.00 ns, 0.7667 ns/op\n",
"WorkloadResult 46: 268435456 op, 258587500.00 ns, 0.9633 ns/op\n",
"WorkloadResult 47: 268435456 op, 300986100.00 ns, 1.1213 ns/op\n",
"WorkloadResult 48: 268435456 op, 227213400.00 ns, 0.8464 ns/op\n",
"WorkloadResult 49: 268435456 op, 130351200.00 ns, 0.4856 ns/op\n",
"WorkloadResult 50: 268435456 op, 194681100.00 ns, 0.7252 ns/op\n",
"WorkloadResult 51: 268435456 op, 193734500.00 ns, 0.7217 ns/op\n",
"WorkloadResult 52: 268435456 op, 139960600.00 ns, 0.5214 ns/op\n",
"WorkloadResult 53: 268435456 op, 357636700.00 ns, 1.3323 ns/op\n",
"WorkloadResult 54: 268435456 op, 193119900.00 ns, 0.7194 ns/op\n",
"WorkloadResult 55: 268435456 op, 345805100.00 ns, 1.2882 ns/op\n",
"WorkloadResult 56: 268435456 op, 86014900.00 ns, 0.3204 ns/op\n",
"WorkloadResult 57: 268435456 op, 163902400.00 ns, 0.6106 ns/op\n",
"WorkloadResult 58: 268435456 op, 295787800.00 ns, 1.1019 ns/op\n",
"WorkloadResult 59: 268435456 op, 170076100.00 ns, 0.6336 ns/op\n",
"WorkloadResult 60: 268435456 op, 99000000.00 ns, 0.3688 ns/op\n",
"WorkloadResult 61: 268435456 op, 220128300.00 ns, 0.8200 ns/op\n",
"WorkloadResult 62: 268435456 op, 226913100.00 ns, 0.8453 ns/op\n",
"WorkloadResult 63: 268435456 op, 200265100.00 ns, 0.7460 ns/op\n",
"WorkloadResult 64: 268435456 op, 136936300.00 ns, 0.5101 ns/op\n",
"WorkloadResult 65: 268435456 op, 88087300.00 ns, 0.3282 ns/op\n",
"WorkloadResult 66: 268435456 op, 108333400.00 ns, 0.4036 ns/op\n",
"WorkloadResult 67: 268435456 op, 84950100.00 ns, 0.3165 ns/op\n",
"WorkloadResult 68: 268435456 op, 81203500.00 ns, 0.3025 ns/op\n",
"WorkloadResult 69: 268435456 op, 245627000.00 ns, 0.9150 ns/op\n",
"WorkloadResult 70: 268435456 op, 139171600.00 ns, 0.5185 ns/op\n",
"WorkloadResult 71: 268435456 op, 263554300.00 ns, 0.9818 ns/op\n",
"WorkloadResult 72: 268435456 op, 118317800.00 ns, 0.4408 ns/op\n",
"WorkloadResult 73: 268435456 op, 99191100.00 ns, 0.3695 ns/op\n",
"WorkloadResult 74: 268435456 op, 123240200.00 ns, 0.4591 ns/op\n",
"WorkloadResult 75: 268435456 op, 143078800.00 ns, 0.5330 ns/op\n",
"WorkloadResult 76: 268435456 op, 140605300.00 ns, 0.5238 ns/op\n",
"WorkloadResult 77: 268435456 op, 156438400.00 ns, 0.5828 ns/op\n",
"WorkloadResult 78: 268435456 op, 145148400.00 ns, 0.5407 ns/op\n",
"WorkloadResult 79: 268435456 op, 143887900.00 ns, 0.5360 ns/op\n",
"WorkloadResult 80: 268435456 op, 239050000.00 ns, 0.8905 ns/op\n",
"WorkloadResult 81: 268435456 op, 115005000.00 ns, 0.4284 ns/op\n",
"WorkloadResult 82: 268435456 op, 88036800.00 ns, 0.3280 ns/op\n",
"WorkloadResult 83: 268435456 op, 88710200.00 ns, 0.3305 ns/op\n",
"WorkloadResult 84: 268435456 op, 221887600.00 ns, 0.8266 ns/op\n",
"WorkloadResult 85: 268435456 op, 108427000.00 ns, 0.4039 ns/op\n",
"WorkloadResult 86: 268435456 op, 229659900.00 ns, 0.8555 ns/op\n",
"WorkloadResult 87: 268435456 op, 150977600.00 ns, 0.5624 ns/op\n",
"WorkloadResult 88: 268435456 op, 98330600.00 ns, 0.3663 ns/op\n",
"WorkloadResult 89: 268435456 op, 220811300.00 ns, 0.8226 ns/op\n",
"WorkloadResult 90: 268435456 op, 193955300.00 ns, 0.7225 ns/op\n",
"WorkloadResult 91: 268435456 op, 257716600.00 ns, 0.9601 ns/op\n",
"WorkloadResult 92: 268435456 op, 240477000.00 ns, 0.8958 ns/op\n",
"WorkloadResult 93: 268435456 op, 164926200.00 ns, 0.6144 ns/op\n",
"WorkloadResult 94: 268435456 op, 121709400.00 ns, 0.4534 ns/op\n",
"WorkloadResult 95: 268435456 op, 142931300.00 ns, 0.5325 ns/op\n",
"WorkloadResult 96: 268435456 op, 110246600.00 ns, 0.4107 ns/op\n",
"WorkloadResult 97: 268435456 op, 197264900.00 ns, 0.7349 ns/op\n",
"WorkloadResult 98: 268435456 op, 267823100.00 ns, 0.9977 ns/op\n",
"\n",
"\n",
"Mean = 0.679 ns, StdErr = 0.025 ns (3.69%), N = 98, StdDev = 0.248 ns\n",
"Min = 0.303 ns, Q1 = 0.489 ns, Median = 0.653 ns, Q3 = 0.846 ns, Max = 1.332 ns\n",
"IQR = 0.357 ns, LowerFence = -0.048 ns, UpperFence = 1.382 ns\n",
"ConfidenceInterval = [0.594 ns; 0.765 ns] (CI 99.9%), Margin = 0.085 ns (12.53% of Mean)\n",
"Skewness = 0.53, Kurtosis = 2.52, MValue = 3.33\n",
"\n",
"// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2025-05-05 19:16 (0h 0m from now) **\n",
"\u001b]9;4;1;100\u001b\\Successfully reverted power plan (GUID: 8c0b799f-ec5b-4e3b-b41f-d5834206c3f2 FriendlyName: 卓越性能)\n",
"// ***** BenchmarkRunner: Finish *****\n",
"\n",
"// * Export *\n",
"\n",
"// * Detailed results *\n",
"MyBenchmarks.TestMethod: Job-LIUZPN(Toolchain=InProcessEmitToolchain)\n",
"Runtime = ; GC = \n",
"Mean = 0.679 ns, StdErr = 0.025 ns (3.69%), N = 98, StdDev = 0.248 ns\n",
"Min = 0.303 ns, Q1 = 0.489 ns, Median = 0.653 ns, Q3 = 0.846 ns, Max = 1.332 ns\n",
"IQR = 0.357 ns, LowerFence = -0.048 ns, UpperFence = 1.382 ns\n",
"ConfidenceInterval = [0.594 ns; 0.765 ns] (CI 99.9%), Margin = 0.085 ns (12.53% of Mean)\n",
"Skewness = 0.53, Kurtosis = 2.52, MValue = 3.33\n",
"-------------------- Histogram --------------------\n",
"[0.301 ns ; 0.448 ns) | @@@@@@@@@@@@@@@@@@@\n",
"[0.448 ns ; 0.589 ns) | @@@@@@@@@@@@@@@@@@@@@@@@\n",
"[0.589 ns ; 0.749 ns) | @@@@@@@@@@@@@@@@@@@@@\n",
"[0.749 ns ; 0.797 ns) | @\n",
"[0.797 ns ; 0.938 ns) | @@@@@@@@@@@@@@@@@\n",
"[0.938 ns ; 1.097 ns) | @@@@@@@@@\n",
"[1.097 ns ; 1.238 ns) | @@@@@\n",
"[1.238 ns ; 1.403 ns) | @@\n",
"---------------------------------------------------\n",
"\n",
"// * Summary *\n",
"\n",
"BenchmarkDotNet v0.13.12, Windows 11 (10.0.26100.3915)\n",
"Intel Core i9-9880H CPU 2.30GHz, 1 CPU, 16 logical and 8 physical cores\n",
".NET SDK 10.0.100-preview.3.25201.16\n",
" [Host] : .NET 9.0.4 (9.0.425.16305), X64 RyuJIT AVX2\n",
"\n",
"Toolchain=InProcessEmitToolchain \n",
"\n",
"| Method | Mean | Error | StdDev |\n",
"|----------- |----------:|----------:|----------:|\n",
"| TestMethod | 0.6795 ns | 0.0851 ns | 0.2483 ns |\n",
"\n",
"// * Legends *\n",
" Mean : Arithmetic mean of all measurements\n",
" Error : Half of 99.9% confidence interval\n",
" StdDev : Standard deviation of all measurements\n",
" 1 ns : 1 Nanosecond (0.000000001 sec)\n",
"\n",
"// ***** BenchmarkRunner: End *****\n",
"Run time: 00:01:46 (106.52 sec), executed benchmarks: 1\n",
"\n",
"Global total time: 00:01:46 (106.52 sec), executed benchmarks: 1\n",
"// * Artifacts cleanup *\n",
"Artifacts cleanup is finished\n",
"\u001b]9;4;0;0\u001b\\"
]
}
],
"source": [
"var summary = BenchmarkRunner.Run<MyBenchmarks>(new BenchmarkDotNet.Configs.DebugInProcessConfig());"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 关键注意事项"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. 配置模式\n",
"\n",
" Polyglot Notebook 默认使用 Debug 配置,需通过 DebugInProcessConfig 强制适配,否则可能报错"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. 内存分配分析\n",
"\n",
" 添加 [MemoryDiagnoser] 属性可监控内存分配情况"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. 避免内联优化\n",
"\n",
2 months ago
" 若测试简单方法,需确保编译器未将其优化为内联代码,可通过复杂逻辑或 [MethodImpl] 属性规避"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".NET (C#)",
"language": "C#",
"name": ".net-csharp"
},
"language_info": {
"name": "polyglot-notebook"
},
"orig_nbformat": 4,
"polyglot_notebook": {
"kernelInfo": {
"defaultKernelName": "csharp",
"items": [
{
"aliases": [],
"name": "csharp"
},
{
"aliases": [],
"name": "razor"
}
]
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}