Commit a21c9922 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Benchmarks to compare EsprimaParser with JsParser.

Currently the tests show that esprima-version is 2x slower.

Times for parsing all of sencha touch source files:

JsParser:      3.5s
EsprimaParser: 6.6s

Also... the JsParser is now switched back to using the old Lexer,
not the esprima-one.
parent 87ca185e
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
# Script for benchmarking the lexer.
#
# Takes bunch of filenames as arguments and runs them all through lexer.
#
$:.unshift File.dirname(File.dirname(__FILE__)) + "/lib"
require 'jsduck/esprima_parser'

ARGV.each do |fname|
  JsDuck::EsprimaParser.instance.parse(IO.read(fname))
end

benchmark/parse.rb

0 → 100644
+11 −0
Original line number Diff line number Diff line
# Script for benchmarking the lexer.
#
# Takes bunch of filenames as arguments and runs them all through lexer.
#
$:.unshift File.dirname(File.dirname(__FILE__)) + "/lib"
require 'jsduck/js_parser'

ARGV.each do |fname|
  JsDuck::JsParser.new(IO.read(fname)).parse
end
+2 −2
Original line number Diff line number Diff line
require 'jsduck/esprima_lexer'
require 'jsduck/lexer'
require 'jsduck/doc_parser'
require 'jsduck/js_literal_parser'
require 'jsduck/js_literal_builder'
@@ -7,7 +7,7 @@ module JsDuck

  class JsParser < JsLiteralParser
    def initialize(input, options = {})
      @lex = EsprimaLexer.new(input)
      @lex = Lexer.new(input)
      @doc_parser = DocParser.new
      @docs = []
      @ext_namespaces = options[:ext_namespaces] || ["Ext"]