0

サードパーティのアプリケーションによって吐き出されたいくつかのログ ファイルを収集するための非常に短いプログラムを作成しました。ファイルを圧縮してメールで送信します。

また、マシン、特にそのグラフィックス機能に関する情報も収集したいと思います。基本的に、システム レポート、ハードウェア、およびグラフィックス/ディスプレイの 2 ページを希望します。ゲシュタルトがなくなったので、他の解決策を探しています。

SO で sysctlbyname を使用してマシンのモデルを取得する解決策を見つけましたが、ここの値はかなり制限されているようです。

では、GPU 情報を取得する簡単な方法はありますか?

4

2 に答える 2

2

上記のマークの回答に続いて、(Swift)コードでそれを行う方法を次に示します。まず、このソリューションを使用してシェル コマンドを実行しました。

func shell(launchPath: String, arguments: [String]) -> String
{
    let task = NSTask()
    task.launchPath = launchPath
    task.arguments = arguments

    let pipe = NSPipe()
    task.standardOutput = pipe
    task.launch()

    let data = pipe.fileHandleForReading.readDataToEndOfFile()
    let output: String = NSString(data: data, encoding: NSUTF8StringEncoding)! as String

    return output
}

次に、system_profiler で少し遊んだ後、2 つのキーに興味があることがわかりましSPHardwareDataTypeSPDisplaysDataType。system_profiler がどこにあるのか疑問に思っていましたが、which system_profiler解決しました。だから私はついに必要なものを手に入れました:

let ai = shell("/usr/sbin/system_profiler", arguments: ["SPHardwareDataType", "SPDisplaysDataType"])

結果はフォーマットされた文字列で、そのままで十分です。

于 2016-05-14T19:48:46.700 に答える
1

ターミナルのコマンドラインからシステム プロファイラーを使用するか、NSTask として実行します。

/usr/sbin/system_profiler | awk '/^Graphics/{p=1;print;next} /^[A-Z]/{p=0} p'

出力

Graphics/Displays: 

AMD Radeon R9 M395:

  Chipset Model: AMD Radeon R9 M395
  Type: GPU
  Bus: PCIe
  PCIe Lane Width: x16
  VRAM (Total): 2048 MB
  Vendor: ATI (0x1002)
  Device ID: 0x6920
  Revision ID: 0x0001
  ROM Revision: 113-C905AA-799
  EFI Driver Version: 01.00.799
  Displays:
    iMac:
      Display Type: Retina LCD
      Resolution: 5120 x 2880 Retina
      Retina: Yes
      Pixel Depth: 30-Bit Color (ARGB2101010)
      Main Display: Yes
      Mirror: Off
      Online: Yes
      Built-In: Yes
于 2016-05-13T14:14:33.357 に答える