Latest 1.0.3
Homepage https://github.com/daisuke-t-jp/Mach-Swift
License MIT
Platforms ios 10.0, osx 10.12, requires ARC
Authors

Platform
Language Swift%205.0
Build Status
Cocoapods
Carthage compatible

Introduction

You can easily get information from Mach.

The framework wrapped Mach functions in Swift.
It provides the following information.

Requirements

  • Platforms
    • iOS 10.0+
    • macOS 10.12+
  • Swift 5.0

Installation

Carthage

github "daisuke-t-jp/Mach-Swift"

CocoaPods

use_frameworks!

target 'target' do
pod 'Mach-Swift'
end

Usage

Import framework

import Mach_Swift

Getting Information

Code

do {
    print("# Mach")

    print("## Host")
    print("### Statistics")
    print("#### VMInfo")
    let vm = Mach.Host.Statistics.vmInfo()
    print("- freeSize: (vm.freeSize)") // byte size of free
    print("- activeSize: (vm.activeSize)") // byte size of active
    print("- inactiveSize: (vm.inactiveSize)") // byte size of inactive
    print("- wireSize: (vm.wireSize)") // byte size of wire
    print("")

    print("#### CPULoadInfo")
    let cpuLoadInfo = Mach.Host.Statistics.cpuLoadInfo()
    print("- userTick: (cpuLoadInfo.userTick)")
    print("- systemTick: (cpuLoadInfo.systemTick)")
    print("- idleTick: (cpuLoadInfo.idleTick)")
    print("- niceTick: (cpuLoadInfo.niceTick)")
    print("")

    print("### Info")
    print("#### BasicInfo")
    let basicInfo = Mach.Host.Info.basicInfo()
    print("- maxCPUs: (basicInfo.maxCPUs)")
    print("- availCPUs: (basicInfo.availCPUs)")
    print("- memorySize: (basicInfo.memorySize)")  // byte size
    print("- cpuType: (basicInfo.cpuType)")
    print("- cpuSubType: (basicInfo.cpuSubType)")
    print("- cpuThreadType: (basicInfo.cpuThreadType)")
    print("- physicalCPU: (basicInfo.physicalCPU)")
    print("- physicalCPUMax: (basicInfo.physicalCPUMax)")
    print("- logicalCPU: (basicInfo.logicalCPU)")
    print("- logicalCPUMax: (basicInfo.logicalCPUMax)")
    print("- maxMem: (basicInfo.maxMem)")  // byte size
    print("")

    print("### Processor")
    print("#### CPULoadInfo")
    let array = Mach.Host.Processor.cpuLoadInfoArray()
    for i in 0..<array.count {
        let cpu = array[i]
        print("- Core No.(i)")
        print("    - userTick: (cpu.userTick)")
        print("    - systemTick: (cpu.systemTick)")
        print("    - idleTick: (cpu.idleTick)")
        print("    - niceTick: (cpu.niceTick)")
        print("")
    }
}

print("")

do {
    print("## Task")
    print("### Info")
    print("#### BasicInfo")
    let basicInfo = Mach.Task.Info.basicInfo()
    print("- virtualSize: (basicInfo.virtualSize)")
    print("- residentSize: (basicInfo.residentSize)")
    print("- residentSizeMax: (basicInfo.residentSizeMax)")
    print("- userTime: (basicInfo.userTime)")
    print("- systemTime: (basicInfo.systemTime)")
    print("- policy: (basicInfo.policy)")
    print("- suspendCount: (basicInfo.suspendCount)")
    print("")

    print("#### ThreadBasicInfo")
    let array = Mach.Task.Thread.basicInfoArray()
    for i in 0..<array.count {
        let thread = array[i]
        print("- Thread No.(i)")
        print(String.init(format:"    - userTime: %.2f", thread.userTime))
        print(String.init(format:"    - systemTime: %.2f", thread.systemTime))
        print("    - cpuUsage: (thread.cpuUsage)")
        print("    - policy: (thread.policy)")
        print("    - runState: (thread.runState)")
        print("    - flags: (thread.flags)")
        print("    - suspendCount: (thread.suspendCount)")
        print("    - sleepTime: (thread.sleepTime)")
        print(String.init(format:"    - sleepTime: %.2f", thread.sleepTime))
        print("")
    }
}

