Skip to content

Instantly share code, notes, and snippets.

@epitron
Last active October 19, 2016 21:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save epitron/3101dfc5384706c8e58f862cf1f9f493 to your computer and use it in GitHub Desktop.
Save epitron/3101dfc5384706c8e58f862cf1f9f493 to your computer and use it in GitHub Desktop.
require 'epitools'
str = "asdlfkjasGdlCfjasdflkjsafAjkhweDrkjThawerlkajhsdfkljhasdfACTG"* 10000
bench(
tr: proc{ str.tr('^ACTG', '') },
gsub: proc{ str.gsub(/[^ACTG]+/, '') },
gsub2: proc{ str.gsub(/[^ACTG]/, '') },
scan: proc{ str.scan(/[ACTG]/).join },
scan2: proc{ str.scan(/[ACTG]+/).join }
)
# ==============
# OUTPUT:
# ==============
#
# * Benchmarking 100 iterations...
# user system total real
# tr 0.060000 0.000000 0.060000 ( 0.067188)
# gsub 1.390000 0.010000 1.400000 ( 1.397851)
# gsub2 7.040000 0.000000 7.040000 ( 7.035661)
# scan 2.060000 0.000000 2.060000 ( 2.054325)
# scan2 1.840000 0.000000 1.840000 ( 1.834801)
@havenwood
Copy link

>> bench(
 |   tr:    proc{ str.tr('^ACTG', '') },
 |   gsub:  proc { str.gsub(/[^ACTG]+/, '') },
 |   gsub2: proc { str.gsub(/[^ACTG]/, '') },
 |   scan:  proc{ str.scan(/[ACTG]/).join },
 |   scan2: proc{ str.scan(/[ACTG]+/).join },
 |   delete: proc { str.delete('^ACTG') }
 | )
* Benchmarking 100 iterations...
Rehearsal ------------------------------------------
tr       0.130000   0.010000   0.140000 (  0.144685)
gsub     1.940000   0.020000   1.960000 (  1.962563)
gsub2   10.170000   0.030000  10.200000 ( 10.208400)
scan     2.720000   0.060000   2.780000 (  2.791901)
scan2    2.400000   0.040000   2.440000 (  2.442949)
delete   0.120000   0.020000   0.140000 (  0.138591)
-------------------------------- total: 17.660000sec

             user     system      total        real
tr       0.120000   0.020000   0.140000 (  0.130412)
gsub     2.010000   0.010000   2.020000 (  2.023951)
gsub2   10.790000   0.050000  10.840000 ( 10.859402)
scan     2.760000   0.050000   2.810000 (  2.818731)
scan2    2.480000   0.040000   2.520000 (  2.527159)
delete   0.120000   0.010000   0.130000 (  0.137463)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment