Skip to content

daisuke-t-jp/Mach-Swift

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 


Mach-Swift

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.