【问题标题】:Determine values of several system variables in the terminal in a Mac在 Mac 的终端中确定几个系统变量的值
【发布时间】:2025-11-29 17:20:02
【问题描述】:

我在 Mac 上。在终端中,您将如何计算以下每个值?

  • 字长(64 位与 32 位)
  • L1/L2 缓存大小
  • 确定正在使用多少内存(如 df,但用于 RAM)

谢谢!我知道您可以在 Activity Monitor、System Profiler 等中找到这些,但我正在努力提高我对终端和 UNIX 的了解。

【问题讨论】:

    标签: bash unix terminal system environment


    【解决方案1】:

    System Profiler 是一个围绕 /usr/sbin/system_profiler 的 GUI 包装器。

    mress:10008 Z$ system_profiler -listDataTypes 
    Available Datatypes:
    SPHardwareDataType
    SPNetworkDataType
    SPSoftwareDataType
    SPParallelATADataType
    SPAudioDataType
    SPBluetoothDataType
    SPCardReaderDataType
    SPDiagnosticsDataType
    SPDiscBurningDataType
    SPEthernetDataType
    SPFibreChannelDataType
    SPFireWireDataType
    SPDisplaysDataType
    SPHardwareRAIDDataType
    SPMemoryDataType
    SPPCIDataType
    SPParallelSCSIDataType
    SPPowerDataType
    SPPrintersDataType
    SPSASDataType
    SPSerialATADataType
    SPUSBDataType
    SPAirPortDataType
    SPFirewallDataType
    SPNetworkLocationDataType
    SPModemDataType
    SPNetworkVolumeDataType
    SPWWANDataType
    SPApplicationsDataType
    SPDeveloperToolsDataType
    SPExtensionsDataType
    SPFontsDataType
    SPFrameworksDataType
    SPLogsDataType
    SPManagedClientDataType
    SPPrefPaneDataType
    SPStartupItemDataType
    SPSyncServicesDataType
    SPUniversalAccessDataType
    mress:10009 Z$ system_profiler SPHardwareDataType
    Hardware:
    
        Hardware Overview:
    
          Model Name: iMac
          Model Identifier: iMac10,1
          Processor Name: Intel Core 2 Duo
          Processor Speed: 3.33 GHz
          Number Of Processors: 1
          Total Number Of Cores: 2
          L2 Cache: 6 MB
          Memory: 16 GB
          Bus Speed: 1.33 GHz
          Boot ROM Version: IM101.00CC.B00
          SMC Version (system): 1.52f9
          Serial Number (system): QP0241DXB9S
          Hardware UUID: 01C6B9E9-B0CB-5249-8AC7-069A3E44A188
    

    您还可以从/usr/sbin/sysctl 获得一些有用的信息(试试sysctl -a)。

    mress:10014 Z$ sudo sysctl -a | grep cache
    Password:
    hw.cachelinesize = 64
    hw.l1icachesize = 32768
    hw.l1dcachesize = 32768
    hw.l2cachesize = 6291456
    kern.flush_cache_on_write: 0
    vfs.generic.nfs.client.access_cache_timeout: 60
    vfs.generic.nfs.server.reqcache_size: 64
    net.inet.ip.rtmaxcache: 128
    net.inet6.ip6.rtmaxcache: 128
    hw.cacheconfig: 2 1 2 0 0 0 0 0 0 0
    hw.cachesize: 17179869184 32768 6291456 0 0 0 0 0 0 0
    hw.cachelinesize: 64
    hw.l1icachesize: 32768
    hw.l1dcachesize: 32768
    hw.l2cachesize: 6291456
    machdep.cpu.cache.linesize: 64
    machdep.cpu.cache.L2_associativity: 8
    machdep.cpu.cache.size: 6144
    

    【讨论】:

    • L1 缓存中的 32768 是位?
    • @pfernandez 我假设它以字节为单位
    • 为什么没有给出 L3 关联性,如何确定?
    最近更新 更多