-
Notifications
You must be signed in to change notification settings - Fork 374
/
feedzirra_benchmarks.rb
40 lines (36 loc) · 1.09 KB
/
feedzirra_benchmarks.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
require File.dirname(__FILE__) + '/../../lib/feedzirra.rb'
require 'rfeedparser'
require 'feed-normalizer'
require 'open-uri'
require 'benchmark'
include Benchmark
iterations = 10
urls = File.readlines(File.dirname(__FILE__) + "/../sample_feeds/successful_feed_urls.txt").slice(0, 20)
puts "benchmarks on #{urls.size} feeds"
puts "************************************"
benchmark do |t|
t.report("feedzirra") do
iterations.times do
Feedzirra::Feed.fetch_and_parse(urls, :on_success => lambda { |url, feed| $stdout.print '.'; $stdout.flush })
end
end
t.report("rfeedparser") do
iterations.times do
urls.each do |url|
feed = FeedParser.parse(url)
$stdout.print '.'
$stdout.flush
end
end
end
t.report("feed-normalizer") do
iterations.times do
urls.each do |url|
# have to use the :force option to make feed-normalizer parse an atom feed
feed = FeedNormalizer::FeedNormalizer.parse(open(url), :force_parser => FeedNormalizer::SimpleRssParser)
$stdout.print '.'
$stdout.flush
end
end
end
end