当前位置: 首页 > wzjs >正文

地方门户网站如何宣传电商网站建设流程图

地方门户网站如何宣传,电商网站建设流程图,大学同学会网站建设方案,wordpress 重复标题在 .NET 9 平台下,我们对两种经典的排序算法 MergeSortTest(归并排序)和 QuickSortTest(快速排序)进行了性能基准测试(Benchmark),以评估它们在不同数据规模下的执行效率、内存分配及…

.NET 9 平台下,我们对两种经典的排序算法 MergeSortTest(归并排序)和 QuickSortTest(快速排序)进行了性能基准测试(Benchmark),以评估它们在不同数据规模下的执行效率、内存分配及垃圾回收行为。

测试使用了 BenchmarkDotNet 工具,确保结果具有高度可重复性和统计意义。

  • Datadog.Trace.BenchmarkDotNet

🧪 测试环境

  • 运行时(Runtime):.NET 9.0.6 (X64 RyuJIT AVX2)
  • 操作系统:Windows 11 24H2(开发预览版)
  • SDK 版本:.NET SDK 9.0.301
  • 测试工具:BenchmarkDotNet v0.15.2
  • 测试参数:
    • 数据量 N = 100, 1000, 10000(分别模拟小、中、大数据集)

项目准备

创建项目

使用 .net cli 创建控制台项目,执行如下命令:

dotnet new console -n SortTest
cd SortTest# 安装 nuget 包 Datadog.Trace.BenchmarkDotNet
dotnet add package Datadog.Trace.BenchmarkDotNet

控制台项目 SortTest.csproj 信息如下:

<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>net9.0</TargetFramework><ImplicitUsings>enable</ImplicitUsings><Nullable>enable</Nullable><PublishAot>true</PublishAot><InvariantGlobalization>true</InvariantGlobalization></PropertyGroup><ItemGroup><PackageReference Include="Datadog.Trace.BenchmarkDotNet" Version="2.61.0" /></ItemGroup></Project>

排序算法实现

  • 归并排序
// =============================
// 排序算法实现:归并排序
// =============================namespace SortTest;public class MergeSort
{public static void Sort(int[] array){if (array.Length <= 1) return;int mid = array.Length / 2;int[] left = array[..mid];int[] right = array[mid..];Sort(left);Sort(right);Merge(array, left, right);}private static void Merge(int[] result, int[] left, int[] right){int i = 0, j = 0, k = 0;while (i < left.Length && j < right.Length){if (left[i] <= right[j])result[k++] = left[i++];elseresult[k++] = right[j++];}while (i < left.Length)result[k++] = left[i++];while (j < right.Length)result[k++] = right[j++];}
}
  • 快速排序
// =============================
// 排序算法实现:快速排序
// =============================namespace SortTest;public class QuickSort
{public static void Sort(int[] array, int low, int high){if (low < high){int pivotIndex = Partition(array, low, high);Sort(array, low, pivotIndex - 1);Sort(array, pivotIndex + 1, high);}}private static int Partition(int[] array, int low, int high){int pivot = array[high];int i = low - 1;for (int j = low; j < high; j++){if (array[j] <= pivot){i++;Swap(array, i, j);}}Swap(array, i + 1, high);return i + 1;}private static void Swap(int[] array, int i, int j){if (i != j){int temp = array[i];array[i] = array[j];array[j] = temp;}}
}

添加测试基准

  • Benchmark 测试类
// =============================
// Benchmark 测试类
// =============================using BenchmarkDotNet.Attributes;
using Datadog.Trace.BenchmarkDotNet;namespace SortTest;[DatadogDiagnoser]
[MemoryDiagnoser]
public class SortingBenchmark
{private int[] data = [];[Params(100, 1000, 10000)] // 不同数据规模public int N;[GlobalSetup]public void Setup(){var random = new Random(42); // 固定种子以保证重复性data = Enumerable.Range(0, N).Select(_ => random.Next(0, N)).ToArray();}[Benchmark]public void MergeSortTest(){var copy = (int[])data.Clone();MergeSort.Sort(copy);}[Benchmark]public void QuickSortTest(){var copy = (int[])data.Clone();QuickSort.Sort(copy, 0, copy.Length - 1);}
}

