duffy 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/lib/duffy/system.rb +13 -3
- data/lib/duffy/version.rb +2 -1
- data/spec/system_spec.rb +5 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21c3ea1e97e41dfc1f1e3f82e5c35b53d560f96c
|
4
|
+
data.tar.gz: 200eab70b8d0017ff974f42b7d95ea1d530d5c9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3559f84b6cb9d4d6bdd222985823ced43d62b25b11087d05dd1657a02cba276ea6f71ba2879d41ab56973bb1f04e3d86f0afc29166286aa6cf6b6d01ee62bbf7
|
7
|
+
data.tar.gz: 07aa37fc3a695b5f8179312084ee1b1c4b829f638161226bb7fc322464ecb2a3b20d4515d385a48c9d1b0f8b8ef87e793e71bb0807fe0aaf65dfa45c44b6b6d7
|
data/README.md
CHANGED
@@ -75,7 +75,8 @@ Duffy::Git.branch | Current git branch.
|
|
75
75
|
|
76
76
|
|
77
77
|
## CPU Detection:
|
78
|
-
* Linux and Mac only for now,
|
78
|
+
* Linux and Mac only for now, numeric methods return 1 on unsupported hosts.
|
79
|
+
* `virtual?` detects if the system is hypervisor guest. Will return false if unable to determine.
|
79
80
|
* Example results for my dual core i5 with hyperthreading.
|
80
81
|
|
81
82
|
Method | Result
|
@@ -85,6 +86,7 @@ Duffy::System.cores | 2
|
|
85
86
|
Duffy::System.threads | 4
|
86
87
|
Duffy::System.sane_load | 3
|
87
88
|
Duffy::System.cpu_percent| 16
|
89
|
+
Duffy::System.virtual? | true
|
88
90
|
|
89
91
|
## Memory Statistics:
|
90
92
|
* All values returned in Megabytes.
|
data/lib/duffy/system.rb
CHANGED
@@ -21,7 +21,7 @@ module Duffy
|
|
21
21
|
# Mac: hw.physicalcpu
|
22
22
|
def cores
|
23
23
|
case RUBY_PLATFORM
|
24
|
-
when /linux/ then File.read('/proc/cpuinfo').scan(/(cpu cores)
|
24
|
+
when /linux/ then File.read('/proc/cpuinfo').scan(/(cpu cores)(\D)*(\d+)/)[0][2].to_i * cpus
|
25
25
|
when /darwin/ then `sysctl -n hw.physicalcpu`.to_i
|
26
26
|
else 1
|
27
27
|
end
|
@@ -40,10 +40,20 @@ module Duffy
|
|
40
40
|
1
|
41
41
|
end
|
42
42
|
|
43
|
+
def virtual?
|
44
|
+
case RUBY_PLATFORM
|
45
|
+
when /linux/ then !!File.read('/proc/cpuinfo').scan(/^flags.*(hypervisor)/)[0]
|
46
|
+
when /darwin/ then false # PENDING
|
47
|
+
else false
|
48
|
+
end
|
49
|
+
rescue
|
50
|
+
false
|
51
|
+
end
|
52
|
+
|
43
53
|
# What is a sane number of threads to use for data processing.
|
44
|
-
#
|
54
|
+
# You want to leave some headroom for your database etc running in other processes.
|
45
55
|
def sane_load
|
46
|
-
|
56
|
+
threads * 3 / 4
|
47
57
|
end
|
48
58
|
|
49
59
|
# The system's current CPU utilization.
|
data/lib/duffy/version.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
module Duffy
|
2
|
-
VERSION =
|
2
|
+
VERSION = '0.3.5'
|
3
3
|
end
|
4
4
|
|
5
5
|
# History
|
6
|
+
# 0.3.5 - Fixed linux cores detection for very high core count CPUs. Added virtualization detection on linux.
|
6
7
|
# 0.3.4 - pretty_phone now adds the dash for 7 digit phone numbers.
|
7
8
|
# 0.3.3 - Added beginning_of_fiscal_year and end_of_fiscal_year methods to Date
|
8
9
|
# 0.3.2 - Added mem_percentage as a convenience and safeguard against div/0 in user code.
|
data/spec/system_spec.rb
CHANGED
@@ -22,7 +22,12 @@ describe Duffy::System do
|
|
22
22
|
it "returns the total number of threads" do
|
23
23
|
expect(Duffy::System.threads).to be_an(Integer)
|
24
24
|
expect(Duffy::System.threads).to be >= 1
|
25
|
+
end
|
26
|
+
end
|
25
27
|
|
28
|
+
describe "virtual?" do
|
29
|
+
it "returns true if in a hypervisor, false otherwise." do
|
30
|
+
expect(Duffy::System.virtual?).to be_in [true, false]
|
26
31
|
end
|
27
32
|
end
|
28
33
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: duffy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jacob Duffy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|