2 min read

Getting CPU Information for Benchmarking with sysctl on macOS Tahoe

When benchmarking applications on macOS, especially when comparing native Apple Silicon performance with Rosetta, it's crucial to have accurate information about the CPU configuration. The sysctl command provides access to low-level system information, allowing for more informed performance analysis.

What is sysctl?

sysctl (System Control) is a command-line utility that allows you to view and modify kernel parameters. It's a powerful tool for querying hardware details, kernel settings, and various system tunables.

Accessing CPU Information

To retrieve CPU-related information, use sysctl with specific keys. Here are some useful examples:

1. Basic CPU Information

  • CPU Model Name:

    sysctl -n machdep.cpu.brand_string

    This will output a string describing the CPU model (e.g., "Apple M1").

  • CPU Architecture:

    sysctl -n hw.machine
    sysctl -n hw.model

    hw.machine provides a short identifier for the machine, while hw.model gives a more detailed model description.

2. Number of Cores

  • Total Number of Cores:

    sysctl -n hw.ncpu

3. L1/L2 Cache Information

Cache sizes can impact performance, especially for computationally intensive tasks.

  • L1 Cache Size:

    sysctl -n machdep.cpu.cache.L1Icache_size
    sysctl -n machdep.cpu.cache.L1dcache_size
  • L2 Cache Size:

    sysctl -n machdep.cpu.cache.L2cache_size
  • Benchmarking Native vs. Rosetta Applications on macOS Tahoe
  • Terminal Basics and Zsh Customization on macOS Tahoe