{"id":16012672,"url":"https://github.com/smacker/bblfsh-benchmark","last_synced_at":"2026-05-21T07:30:14.135Z","repository":{"id":141959466,"uuid":"119200592","full_name":"smacker/bblfsh-benchmark","owner":"smacker","description":null,"archived":false,"fork":false,"pushed_at":"2019-06-05T01:58:24.000Z","size":8291,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-02T18:48:49.319Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smacker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-27T20:36:30.000Z","updated_at":"2019-06-05T01:58:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"a086b810-edc9-46b3-b848-c7119cbfcdb4","html_url":"https://github.com/smacker/bblfsh-benchmark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smacker%2Fbblfsh-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smacker%2Fbblfsh-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smacker%2Fbblfsh-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smacker%2Fbblfsh-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smacker","download_url":"https://codeload.github.com/smacker/bblfsh-benchmark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240131773,"owners_count":19752725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-08T14:20:29.667Z","updated_at":"2026-05-21T07:30:13.887Z","avatar_url":"https://github.com/smacker.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Benchmarks for bblfsh\n\nMesure bblfsh overhead compare to native parser and tree-sitter.\n\n### how to run\n\n```bash\n$ docker-compose pull \u0026\u0026 docker-compose up\n$ ./run.sh\n```\n\nSet environment variables to control `run.sh`:\n\n* `COUNT` - how many times run process file\n* `ON_HOST` - run naive parser on host machine\n\nColumns:\n\n* `semantic` - grpc calls to bblfsh server using client-go with semantic mode\n* `bblfshd` - grpc calls to bblfsh server using client-go with native mode\n* `driver` - grpc calls to bblfsh driver using client-go (speaks the same protocol)\n* `native` - writes file multiple times to stdin of native driver\n* `naive` - the simplest ast parser I came up with, run on docker\n* `naive-on-host` - same as previous one but without docker\n* `go-tree-sitter` - use [go bindings](https://github.com/smacker/go-tree-sitter) to [tree-sitter](https://github.com/tree-sitter/tree-sitter)\n\n### Results on my machine:\n\n```\n$ ON_HOST=1 bash ./run.sh\nProcess 5 times each file\n  language         fixture        semantic         bblfshd          driver          native           naive   naive-on-host  go-tree-sitter\n    python        small.py    116.539749ms     48.942962ms     75.004011ms     92.446857ms         3.929ms         2.366ms       543.973µs\n    python       medium.py    1.599836916s     755.27236ms     979.88242ms    696.572664ms        89.275ms        66.455ms      19.01192ms\n    python        large.py    2.768434027s    1.177480743s    1.162664989s    1.008075686s       143.129ms        92.805ms     29.868624ms\n      java      small.java     80.484111ms     59.553298ms      37.44783ms    113.524303ms           791ms           382ms       410.546µs\n      java     medium.java    732.765797ms    417.917357ms    396.369231ms    304.240967ms           976ms           468ms      6.776931ms\n      java      large.java    1.804763297s    973.179411ms    1.024198953s    635.750094ms          1238ms           622ms     20.349097ms\njavascript        small.js     66.474485ms     59.514451ms     29.010792ms     79.058312ms             N/A             N/A       248.365µs\njavascript       medium.js    940.515048ms    275.866322ms    288.755713ms    191.805473ms             N/A             N/A      6.614362ms\njavascript        large.js    6.971718088s     1.97325413s    1.871911764s    506.326851ms             N/A             N/A     41.406852ms\n\n\n$ COUNT=100 ON_HOST=1 bash ./run.sh\nProcess 100 times each file\n  language         fixture         bblfshd          driver          native           naive   naive-on-host  go-tree-sitter\n    python        small.py    1.079530842s    951.732776ms     496.97266ms        66.981ms          62.3ms     17.947399ms\n    python       medium.py   16.580967699s    15.30512511s    11.38071154s       660.534ms        87.742ms    333.089036ms\n    python        large.py   23.077634855s   23.000140787s   17.953921045s       657.431ms       855.178ms    554.306883ms\n      java      small.java     1.01676893s    924.874297ms    742.826628ms          1166ms           621ms      8.143652ms\n      java     medium.java    8.302661273s    9.015791504s    2.231004422s          1756ms          1353ms    180.167101ms\n      java      large.java   23.286575316s   21.001132587s    5.846483831s          3192ms          2031ms    426.856856ms\njavascript        small.js    936.368807ms    1.138111259s    294.129059ms             N/A             N/A      7.987509ms\njavascript       medium.js    9.023018705s    8.008308402s    1.274347629s             N/A             N/A     119.60978ms\njavascript        large.js   39.277155259s   36.693041699s    5.515874603s             N/A             N/A    719.868076ms\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmacker%2Fbblfsh-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmacker%2Fbblfsh-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmacker%2Fbblfsh-benchmark/lists"}