36 lines
		
	
	
		
			657 B
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			657 B
		
	
	
	
		
			Ruby
		
	
	
	
| 
								 | 
							
								$: << File.join(File.dirname(__FILE__), '..', 'lib')
							 | 
						||
| 
								 | 
							
								require 'radius'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if RUBY_PLATFORM == 'java'
							 | 
						||
| 
								 | 
							
								  require 'java'
							 | 
						||
| 
								 | 
							
								  require 'radius/parser/jscanner'
							 | 
						||
| 
								 | 
							
								end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								require 'benchmark'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								document = <<EOF
							 | 
						||
| 
								 | 
							
								Before it all
							 | 
						||
| 
								 | 
							
								<r:foo>
							 | 
						||
| 
								 | 
							
								  Middle Top
							 | 
						||
| 
								 | 
							
								  <r:bar />
							 | 
						||
| 
								 | 
							
								  Middle Bottom
							 | 
						||
| 
								 | 
							
								</r:foo>
							 | 
						||
| 
								 | 
							
								After it all
							 | 
						||
| 
								 | 
							
								EOF
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								amount = 1000
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Benchmark.bmbm do |bm|
							 | 
						||
| 
								 | 
							
								  bm.report('vanilla') do
							 | 
						||
| 
								 | 
							
								    scanner = Radius::Scanner.new(:scanner => Radius::Scanner)
							 | 
						||
| 
								 | 
							
								    amount.times { scanner.operate('r', document) }
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if RUBY_PLATFORM == 'java'
							 | 
						||
| 
								 | 
							
								    bm.report('JavaScanner') do
							 | 
						||
| 
								 | 
							
								      scanner = Radius::JavaScanner.new(JRuby.runtime)
							 | 
						||
| 
								 | 
							
								      amount.times { scanner.operate('r', document) }
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								end
							 |