Outout

# Mach
## Host
### Statistics
#### VMInfo
- freeSize: 130482176
- activeSize: 1765789696
- inactiveSize: 1649594368
- wireSize: 2495418368

#### CPULoadInfo
- userTick: 785470
- systemTick: 503253
- idleTick: 4632473
- niceTick: 0

### Info
#### BasicInfo
- maxCPUs: 4
- availCPUs: 4
- memorySize: 2147483648
- cpuType: 7
- cpuSubType: 8
- cpuThreadType: 1
- physicalCPU: 2
- physicalCPUMax: 2
- logicalCPU: 4
- logicalCPUMax: 4
- maxMem: 8589934592

### Processor
#### CPULoadInfo
- Core No.0
    - userTick: 257206
    - systemTick: 186605
    - idleTick: 1036690
    - niceTick: 0

- Core No.1
    - userTick: 144763
    - systemTick: 87848
    - idleTick: 1247622
    - niceTick: 0

- Core No.2
    - userTick: 251769
    - systemTick: 155100
    - idleTick: 1073364
    - niceTick: 0

- Core No.3
    - userTick: 131732
    - systemTick: 73700
    - idleTick: 1274800
    - niceTick: 0

## Task
### Info
#### BasicInfo
- virtualSize: 5425922048
- residentSize: 78155776
- residentSizeMax: 78155776
- userTime: 0.000426
- systemTime: 0.003031
- policy: 1
- suspendCount: 0

#### ThreadBasicInfo
- Thread No.0
    - userTime: 0.24
    - systemTime: 0.93
    - cpuUsage: 626
    - policy: 1
    - runState: 1
    - flags: Flag(rawValue: 0)
    - suspendCount: 0
    - sleepTime: 0.0
    - sleepTime: 0.00

- Thread No.1
    - userTime: 0.01
    - systemTime: 0.01
    - cpuUsage: 23
    - policy: 1
    - runState: 3
    - flags: Flag(rawValue: 1)
    - suspendCount: 0
    - sleepTime: 0.0
    - sleepTime: 0.00

- Thread No.2
    - userTime: 0.00
    - systemTime: 0.00
    - cpuUsage: 6
    - policy: 1
    - runState: 3
    - flags: Flag(rawValue: 1)
    - suspendCount: 0
    - sleepTime: 0.0
    - sleepTime: 0.00

- Thread No.3
    - userTime: 0.00
    - systemTime: 0.00
    - cpuUsage: 0
    - policy: 1
    - runState: 3
    - flags: Flag(rawValue: 1)
    - suspendCount: 0
    - sleepTime: 0.0
    - sleepTime: 0.00

- Thread No.4
    - userTime: 0.00
    - systemTime: 0.00
    - cpuUsage: 4
    - policy: 1
    - runState: 3
    - flags: Flag(rawValue: 1)
    - suspendCount: 0
    - sleepTime: 0.0
    - sleepTime: 0.00

- Thread No.5
    - userTime: 0.00
    - systemTime: 0.01
    - cpuUsage: 12
    - policy: 1
    - runState: 3
    - flags: Flag(rawValue: 1)
    - suspendCount: 0
    - sleepTime: 0.0
    - sleepTime: 0.00

Demo

There are demos.

Latest podspec

{
    "name": "Mach-Swift",
    "version": "1.0.3",
    "summary": "You can easily get information from Mach.",
    "description": "You can easily get information from Mach.nThis framework wrapped Mach functions in Swift.",
    "homepage": "https://github.com/daisuke-t-jp/Mach-Swift",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    },
    "authors": {
        "daisuke-t-jp": "[email protected]"
    },
    "platforms": {
        "ios": "10.0",
        "osx": "10.12"
    },
    "source": {
        "git": "https://github.com/daisuke-t-jp/Mach-Swift.git",
        "tag": "1.0.3"
    },
    "source_files": "Mach-Swift/**/*.{swift}",
    "swift_version": "5.0",
    "requires_arc": true
}

Pin It on Pinterest

Share This