gpt4 book ai didi

cocoa - 如何在 Mac OS X 中检测 SSD?

转载 作者:行者123 更新时间:2023-12-03 16:04:39 24 4
gpt4 key购买 nike

是否有一种可靠、快速、确定性的方法(即不是基准)来检查 Mac OS X 所在的系统驱动器是否是固态驱动器?

还有其他指标可以表明磁盘处理并行访问的能力如何吗?我正在尝试调整我的程序将用于磁盘绑定(bind)操作的线程数。

我对原始速度或寻道时间不感兴趣,只对哪种类型的访问(串行或并行)对驱动器更快感兴趣。我不希望我的程序的用户使用 iSCSI 或 RAID。 SSD 是我的重点,其他都很好。

IOAHCIBlockStorageDevice

设备特征包含此信息。我如何以编程方式读取它?

<小时/>

到目前为止,我发现它是这样的:(以下是伪代码)

match = IOBSDNameMatching(kIOMasterPortDefault,0,"disk0s2");
IOServiceGetMatchingServices(kIOMasterPortDefault, match, &iterator);
while(entry = IOIteratorNext(iterator)) {
do {
entry = IORegistryEntryGetParentEntry(nextMedia, kIOServicePlane, &entry);
dict = IORegistryEntryCreateCFProperty(nextMedia,
CFSTR(kIOPropertyDeviceCharacteristicsKey), kCFAllocatorDefault, 0);
[dict objectForKey:CFSTR(kIOPropertyMediumTypeKey)];
}
while(!dict && entry);
}
<小时/>

编辑:Here's complete source code 。我已经验证它可以与 Intel SSD 和 OCZ Vertex 配合使用。

最佳答案

实际上,我认为你应该走基准测试路线,因为它更准确地回答你的问题 - 你并不真正关心磁盘恰好是SSD,你只关心磁盘真的很快。如果用户使用快速 RAID 设置、光纤 channel 阵列或使用 iSCSI,该怎么办?

只需从底层/dev/diskX 读取一堆随机扇区,如果它满足您的要求,您可以将其视为“快速”驱动器

关于cocoa - 如何在 Mac OS X 中检测 SSD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com