Excellent stuff everyone, Gives me much to look into! thanks, On Tue, 27 Nov 2007 03:39:05 -0500 Raul Parolari <raulparolari / gmail.com> wrote: > Robert Klemme wrote: > > >> all_files = Dir.glob("*") > >> my_files = all_files.grep(%r{^ (CAL|NCPH|GOH) \d{6} \.xls $}x) > >> end > > > > We completely forgot about Dir.entries()... That might be a tad > > faster because supposedly no globbing is going on. > > > > The solution with Dir.entries is a bit faster: > > def get_file_names5 > all_files = Dir.entries(".") > my_files = all_files.grep(%r{^ (CAL|NCPH|GOH) \d{6} \.xls $}x) > end > > # 30 target files present > Benchmark.bm(5) do |timer| > timer.report('get_file_names2') {10_000.times {get_file_names2} } > timer.report('get_file_names5') {10_000.times {get_file_names5} } > end > user system total real > get_file_names2 1.410000 1.260000 2.670000 ( 2.675148) > get_file_names5 1.190000 1.260000 2.450000 ( 2.450649) > > A 10% gain; not much, but the final winner of the marathon is: Nr 5! > :-) > > Raul > > -- Mark