linux - Semaphore 和 R/W Semaphore 的性能评估

标签 linux linux-kernel operating-system linux-device-driver semaphore

我被要求编写测试用例来实际展示信号量和读写信号量在读者多而写者少的情况下的性能,反之亦然。 我已经实现了信号量(在内核空间中我们实际上被问到)但不知道如何编写用例并对其进行现场实际评估(明确地)。

最佳答案

为什么不直接编写代码的两个版本(Semaphore/R/W Semaphore)来开始。用例将取决于所测试的实际功能。它是一个设备驱动程序吗?它是否与 IO 相关?跟网络有关吗?不知道这一点就很难想出用例。

一般来说,我会为 IO 基准测试之类的东西做的是在一组运行的内存占用量增加的情况下运行多个模拟。另一组运行可能会超过不断增加的进程负载。另一个可能超过不同的 block 大小。我会将其中的每一个与诸如聚合带宽之类的东西进行比较,看看性能(在这种情况下是聚合带宽)在这些测试中是如何变化的。

同样,如果您正在测试 USB 驱动程序之类的东西,您的用例可能会完全不同。

关于linux - Semaphore 和 R/W Semaphore 的性能评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17949999/

相关文章:

c - fork 系统调用

c - 为什么 copy_to_user 打印的结果不正确?

c++ - 编译后的程序如何与操作系统交互?

c# - Mono:如何在新的控制台/终端窗口上运行 bash 命令?

linux - 替代 netcat 以管道连接到端口

Linux 内核 : what are instruction cache and mp-IRQ subsystem within a terms of function interception via replace?

linux - IPTables发送的TCP_RST段的源地址

c - 画出下列程序的进程树

c - 读取配置文件

python - 段错误 - python C 扩展中的核心转储