xcprofiler 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +4 -10
- data/README.md +10 -2
- data/lib/xcprofiler/derived_data.rb +5 -1
- data/lib/xcprofiler/version.rb +1 -1
- data/lib/xcprofiler.rb +18 -6
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 167469e1e9d334e5ffd877fb3b9668e1081d3238
|
4
|
+
data.tar.gz: fa51398662b069680afe18effa5c948dd04b0552
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15dbea15d0d88ac47c876ca2ce77a0cb14b4b3640bea9089bfce5225f98f0a65ea863a522ca8abf82c8bcf8f683a1bf023c903d397fb1875b0a0c5dac574b524
|
7
|
+
data.tar.gz: d15a334bdf695d97de866f9137ad77a67fb0cc87ea3a04d6273eac8854f43541e5c8f4d7979f31bda36e4435c1eb780390b2d343d976947dcea87c0e996345f3
|
data/.travis.yml
CHANGED
@@ -3,15 +3,9 @@ cache: bundler
|
|
3
3
|
script:
|
4
4
|
- "bundle exec rspec spec"
|
5
5
|
rvm:
|
6
|
-
|
7
|
-
- 2.
|
8
|
-
# OS X 10.9.3-10.9.4
|
9
|
-
- 2.0.0-p451
|
10
|
-
- 2.3.1
|
6
|
+
- 2.3.5
|
7
|
+
- 2.4.2
|
11
8
|
matrix:
|
12
9
|
include:
|
13
|
-
- rvm:
|
14
|
-
|
15
|
-
language: objective-c
|
16
|
-
before_install: sudo gem install bundler
|
17
|
-
- rvm: 2.3.1
|
10
|
+
- rvm: 2.3.5
|
11
|
+
- rvm: 2.4.2
|
data/README.md
CHANGED
@@ -16,9 +16,11 @@ This tool is developed in working time for Cookpad.
|
|
16
16
|
gem install xcprofiler
|
17
17
|
```
|
18
18
|
|
19
|
+
xcprofiler is tested on latest Ruby 2.3/2.4.
|
20
|
+
|
19
21
|
## Usage
|
20
22
|
|
21
|
-
1. Add `-Xfrontend -debug-time-function-bodies` build flags in `Other Swift Flags` section
|
23
|
+
1. Add `-Xfrontend -debug-time-function-bodies` build flags in `Build Settings` -> `Other Swift Flags` section of your Xcode project.
|
22
24
|

|
23
25
|
|
24
26
|
2. Build your project
|
@@ -76,7 +78,7 @@ Sample output is here
|
|
76
78
|
|--order|-o|Sort order (default,time,file)|
|
77
79
|
|--derived-data-path||Root path of DerivedData directory|
|
78
80
|
|--truncate-at|-t|Truncate the method name with specified length|
|
79
|
-
|--no-unique
|
81
|
+
|--no-unique||Show the duplicated results|
|
80
82
|
|
81
83
|
## Use custom reporters
|
82
84
|
|
@@ -100,6 +102,12 @@ You can also implement your own reporters.
|
|
100
102
|
|
101
103
|
See implementation of [built-in reporters](https://github.com/giginet/xcprofiler/tree/master/lib/xcprofiler/reporters) for detail.
|
102
104
|
|
105
|
+
## danger-xcprofiler
|
106
|
+
|
107
|
+
You can integrate xcprofiler to [danger](https://github.com/danger/danger).
|
108
|
+
|
109
|
+
https://github.com/giginet/danger-xcprofiler
|
110
|
+
|
103
111
|
## License
|
104
112
|
|
105
113
|
MIT License
|
@@ -26,7 +26,7 @@ module Xcprofiler
|
|
26
26
|
raise DerivedDataNotFound, 'Any matching derived data are not found'
|
27
27
|
end
|
28
28
|
|
29
|
-
derived_data.max_by { |data| data.updated_at }
|
29
|
+
derived_data.select { |data| !data.zero? }.max_by { |data| data.updated_at }
|
30
30
|
end
|
31
31
|
|
32
32
|
def default_derived_data_root
|
@@ -38,6 +38,10 @@ module Xcprofiler
|
|
38
38
|
@path = path
|
39
39
|
end
|
40
40
|
|
41
|
+
def zero?
|
42
|
+
File.zero?(@path)
|
43
|
+
end
|
44
|
+
|
41
45
|
def updated_at
|
42
46
|
File.mtime(@path)
|
43
47
|
end
|
data/lib/xcprofiler/version.rb
CHANGED
data/lib/xcprofiler.rb
CHANGED
@@ -28,6 +28,7 @@ module Xcprofiler
|
|
28
28
|
opts.on("--derived-data-path", String, "Root path of DerivedData") { |v| options.derived_data_path = v }
|
29
29
|
opts.on("-t", "--truncate-at [TRUNCATE_AT]", Integer, "Truncate the method name with specified length") { |v| options.truncate_at = v }
|
30
30
|
opts.on("--[no-]unique", "Reject duplicated location results or not") { |v| options.unique = v }
|
31
|
+
opts.on("--output [PATH]", String, "File path to output reporters' result") { |v| options.output = v }
|
31
32
|
opts.on_tail("-h", "--help", "Show this message") do
|
32
33
|
puts opts
|
33
34
|
exit
|
@@ -50,12 +51,23 @@ module Xcprofiler
|
|
50
51
|
derived_data_path = options[:derived_data_path]
|
51
52
|
profiler = Profiler.by_product_name(target, derived_data_path)
|
52
53
|
end
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
54
|
+
|
55
|
+
reporter_args = {
|
56
|
+
limit: options[:limit],
|
57
|
+
threshold: options[:threshold],
|
58
|
+
order: order,
|
59
|
+
show_invalid_locations: options[:show_invalid_locations],
|
60
|
+
truncate_at: options[:truncate_at],
|
61
|
+
unique: options[:unique]
|
62
|
+
}
|
63
|
+
reporters = [StandardOutputReporter.new(reporter_args)]
|
64
|
+
if options[:output]
|
65
|
+
json_args = options.dup
|
66
|
+
json_args[:output] = options[:output]
|
67
|
+
reporters << JSONReporter.new(json_args)
|
68
|
+
end
|
69
|
+
|
70
|
+
profiler.reporters = reporters
|
59
71
|
profiler.report!
|
60
72
|
rescue Exception => e
|
61
73
|
puts e.message.red
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xcprofiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- giginet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
144
|
version: '0'
|
145
145
|
requirements: []
|
146
146
|
rubyforge_project:
|
147
|
-
rubygems_version: 2.5.
|
147
|
+
rubygems_version: 2.5.1
|
148
148
|
signing_key:
|
149
149
|
specification_version: 4
|
150
150
|
summary: CLI to profile compilation time of Swift projects
|