Skip to content

Instantly share code, notes, and snippets.

@margaret
Created May 24, 2017 06:00
Show Gist options
  • Save margaret/489f8b5a8e6e8eb754a01df0c425dbb7 to your computer and use it in GitHub Desktop.
Save margaret/489f8b5a8e6e8eb754a01df0c425dbb7 to your computer and use it in GitHub Desktop.
before after ratio
[49ec31bb] [b904308f]
! 24.3s failed n/a panel_methods.PanelMethods.time_pct_change_items
! 20.1s failed n/a panel_methods.PanelMethods.time_pct_change_major
! 21.8s failed n/a panel_methods.PanelMethods.time_pct_change_minor
+ 3.74±0.2ms 7.53±0.06ms 2.01 strings.StringMethods.time_contains_few_noregex
+ 83.0±3μs 136±4μs 1.64 timeseries.SemiMonthOffset.time_end_incr
+ 90.6±4μs 145±6μs 1.60 timeseries.SemiMonthOffset.time_end_incr_n
+ 878±3ms 1.34s 1.53 timeseries.SemiMonthOffset.time_end_incr_rng
+ 55.5±1ms 82.3±4ms 1.48 packers.HDF.time_write_hdf_table
+ 4.47±0.08ms 6.59±0.4ms 1.47 strings.StringMethods.time_get
+ 2.60±0.09ms 3.81±0.4ms 1.47 reshape.melt_dataframe.time_melt_dataframe
+ 34.5±0.3ms 50.0±2ms 1.45 packers.MsgPack.time_write_msgpack
+ 60.1±0.7ms 85.6±2ms 1.42 packers.HDF.time_write_hdf_store
+ 590±20μs 840±10μs 1.42 period.Algorithms.time_value_counts_pindex
+ 103±3μs 147±8μs 1.42 period.period_standard_indexing.time_series_loc
+ 42.5±0.5ms 59.7±3ms 1.40 packers.Pickle.time_write_pickle
+ 13.4±0.4μs 18.6±0.7μs 1.38 period.period_standard_indexing.time_shallow_copy
+ 127μs 175μs 1.38 panel_methods.PanelMethods.time_shift
+ 12.4±0.2ms 17.1±1ms 1.38 strings.StringMethods.time_findall
+ 2.71±0.03ms 3.73±0.06ms 1.38 reindex.Duplicates.time_frame_drop_dups_bool
+ 4.02±0.09ms 5.54±0.7ms 1.38 strings.StringMethods.time_upper
+ 372±10μs 511±20μs 1.37 reindex.FillMethod.time_backfill
+ 3.01±0.1ms 4.09±0.1ms 1.36 parser_vb.read_csv3.time_default_converter_with_decimal
+ 56.6±1ms 76.1±2ms 1.34 strings.StringMethods.time_extract
+ 6.93±0.2ms 9.30±0.7ms 1.34 timeseries.ToDatetime.time_iso8601_format
+ 1.49±0.05ms 1.99±0.04ms 1.34 period.period_standard_indexing.time_align
+ 4.56±0.07ms 6.04±0.09ms 1.33 reindex.Duplicates.time_frame_drop_dups_inplace
+ 2.23±0.09ms 2.93±0.1ms 1.32 frame_ctor.FrameConstructorDTIndexFromOffsets.time_frame_ctor('Week', 2)
+ 91.6±2μs 121±6μs 1.32 timeseries.SemiMonthOffset.time_begin_decr_n
+ 208±5μs 272±5μs 1.31 period.Constructor.time_from_date_range
+ 83.5±2μs 109±10μs 1.31 timeseries.SemiMonthOffset.time_begin_incr
+ 88.7±2μs 116±4μs 1.30 timeseries.SemiMonthOffset.time_begin_incr_n
+ 807±10μs 1.05±0.02ms 1.30 reindex.Duplicates.time_series_drop_dups_int
+ 294±10μs 381±10μs 1.29 period.period_standard_indexing.time_intersection
+ 2.23±0.04ms 2.88±0.1ms 1.29 frame_ctor.FrameConstructorDTIndexFromOffsets.time_frame_ctor('Milli', 1)
+ 141ms 182ms 1.29 packers.JSON.time_write_json_mixed_delta_int_tstamp
+ 18.0ms 23.0ms 1.28 frame_ctor.FrameConstructorDTIndexFromOffsets.time_frame_ctor('FY5253Quarter_1', 1)
+ 7.20±0.2ms 9.20±0.2ms 1.28 timeseries.ToDatetime.time_iso8601
+ 202ms 257ms 1.27 packers.JSON.time_write_json_lines
+ 79.4±0.6ms 101±5ms 1.27 parser_vb.read_csv_categorical.time_convert_post
+ 16.3±0.5μs 20.6±0.7μs 1.26 period.Algorithms.time_drop_duplicates_pindex
+ 1.78±0.04ms 2.24±0.2ms 1.26 timeseries.ResampleSeries.time_1min_5min_ohlc
+ 262±9ms 330±10ms 1.26 join_merge.ConcatPanels.time_f_ordered_axis1
+ 1.02s 1.28s 1.26 join_merge.ConcatPanels.time_c_ordered_axis2
+ 4.58±0.09ms 5.75±0.03ms 1.26 stat_ops.stats_rolling_mean.time_rolling_max
+ 264±7ms 330±3ms 1.25 join_merge.ConcatPanels.time_f_ordered_axis2
+ 10.1±0.1ms 12.6±0.7ms 1.25 strings.StringMethods.time_count
+ 17.9±0.6ms 22.3±0.3ms 1.25 join_merge.Join.time_join_dataframe_index_single_key_small
+ 19.0±0.3μs 23.7±0.5μs 1.24 period.period_standard_indexing.time_get_loc
+ 4.80±0.04ms 5.97±0.05ms 1.24 reindex.Duplicates.time_frame_drop_dups_na_inplace
+ 2.92±0.09ms 3.63±0.2ms 1.24 parser_vb.read_csv3.time_default_converter
+ 4.89±0.1ms 6.07±0.3ms 1.24 strings.StringMethods.time_lstrip
+ 141±2ms 175±6ms 1.24 join_merge.Concat.time_concat_series_axis1
+ 265±3ms 329±9ms 1.24 strings.StringMethods.time_get_dummies
+ 131ms 163ms 1.24 packers.JSON.time_write_json_date_index
+ 2.79±0.05ms 3.45±0.1ms 1.24 parser_vb.read_csv3.time_precise_converter
+ 5.94±0.2ms 7.35±0.4ms 1.24 strings.StringMethods.time_endswith
+ 398±9μs 492±20μs 1.24 timeseries.Offsets.time_custom_bmonthbegin_incr_n
+ 3.97±0.1ms 4.91±0.1ms 1.24 strings.StringMethods.time_lower
+ 91.4±0.9ms 113±1ms 1.23 reindex.Align.time_align_series_irregular_string
+ 4.36±0.1ms 5.37±0.4ms 1.23 period.Algorithms.time_value_counts_pseries
+ 176±3ms 216±8ms 1.23 packers.packers_read_json_date_index.time_packers_read_json_date_index
+ 8.44±0.1ms 10.4±0.2ms 1.23 strings.StringMethods.time_contains_few
+ 3.53±0.09ms 4.32±0.2ms 1.22 timeseries.ResampleDataFrame.time_mean_string
+ 67.8ms 83.0ms 1.22 frame_ctor.FrameConstructorDTIndexFromOffsets.time_frame_ctor('FY5253Quarter_2', 1)
+ 2.71±0.08ms 3.31±0.06ms 1.22 replace.replace_replacena.time_replace_replacena
+ 892±10μs 1.09±0.01ms 1.22 reindex.Duplicates.time_series_drop_dups_string
+ 5.00±0.1ms 6.11±0.2ms 1.22 frame_ctor.FrameConstructorDTIndexFromOffsets.time_frame_ctor('WeekOfMonth', 2)
+ 2.89±0.09ms 3.52±0.2ms 1.22 timeseries.ResampleSeries.time_resample_datetime64
+ 19.0±0.4ms 23.1±2ms 1.22 strings.StringMethods.time_repeat
+ 6.31±0.05ms 7.69±0.3ms 1.22 strings.StringMethods.time_pad
+ 5.88±0.2ms 7.16±0.2ms 1.22 packers.packers_read_sas.time_read_xport
+ 6.46±0.1ms 7.86±0.4ms 1.22 stat_ops.stats_rolling_mean.time_rolling_kurt
+ 20.4±0.6ms 24.8±0.7ms 1.22 io_sql.ReadSQLTypes.time_float_read_table_sqlalchemy
+ 44.1±1ms 53.6±3ms 1.22 parser_vb.read_csv2.time_comment
+ 48.9±0.5ms 59.3±3ms 1.21 io_sql.ReadSQL.time_read_query_sqlalchemy
+ 3.13s 3.78s 1.21 join_merge.JoinIndex.time_left_outer_join_index
+ 52.3±0.9ms 63.2±2ms 1.21 strings.StringMethods.time_join_split_expand
+ 3.83±0.07ms 4.63±0.1ms 1.21 strings.StringMethods.time_len
+ 3.70±0.06ms 4.46±0.2ms 1.21 strings.StringMethods.time_contains_many_noregex
+ 200±3ms 241±10ms 1.20 plotting.TimeseriesPlotting.time_plot_regular
+ 119ms 143ms 1.20 frame_ctor.FrameConstructorDTIndexFromOffsets.time_frame_ctor('FY5253Quarter_2', 2)
+ 136ms 164ms 1.20 packers.JSON.time_write_json_mixed_float_int_str
+ 108±3ms 129±4ms 1.20 packers.packers_read_sas.time_read_sas7bdat
+ 78.0ms 93.4ms 1.20 packers.STATA.time_write_stata_with_validation
+ 2.52±0.08ms 3.01±0.1ms 1.20 join_merge.Merge.time_merge_dataframe_integer_key
+ 36.1±0.4ms 43.2±2ms 1.20 strings.StringMethods.time_join_split
+ 19.1±0.3ms 22.8±0.2ms 1.19 reindex.Duplicates.time_frame_drop_dups_na
+ 34.2s 40.8s 1.19 replace.replace_large_dict.time_replace_large_dict
+ 97.4±3ms 116±0.6ms 1.19 panel_ctor.Constructors4.time_panel_from_dict_two_different_indexes
+ 125ms 149ms 1.19 packers.JSON.time_write_json_T
+ 453±10μs 539±10μs 1.19 timeseries.Offsets.time_custom_bmonthend_decr_n
+ 321±6ms 380±10ms 1.19 timeseries.ToDatetime.time_iso8601_tz_spaceformat
+ 3.53±0.07ms 4.19±0.03ms 1.19 period.Algorithms.time_drop_duplicates_pseries
+ 257±6μs 305±10μs 1.19 join_merge.Concat.time_concat_empty_frames2
+ 5.56±0.09ms 6.60±0.5ms 1.19 timeseries.SeriesArithmetic.time_add_offset_delta
+ 7.05±0.2μs 8.35±0.04μs 1.18 index_object.Float64.time_slice_indexer_even
+ 2.32±0.06ms 2.75±0.09ms 1.18 frame_ctor.FrameConstructorDTIndexFromOffsets.time_frame_ctor('Second', 1)
+ 56.1±1ms 66.4±0.2ms 1.18 reindex.Duplicates.time_frame_drop_dups_int
+ 28.8±0.6ms 34.1±0.6ms 1.18 timedelta.ToTimedelta.time_convert_string
+ 118ms 140ms 1.18 packers.JSON.time_write_json
+ 25.7±0.7ms 30.4±1ms 1.18 join_merge.MergeAsof.time_on_int32
+ 137ms 161ms 1.18 packers.JSON.time_write_json_mixed_float_int_T
+ 978±7ns 1.15±0.01μs 1.18 index_object.Float64.time_get
+ 407±8μs 478±10μs 1.17 timeseries.Offsets.time_custom_bmonthbegin_decr_n
+ 1.46s 1.71s 1.17 join_merge.i8merge.time_i8merge
+ 651±10μs 764±8μs 1.17 join_merge.Append.time_append_homogenous
+ 1.73±0.06ms 2.03±0.01ms 1.17 series_methods.series_isin_int64.time_series_isin_int64
+ 2.30±0.08ms 2.69±0.2ms 1.17 frame_ctor.FrameConstructorDTIndexFromOffsets.time_frame_ctor('Hour', 1)
+ 41.5±0.6μs 48.5±0.5μs 1.17 timeseries.Offsets.time_timeseries_year_incr
+ 8.20±0.2ms 9.58±0.2ms 1.17 period.Constructor.time_from_pydatetime
+ 263±7μs 306±6μs 1.16 join_merge.Concat.time_concat_empty_frames1
+ 15.8±0.2ms 18.4±0.3ms 1.16 timeseries.TimeSeries.time_add_irregular
+ 209±5ms 244±3ms 1.16 panel_ctor.Constructors1.time_panel_from_dict_all_different_indexes
+ 91.0±2ms 106±1ms 1.16 join_merge.Concat.time_concat_small_frames
+ 307±20ms 356±2ms 1.16 join_merge.ConcatPanels.time_c_ordered_axis1
+ 40.8±0.3μs 47.3±1μs 1.16 timeseries.Offsets.time_custom_bday_incr
+ 149±2ms 172±4ms 1.16 io_sql.WriteSQLTypes.time_datetime_sqlalchemy
+ 88.3±1μs 102±3μs 1.15 timeseries.SemiMonthOffset.time_begin_decr
+ 1.65±0.05ms 1.90±0.08ms 1.15 timeseries.ResampleSeries.time_1min_5min_mean
+ 59.8±1ms 68.9±0.9ms 1.15 panel_ctor.Constructors3.time_panel_from_dict_same_index
+ 28.5ms 32.8ms 1.15 frame_ctor.FrameConstructorDTIndexFromOffsets.time_frame_ctor('FY5253Quarter_1', 2)
+ 6.57±0.06ms 7.56±0.5ms 1.15 sparse.sparse_arithmetic_int.time_sparse_division_1percent
+ 860±20ms 987±9ms 1.15 timeseries.SemiMonthOffset.time_begin_incr_rng
+ 3.73±0.08ms 4.28±0.09ms 1.15 timeseries.ResampleDataFrame.time_max_numpy
+ 156±0.3ms 179±7ms 1.14 packers.packers_read_excel.time_packers_read_excel
+ 2.29±0.06ms 2.62±0.06ms 1.14 frame_ctor.FrameConstructorDTIndexFromOffsets.time_frame_ctor('Micro', 2)
+ 37.8±1ms 43.3±1ms 1.14 packers.packers_read_hdf_store.time_packers_read_hdf_store
+ 845±8ms 967±7ms 1.14 timeseries.SeriesArithmetic.time_add_offset_slow
+ 122±3ms 139±3ms 1.14 binary_ops.TimeseriesTZ.time_timestamp_ops_diff2
+ 51.3±1ms 58.6±0.7ms 1.14 period.DataFrame.time_setitem_period_column
+ 267±3ms 304±20ms 1.14 reshape.reshape_pivot_time_series.time_reshape_pivot_time_series
+ 25.5±0.3ms 29.0±1ms 1.14 io_sql.ReadSQLTypes.time_datetime_read_and_parse_sqlalchemy
+ 340±7ms 386±3ms 1.13 packers.Excel.time_write_excel_xlwt
+ 125±2ms 142±3ms 1.13 join_merge.ConcatFrames.time_f_ordered_axis0
+ 820±10ms 927±8ms 1.13 replace.replace_convert.time_replace_frame_timedelta
+ 4.17±0.08ms 4.70±0.02ms 1.13 timeseries.DatetimeIndex.time_infer_dst
+ 60.6±0.8ms 68.3±0.05ms 1.13 hdfstore_bench.HDF5.time_read_store_table_mixed
+ 36.8±2μs 41.4±0.9μs 1.13 timeseries.Offsets.time_timeseries_year_apply
+ 126μs 141μs 1.13 panel_methods.PanelMethods.time_shift_minor
+ 281±8μs 315±8μs 1.12 reindex.FillMethod.time_pad_float32
+ 433±5ms 486±10ms 1.12 packers.Excel.time_write_excel_xlsxwriter
+ 58.4±0.7ms 65.5±2ms 1.12 io_sql.WriteSQLTypes.time_float_fallback
+ 847±10ms 950±4ms 1.12 timeseries.SemiMonthOffset.time_begin_decr_rng
+ 172±1ms 193±5ms 1.12 packers.packers_read_json.time_packers_read_json
+ 57.5±0.9ms 64.2±0.8ms 1.12 io_sql.WriteSQLTypes.time_string_fallback
+ 189±6ms 210±4ms 1.12 io_sql.WriteSQL.time_sqlalchemy
+ 8.71±0.3ms 9.70±0.2ms 1.11 strings.StringMethods.time_contains_many
+ 810±3ms 902±10ms 1.11 packers.Excel.time_write_excel_openpyxl
+ 182ms 203ms 1.11 packers.JSON.time_write_json_mixed_float_int
+ 1.58s 1.75s 1.11 packers.CSV.time_write_csv
+ 172±6μs 191±1μs 1.11 index_object.SetOperations.time_datetime_union
+ 29.9±0.3ms 33.1±0.4ms 1.11 join_merge.Join.time_join_dataframe_index_multi
+ 74.6±0.1ms 82.6±0.1ms 1.11 join_merge.MergeAsof.time_by_object
+ 989ms 1.09s 1.11 join_merge.MergeAsof.time_multiby
+ 63.2±1ms 69.9±0.01ms 1.11 panel_ctor.Constructors2.time_panel_from_dict_equiv_indexes
+ 699±10μs 773±6μs 1.11 timeseries.DatetimeIndex.time_reset_index_tz
+ 24.0±0.09ms 26.5±0.7ms 1.10 join_merge.MergeAsof.time_noby
+ 368±5μs 407±5μs 1.10 reindex.FillMethod.time_pad
+ 1.91±0.02s 2.10±0.04s 1.10 gil.NoGilGroupby.time_groups_4
- 15.8±0.2ms 14.2±0.5ms 0.90 groupby.groupby_agg_builtins.time_groupby_agg_builtins1
- 1.86±0.06ms 1.66±0.05ms 0.89 frame_methods.Interpolate.time_interpolate_some_good
- 35.0s 31.0s 0.89 groupby.GroupBySuite.time_describe('float', 10000)
- 19.1±0.5ms 17.0±0.4ms 0.89 groupby.groupby_categorical.time_groupby_nosort
- 3.44±0.1ms 3.04±0.1ms 0.88 groupby.groupby_categorical.time_groupby_sort
- 24.2±1ms 21.4±0.3ms 0.88 groupby.GroupBySuite.time_diff('int', 100)
- 1.66s 1.47s 0.88 groupby.GroupBySuite.time_all('int', 10000)
- 9.53±0.3ms 8.38±0.2ms 0.88 groupby.Transform.time_transform_ufunc
- 71.6±3ms 62.8±0.8ms 0.88 frame_methods.Dropna.time_count_level_axis1_multi
- 13.9±0.3ms 12.2±0.4ms 0.88 groupby.groupby_float32.time_groupby_sum
- 15.1±0.5ms 13.2±0.4ms 0.87 groupby.groupby_categorical.time_groupby_extra_cat_nosort
- 3.36±0.1ms 2.93±0.06ms 0.87 groupby.groupby_categorical.time_groupby_extra_cat_sort
- 16.7±0.2ms 14.5±0.4ms 0.87 groupby.groupby_agg_multi.time_groupby_multi_different_numpy_functions
- 21.5±0.6ms 18.7±0.2ms 0.87 groupby.groupby_multi.time_groupby_multi_cython
- 409±20μs 355±10μs 0.87 frame_methods.frame_boolean_row_select.time_frame_boolean_row_select
- 758±5ms 655±8ms 0.86 groupby.groupby_frame_apply.time_groupby_frame_apply_df_copy_overhead
- 60.4±3ms 52.1±0.3ms 0.86 categoricals.Categoricals2.time_value_counts
- 3.07±0.08ms 2.64±0.1ms 0.86 binary_ops.Timeseries.time_timestamp_series_compare
- 14.2±0.5ms 12.2±0.2ms 0.86 groupby.Transform.time_transform_multi_key1
- 14.6±0.7ms 12.5±0.3ms 0.86 algorithms.Algorithms.time_add_overflow_neg_scalar
- 9.22±0.1ms 7.93±0.06ms 0.86 binary_ops.Ops.time_frame_mult(False, 'default')
- 9.31±0.09ms 8.00±0.08ms 0.86 binary_ops.Ops.time_frame_mult(False, 1)
- 18.0±1ms 15.4±0.2ms 0.86 frame_methods.frame_fillna_inplace.time_frame_fillna_inplace
- 2.64s 2.27s 0.86 groupby.GroupBySuite.time_rank('int', 10000)
- 1.30±0.09ms 1.11±0.02ms 0.86 groupby.GroupBySuite.time_sem('int', 100)
- 330±2ms 280±4ms 0.85 inference.to_numeric_downcast.time_downcast('string-int', 'unsigned')
- 40.4±2ms 34.3±0.9ms 0.85 groupby.GroupBySuite.time_rank('float', 100)
- 243±3ms 206±6ms 0.84 groupby.GroupBySuite.time_describe('int', 100)
- 4.05±0.1ms 3.39±0.1ms 0.84 groupby.GroupBySuite.time_sum('int', 10000)
- 98.1±0.4ms 82.0±0.01ms 0.84 frame_methods.Dropna.time_count_level_axis1_mixed_dtypes_multi
- 8.45s 6.92s 0.82 groupby.GroupBySuite.time_pct_change('int', 10000)
- 101±2ms 82.4±0.6ms 0.82 binary_ops.Ops.time_frame_comparison(False, 1)
- 3.64±0.1ms 2.98±0.06ms 0.82 groupby.GroupBySuite.time_cumsum('int', 10000)
- 12.8±0.5ms 10.5±0.3ms 0.81 strings.StringMethods.time_match
- 5.22±0.5ms 4.24±0.04ms 0.81 groupby.Transform.time_transform_multi_key4
- 11.7±0.2ms 9.46±0.3ms 0.81 binary_ops.Ops.time_frame_mult(True, 1)
- 28.7±1ms 23.2±0.5ms 0.81 groupby.groupby_categorical.time_groupby_ordered_nosort
- 16.5±0.8ms 13.3±0.3ms 0.81 frame_methods.frame_mask_bools.time_frame_mask_floats
- 35.2±1ms 28.3±0.3ms 0.80 frame_methods.Reindex.time_reindex_both_axes_ix
- 2.65±0.1ms 2.12±0.07ms 0.80 groupby.GroupBySuite.time_tail('int', 100)
- 970±70μs 771±20μs 0.79 groupby.GroupBySuite.time_prod('int', 100)
- 9.65±0.3ms 7.61±0.4ms 0.79 categoricals.Categoricals3.time_rank_int
- 93.8±4ms 73.5±2ms 0.78 groupby.GroupBySuite.time_pct_change('int', 100)
- 2.19s 1.71s 0.78 groupby.groupby_frame_apply.time_groupby_frame_df_copy_function
- 152±5ms 118±3ms 0.77 frame_methods.frame_from_records_generator.time_frame_from_records_generator
- 216±4ms 165±3ms 0.77 frame_methods.frame_insert_100_columns_begin.time_frame_insert_500_columns_end
- 3.57±0.7ms 2.68±0.08ms 0.75 groupby.groupby_datetime.time_groupby_sum
- 11.5±0.2ms 8.62±0.2ms 0.75 binary_ops.Ops.time_frame_add(False, 1)
- 19.7±1ms 14.5±0.2ms 0.74 groupby.groupby_agg_multi.time_groupby_multi_different_functions
- 590±90μs 428±10μs 0.73 groupby.GroupBySuite.time_size('int', 100)
- 14.3±0.7ms 10.00±0.2ms 0.70 groupby.groupby_frame_cython_many_columns.time_sum
- 868±60μs 606±20μs 0.70 groupby.GroupBySuite.time_last('float', 100)
- 53.3±2ms 36.8±0.4ms 0.69 frame_methods.frame_fancy_lookup.time_frame_fancy_lookup_all
- 39.3±0.8ms 26.9±0.6ms 0.69 eval.Eval.time_mult('python', 1)
- 15.0±0.7ms 9.56±0.4ms 0.64 groupby.Transform.time_transform_multi_key2
- 5.13±0.6ms 3.05±0.1ms 0.59 groupby.groupby_categorical.time_groupby_ordered_sort
SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment