如何在 Mac OS X 中检测 SSD?

2024-01-10

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

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

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

Device Characteristics of 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); 
}

Edit: 这是完整的源代码 https://github.com/kornelski/itunesfixer/blob/master/SSD.m。我已经验证它可以与 Intel SSD 和 OCZ Vertex 配合使用。


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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Mac OS X 中检测 SSD? 的相关文章

随机推荐

  • 使用应用程序时,Interface Builder 中 UIView 对象的大小会发生变化

    我有一个额外的 UIView 对象 我刚刚将其拖到情节提要上 它覆盖了整个 iPhone 屏幕 所以我点击它并拖动它 直到它只覆盖 iPhone 屏幕的一半 这是我的故事板在选择了额外的 UIView 对象后的样子 然而 当我在 iPhon
  • jquery 数据表服务器端 - 顶部过滤列

    您好 我需要将 JQUERY DATATABLES 1 10 10 上的过滤器列移到顶部 我的过滤器列位于底部 dtabledID thead th each function var title this text this html
  • 使图像的一部分可点击

    我以这种方式应用了背景图像 HTML div img src stock png class stretch alt image div CSS background width 100 height 100 position absolu
  • 具有 URL 重写模块的 IIS 7.5 在回发时将查询字符串参数加倍

    我在 Windows 7 RC 上使用 IIS 7 5 我使用 IIS Url Rewrite 模块来重写 URL 一切似乎都工作正常 直到我通过单击按钮执行回发 然后它将查询字符串参数附加到我重写的 URL 中 如下所示 重写的 URL
  • Node.js - 在加密模块中设置填充

    我一直在查看文档加密模块 http nodejs org api crypto html在 Node 中 我试图弄清楚如何在进行对称加密时设置填充 我正在尝试使用 AES 128 ECB 和 PKCS5 填充 我在任何地方都看不到它允许您指
  • 获取子节点包含属性的节点

    假设我有以下 XML
  • 在解决方案中实现业务规则引擎的方法或模式?

    我在一家年轻的银行公司工作 我们的解决方案 NET 有一个重要的技术债务 因此我们按照 DDD 原则对其进行重构 我们计划使用业务规则引擎 业务规则涉及会计目的 营销目的 风险目的 法律内容 我们计划对由企业赞助的 BRE 进行 POC 我
  • Chrome 开发者工具扩展控制台

    我将其包含在我的 chrome 扩展清单中 devtools page devtools html 在 devtools html 中 我包含一个 devtools js 文件 它创建一个面板 chrome devtools panels
  • Javamail,Transport.send() 非常慢

    我写了一个批量发送电子邮件的方法 但它非常非常慢 每 10 秒大约 3 封邮件 我想发送数千封邮件 有什么办法可以更快地做到这一点吗 我现在使用 gmail 但仅用于测试 最后我想使用我自己的 SMTP 服务器发送 这是代码 public
  • 表示对象中的优先级/偏好的最佳方式是什么?

    在域中建模优先级 偏好的最佳方法是什么 例如 假设我有一堂课Person代表一个人并有一些偏好 例如PersonX喜欢披萨 意大利面和煎蛋卷 实际上他更喜欢意大利面而不是披萨 如何对这些进行最佳建模 第一个想法就是把它们放在一个List 作
  • 在 R 中用十六进制值绘制颜色

    如何在 R 中生成 5x5 矩阵 每个单元格用调色板 例如 viridis 中的不同颜色着色 并且每个单元格显示颜色的十六进制值 谢谢您的帮助 您可以使用show col函数从scales package library viridis l
  • 如何在单击任何按钮时更改按钮的背景颜色?

    我有 3 个按钮 我创建了一个样式 用于所有三个按钮以显示 MouseOver 和 Pressed 状态 我需要有逻辑来指示选择 单击了哪个按钮 如果单击按钮 则背景颜色应保持 与按下状态相同 而其他两个按钮应重置为背景颜色以作为正常状态
  • 如何从 ASP.NET 读取条形码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不确定 这可能吗 我想从 ASP NET 网站扫描条形码 有人知道怎么做吗 您需要扫描仪以及与扫描仪交互的相关软件 大多数手持式扫描
  • 为什么 eb 部署在第一次部署时失败?

    我创建了 2 个 NodeJs 环境 效果很好 后来创建了一个新的环境并eb deploy env name给我以下错误 Creating application version archive app ceb7 200713 223016
  • Android:将compileSdkVersion设置为比最新api更低的版本有优势吗?

    将清单中的compileSdkVersion设置为小于最新的api版本号有什么好处 还是应该始终将其设置为最新的api版本 android compileSdkVersion 22 当我说优势时 我指的是应用程序的性能 应用程序的编译时间
  • 使用谷歌应用程序引擎部署 Bottle 应用程序时出现问题

    这里是新手 我一直在尝试使用谷歌应用程序引擎在瓶子中创建一个 Hello World 我显示了 hello world 部分 但即使在索引页面上 我也得到以下输出 Hello world 状态 500 如果我尝试添加新路由 例如 page
  • 关闭服务器后尝试运行服务器时,Django python已停止工作

    python manage py runserver 第一次工作正常 但是用 ctrl c 关闭它后 我无法再次启动它 我收到错误消息 Python 已停止工作 通过重新启动计算机可以轻松解决此问题 但非常不方便 我也使用 pycharm
  • 编译 Rust 静态库并在 C++ 中使用它:未定义的引用

    我正在尝试编译一个staticRust 中的库 然后在我的 C 代码中使用它 注意这是从 C 调用 Rust 而不是相反 我浏览了我可以在网上找到的所有教程 并回答了类似的问题 我显然做错了什么 尽管我看不出是什么 我为我的问题创建了一个最
  • 无法在 Ubuntu Oracle Java 8 上运行 IntelliJ IDEA CE 12

    我使用的是 Ubuntu 13 04 和 Oracle Java 8 我已经设置了JAVA HOME and PATH变量 以下是尝试运行 IntelliJ 的终端输出 darren ubuntu opt intellij idea ce
  • 如何在 Mac OS X 中检测 SSD?

    是否有一种可靠 快速 确定性的方法 即not基准 来检查 Mac OS X 所在的系统驱动器是否是固态驱动器 还有其他指标可以表明磁盘处理并行访问的能力如何吗 我正在尝试调整我的程序将用于磁盘绑定操作的线程数 我对原始速度或寻道时间不感兴趣