使用基准测试

Program.cs 添加如下代码:

using BenchmarkDotNet.Configs;
using BenchmarkDotNet.Running;
using Datadog.Trace.BenchmarkDotNet;namespace SortTest;internal class Program
{static void Main(string[] args){Console.WriteLine("Hello, SortingBenchmark!");var config = DefaultConfig.Instance.WithDatadog();BenchmarkRunner.Run<SortingBenchmark>(config);}
}

启动项目基准测试,使用 pwsh 执行如下命令:

dotnet run -c Release

下面这些文本信息是使用 BenchmarkDotNet 工具对两种排序算法(MergeSortTestQuickSortTest)进行性能测试后生成的报告。


SortTest.SortingBenchmark-20250705-183953

BenchmarkDotNet v0.15.2, Windows 11 (10.0.26100.4484/24H2/2024Update/HudsonValley)
Unknown processor
.NET SDK 9.0.301[Host]     : .NET 9.0.6 (9.0.625.26613), X64 AOT AVX2DefaultJob : .NET 9.0.6 (9.0.625.26613), X64 RyuJIT AVX2
Method NMean ErrorStdDevGen0Gen1Allocated
MergeSortTest1004.508 μs0.0857 μs0.1863 μs5.3635-8424 B
QuickSortTest1001.249 μs0.0248 μs0.0331 μs0.2689-424 B
MergeSortTest100079.005 μs1.5793 μs2.1083 μs61.4014-96328 B
QuickSortTest100039.192 μs0.6847 μs0.6404 μs2.5024-4024 B
MergeSortTest100001,073.318 μs20.7670 μs26.2637 μs539.0625128.90631112040 B
QuickSortTest10000600.722 μs7.9013 μs6.5980 μs24.4141-40024 B

以下是关键内容的通俗解释:

📊 测试目标

对两种排序算法在不同数据量下的性能进行对比分析,包括:

  • 执行时间(Mean)
  • 内存分配(Allocated)
  • 垃圾回收情况(Gen0, Gen1)

测试分别在以下数据规模下运行:

  • N = 100
  • N = 1000
  • N = 10000

🧪 性能对比结果

方法数据量 (N)平均耗时内存分配GC 次数 (Gen0)
MergeSortTest1004.508 μs8424 B5.3635
QuickSortTest1001.249 μs424 B0.2689
MergeSortTest100079.005 μs96328 B61.4014
QuickSortTest100039.192 μs4024 B2.5024
MergeSortTest100001073.318 μs1112040 B539.0625
QuickSortTest10000600.722 μs40024 B24.4141

✅ 结论:

  • QuickSortTest 的平均耗时和内存占用都明显低于 MergeSortTest
  • 随着数据量增加,两者的差距也越来越大
  • QuickSortTest 在性能和资源消耗方面更优

⚠️ 警告与提示

📌 多峰分布警告(Multimodal Distribution)

  • MergeSortTest 的部分测试结果显示为多峰分布(mValue = 3.23),说明其运行时间波动较大,可能受外部因素影响。

📌 异常值(Outliers)

  • 报告中指出某些测试存在异常值并已被剔除:
    • MergeSortTest: 移除了 4 个异常值
    • QuickSortTest: 不同数据规模下检测到多个异常值并移除

📋 统计指标含义简述

指标名含义解释
Mean平均执行时间
Error置信区间的一半(99.9% 置信度)
StdDev标准差,反映数据波动程度
Gen0 / Gen1垃圾回收次数(代数0/1)
Allocated单次操作分配的内存大小
Median中位数,排除极端值后的中间值
Min / Max最小值和最大值

🖼️ 直方图(Histogram)

每组测试后都有一个简单的直方图,用字符 @ 表示不同时间段内执行次数的分布,帮助可视化执行时间的集中趋势。


📈 小结

  • QuickSortTest 在所有测试中表现更优
    • 更快的执行速度
    • 更少的内存分配
    • 更低的垃圾回收压力
  • MergeSortTest 性能较差且波动较大
    • 特别是在大数据量(N=10000)时表现不佳
    • 存在较多异常值,稳定性不如 QuickSort

如果你希望进一步优化 MergeSort 或想了解为何它表现不佳,可以结合代码逻辑、递归深度、内存使用等因素进行深入分析。


文章转载自:

http://NyYU5q6N.rknjx.cn
http://s1fvZjLw.rknjx.cn
http://eaFo2ngf.rknjx.cn
http://bvmViRKo.rknjx.cn
http://8bcoxq0F.rknjx.cn
http://PFQDoglN.rknjx.cn
http://frjAfn1u.rknjx.cn
http://SMIz7Wvb.rknjx.cn
http://afAuDTDl.rknjx.cn
http://NB7o9tiI.rknjx.cn
http://SxIvpc58.rknjx.cn
http://SxIolkMq.rknjx.cn
http://awzs3L5v.rknjx.cn
http://LW7bWatr.rknjx.cn
http://L1BbxM4H.rknjx.cn
http://6fuxz4XA.rknjx.cn
http://JJQQFcf9.rknjx.cn
http://481IPBgR.rknjx.cn
http://Qec6dRve.rknjx.cn
http://fQhXQ80H.rknjx.cn
http://FyrWopYm.rknjx.cn
http://1dJz5XeS.rknjx.cn
http://1W3frxR0.rknjx.cn
http://CrMkpEEs.rknjx.cn
http://67lUnaXE.rknjx.cn
http://3Oaxfzfx.rknjx.cn
http://wo62vGbl.rknjx.cn
http://5baHdUAH.rknjx.cn
http://z9Oipkfw.rknjx.cn
http://pcWnhWdc.rknjx.cn
http://www.dtcms.com/wzjs/698783.html

相关文章:

  • 网站备案 影响wordpress 模版 推荐
  • 企业建站 炫酷模板一人有限公司怎么注册
  • 郴州网站建设公司官网网站如何防止重登录
  • 企业网站建设的困难和问题甘肃第九建设集团公司网站
  • 网站主机的类型网站程序更换
  • 天津的公司能在北京做网站备案吗高大上网站欣赏
  • 做宣传网站大概多少钱800多块做网站
  • 网站seo快排软件免费制作短视频软件
  • 宣传型网站建设网页布局设计的一般步骤
  • 做网站推广我们是专业的泉州服装电商网站建设
  • 建一个网站大约需要花费多少钱怎么做淘宝客个人网站
  • vue网站引导页怎么做公司网站不备案和备案有什么区别
  • 了解宿迁建设网站企业网站模板下载哪里好
  • 学校网站方案专门做招商的网站
  • 上海闵行区网站制作公司一个网站的优势有哪些
  • 网站建设-上寻模板建设银行考试报名网站
  • 杭州品牌网站制作营销技巧和话术
  • 建网站空间购买金蝶erp软件下载
  • 重庆网站推广什么中国铁工建设有限公司网站
  • 企业电子商务网站有哪些功能生态建筑建设公司网站
  • 咸宁网站定制wordpress搜索页自定义
  • 网站开发用什么编程语言网站优化怎么看
  • 广告行业包括网站建设吗小程序电商模板
  • c 网站开发项目北京seo相关
  • 网站推广协议基于js原生的新闻类静态网站建设
  • .netcms网站管理系统网站 seo优化
  • 长沙定制网站开发网页设计与制作教程第六版课后答案
  • 微信官网网站模板下载不了广州官网建设
  • 罗湖商城网站建设哪家服务周到对接国家战略建设海上福州网站
  • 淄博市建设监理协会网站世界互联网峰会