Skip to content

PERF: performance regressions in 0.20.dev #16043

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jorisvandenbossche opened this issue Apr 18, 2017 · 4 comments
Closed

PERF: performance regressions in 0.20.dev #16043

jorisvandenbossche opened this issue Apr 18, 2017 · 4 comments
Labels
Performance Memory or execution speed performance

Comments

@jorisvandenbossche
Copy link
Member

Comparing 0.19.2 with the latest master, and using a factor of 1.5 as threshold, I get those:

Benchmarks that have got worse:

    before     after       ratio
  [6f525eec] [f880728d]
+    1.50ms     6.70ms      4.46  algorithms.Hashing.time_series_categorical
+  112.62ms   217.37ms      1.93  frame_methods.frame_duplicated.time_frame_duplicated_wide
+   11.56ms    20.40ms      1.76  groupby.GroupBySuite.time_unique('float', 100)
+     1.09s      1.95s      1.78  groupby.GroupBySuite.time_unique('float', 10000)
+    7.71ms    13.28ms      1.72  groupby.GroupBySuite.time_unique('int', 100)
+  672.77ms      1.22s      1.82  groupby.GroupBySuite.time_unique('int', 10000)
+    5.81ms     9.45ms      1.63  groupby.groupby_categorical.time_groupby_nosort
+   16.47ms    36.74ms      2.23  groupby.groupby_period.time_groupby_sum
+   46.41ms   127.96ms      2.76  inference.to_numeric_downcast.time_downcast('int-list', 'float')
+   56.87ms   138.24ms      2.43  inference.to_numeric_downcast.time_downcast('int-list', 'integer')
+   56.60ms   138.73ms      2.45  inference.to_numeric_downcast.time_downcast('int-list', 'signed')
+   57.44ms   143.97ms      2.51  inference.to_numeric_downcast.time_downcast('int-list', 'unsigned')
+   46.16ms   127.57ms      2.76  inference.to_numeric_downcast.time_downcast('int-list', None)
+    9.34μs   258.21μs     27.64  inference.to_numeric_downcast.time_downcast('int32', 'float')
+   78.55ms   148.25ms      1.89  inference.to_numeric_downcast.time_downcast('string-float', 'float')
+   80.55ms   148.59ms      1.84  inference.to_numeric_downcast.time_downcast('string-float', 'integer')
+   76.44ms   149.57ms      1.96  inference.to_numeric_downcast.time_downcast('string-float', 'signed')
+   76.39ms   148.51ms      1.94  inference.to_numeric_downcast.time_downcast('string-float', 'unsigned')
+   75.79ms   148.09ms      1.95  inference.to_numeric_downcast.time_downcast('string-float', None)
+  147.06ms   273.70ms      1.86  inference.to_numeric_downcast.time_downcast('string-int', 'float')
+  156.82ms   295.98ms      1.89  inference.to_numeric_downcast.time_downcast('string-int', 'integer')
+  157.41ms   281.58ms      1.79  inference.to_numeric_downcast.time_downcast('string-int', 'signed')
+  157.77ms   279.80ms      1.77  inference.to_numeric_downcast.time_downcast('string-int', 'unsigned')
+  146.58ms   269.75ms      1.84  inference.to_numeric_downcast.time_downcast('string-int', None)
+  148.72ms   266.83ms      1.79  inference.to_numeric_downcast.time_downcast('string-nint', 'float')
+  157.92ms   271.05ms      1.72  inference.to_numeric_downcast.time_downcast('string-nint', 'integer')
+  156.89ms   275.78ms      1.76  inference.to_numeric_downcast.time_downcast('string-nint', 'signed')
+  147.16ms   261.84ms      1.78  inference.to_numeric_downcast.time_downcast('string-nint', 'unsigned')
+  147.07ms   261.70ms      1.78  inference.to_numeric_downcast.time_downcast('string-nint', None)
+  717.85μs     3.68ms      5.13  sparse.sparse_arithmetic_block.time_sparse_addition
+  755.98μs     3.69ms      4.87  sparse.sparse_arithmetic_block.time_sparse_addition_zero
+  767.81μs     3.85ms      5.02  sparse.sparse_arithmetic_block.time_sparse_division
+  807.16μs     3.73ms      4.63  sparse.sparse_arithmetic_block.time_sparse_division_zero
+  599.17μs     3.53ms      5.89  sparse.sparse_arithmetic_block.time_sparse_make_union
+   13.96ms    40.68ms      2.91  sparse.sparse_arithmetic_int.time_sparse_addition_10percent
+   11.76ms    37.95ms      3.23  sparse.sparse_arithmetic_int.time_sparse_addition_10percent_zero
+    1.13ms     4.10ms      3.61  sparse.sparse_arithmetic_int.time_sparse_addition_1percent
+   14.54ms    41.21ms      2.83  sparse.sparse_arithmetic_int.time_sparse_division_10percent
+   12.29ms    38.60ms      3.14  sparse.sparse_arithmetic_int.time_sparse_division_10percent_zero
+    1.20ms     4.11ms      3.42  sparse.sparse_arithmetic_int.time_sparse_division_1percent
+    1.36ms     2.71ms      1.99  sparse.sparse_arithmetic_int.time_sparse_intersect
+   12.51ms    39.08ms      3.12  sparse.sparse_arithmetic_int.time_sparse_make_union
+   18.39μs    87.47μs      4.76  timeseries.AsOfDataFrame.time_asof_single_early

I don't think there are real blockers for 0.20, but the sparse (cc @sinhrks) and to_numeric downcast (cc @gfyoung) seem to be systematically slower

@jorisvandenbossche jorisvandenbossche added this to the Next Minor Release milestone Apr 18, 2017
@jorisvandenbossche jorisvandenbossche added the Performance Memory or execution speed performance label Apr 18, 2017
@gfyoung
Copy link
Member

gfyoung commented Apr 18, 2017

@jorisvandenbossche : Thanks for letting me know. Looking through the git log, I don't see any obvious places where downcast could have been slowed down that much. Given that this isn't a blocker, I'll keep this on my radar for future work.

@jreback
Copy link
Contributor

jreback commented Apr 18, 2017

@jorisvandenbossche if possible can you re-run and re-post the top.

@jreback
Copy link
Contributor

jreback commented Apr 25, 2017

if anyone wants to re-run.

@jreback
Copy link
Contributor

jreback commented Nov 26, 2017

prob should re-run with master against this.

@jreback jreback closed this as completed Nov 26, 2017
@jreback jreback modified the milestones: Interesting Issues, Next Major Release Nov 26, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Performance Memory or execution speed performance
Projects
None yet
Development

No branches or pull requests

3 participants