【问题标题】:Benchmarking library usable from C#可从 C# 使用的基准测试库
【发布时间】:2013-09-17 05:53:24
【问题描述】:

我想在我管理的几台服务器上进行基准测试,并希望能够设置我自己的场景和事件/自动化顺序。

所以我想知道是否有任何库可用于对 Windows 计算机的不同方面(例如 CPU、磁盘 IO 和 RAM)执行基准测试。

更新 1: 由于似乎没有可用的库来执行此操作,我也将接受有关如何使用 C# 测试 CPU、磁盘和内存性能的示例或指南的答案。

更新 2 是否有任何语言的好库?

【问题讨论】:

  • 我建议您阅读以下内容:codeproject.com/Articles/8590/…,这是对 PerformanceCounter 课程的一个很好的介绍,我认为您会发现它很有用。
  • 这看起来很有趣,但可能不是我想要的。 codeproject 上的示例似乎是关于测量当前性能,而不是关于将系统发挥到最大并查看它可以做什么。也许我可以将它与一些将 cpu / 磁盘 / 内存发挥到极限的代码一起使用,看看它会得到什么。
  • 非常有趣的问题。如果你能总结你的发现并在这里回答会很棒:)。啊,你只针对 Windows Server 使用 c#?
  • 我的主要目标是 Windows 服务器,我对 C# 非常熟悉。但如果有一个好的库可用,我对 Java 没有任何问题。
  • 到目前为止,我已经编写了一个简单的测试程序,它创建了大量线程(每个内核 64 个线程),每个线程都尽可能快地重复运行 CPU 和磁盘繁重的任务。然后,我根据在给定时间内完成的任务总量计算分数。粗鲁,但给了我服务器之间的基本比较。认为这可以做得更好,而无需从头开始;)

标签: c# windows benchmarking


【解决方案1】:

您可以使用这个开源框架BenchmarkDotNet 进行 CPU 基准测试。它包括秒表使用、GC 预调用、预热、设置进程优先级、thred、ProcessorAffinity-mask、用于基准竞赛的 api 以及带有结果的漂亮控制台输出。

【讨论】:

    【解决方案2】:

    这可能超出了范围,但是我在单元测试级别寻找类似的东西并找到了this MSDN topic about Creating and Editing Load Tests

    【讨论】:

    • 这似乎可以用于锤击具有不同请求的应用程序。所以理论上,如果我对使用这些类型资源的代码运行测试,我可能会使我的 cpu /disk / ram 饱和.. 不完全是我的想法,但谢谢你的提示。
    • @wokawaka 在服务器环境中,您不只是向服务器扔东西,看看它是如何处理的。您编写程序来执行您需要完成的工作,然后敲击程序,并查看在哪里导致减速。如果减速是由于优化不佳的循环造成的,您可以修复您的代码。如果变慢是由于磁盘 I/O 速度变慢,您可以使用更快的驱动器升级磁盘 I/O。这样想,你的问题是在寻找“最好的”,而你需要寻找“最擅长做我要给服务器做的任何工作”。
    • @wokawaka 再想想我的说法,我想我需要重新表述为“满足我为服务器提供的任何工作的需求的设备”。如果您在RAMSAN 上花费 15,000 美元,而使用一对 200 美元的 raptor 磁盘的 RAID 0 设置可以正常工作,而您是我的员工,您将不会长期成为我的员工。
    猜你喜欢
    • 2017-11-07
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    相关资源
    最近更新 更多