From: MonkeeSage Date: 2007-11-27T17:40:02+09:00 Subject: Re: Moving files matching Regex Since all the matches are xsl files, the function can be faster using a glob for "*.xsl". Dir.entries is slower. $ cat test.rb && ./test.rb #!/usr/bin/env ruby require 'find' require 'fileutils' require 'benchmark' def get_file_names Dir.glob("*.xsl").select { | e | e =~ /^(CAL|NCPH|GOH)\d{6}\.xsl$/ } end def get_file_names1 Dir.glob("*.xsl").grep(/^(CAL|NCPH|GOH)\d{6}\.xsl$/) end def get_file_names2 Dir.entries('.').select { | e | e =~ /^(CAL|NCPH|GOH)\d{6}\.xsl$/ } end n = 10000 Benchmark.bm(5) { |x| x.report('get_file_names ') { n.times { get_file_names } } x.report('get_file_names1') { n.times { get_file_names1 } } x.report('get_file_names1') { n.times { get_file_names2 } } } user system total real get_file_names 0.210000 0.330000 0.540000 ( 0.566366) get_file_names1 0.270000 0.310000 0.580000 ( 0.602565) get_file_names1 0.680000 0.310000 0.990000 ( 1.114583) Regards, Jordan