{"id":20776813,"url":"https://github.com/phpactor/phpdoc-parser-benchmarks","last_synced_at":"2025-08-17T07:04:30.795Z","repository":{"id":80463533,"uuid":"163210348","full_name":"phpactor/phpdoc-parser-benchmarks","owner":"phpactor","description":"PHPDoc Parser Benchmarks","archived":false,"fork":false,"pushed_at":"2018-12-26T21:48:56.000Z","size":17,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-21T15:08:00.916Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phpactor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2018-12-26T19:17:26.000Z","updated_at":"2018-12-26T21:48:57.000Z","dependencies_parsed_at":"2023-05-22T11:15:17.630Z","dependency_job_id":null,"html_url":"https://github.com/phpactor/phpdoc-parser-benchmarks","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phpactor/phpdoc-parser-benchmarks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpactor%2Fphpdoc-parser-benchmarks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpactor%2Fphpdoc-parser-benchmarks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpactor%2Fphpdoc-parser-benchmarks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpactor%2Fphpdoc-parser-benchmarks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phpactor","download_url":"https://codeload.github.com/phpactor/phpdoc-parser-benchmarks/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phpactor%2Fphpdoc-parser-benchmarks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270816563,"owners_count":24650837,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-11-17T13:12:02.308Z","updated_at":"2025-08-17T07:04:30.764Z","avatar_url":"https://github.com/phpactor.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Benchmarks for PHPDoc parsers\n=============================\n\n[![Build Status](https://travis-ci.org/phpactor/phpdoc-parser-benchmarks.svg?branch=master)](https://travis-ci.org/phpactor/phpdoc-parser-benchmarks)\n\nSome informal benchmarks for PHPDoc parsers using\n[PHPBench](https://github.com/phpbench/phpbench).\n\nDocblock parsing is an important performance bottleneck in Phpactor, these benchmarks\nare intended to measure the fast but (currently at least) poorly implemented\nPhpactor Docblock parser against other, more accurate, parsers. It is not\nrecommended to use the Phpactor parser in it's current state in your own projects.\n\nParsers:\n\n- **Phpactor Parser**: An awful but fast parser for Phpactor.\n- **Phpstan Parser**: The parser used by PHPStan.\n- **PhpDocumentor Parser**: The parser used by PHPDocumentor.\n\nTest data see (code\n[here](https://github.com/phpactor/phpdoc-parser-benchmarks/blob/master/lib/DocblockProvider.php)):\n\n- **Faker Generator**: Large class docblock.\n- **Laravel Route**: Medium class docblock .\n- **PhpSpec ObjectBeavior**: Medium class docblock.\n- **PhpUnit TestCase::create**: Small method docblock.\n\nRunning\n-------\n\n```\n$ git clone git@github.com:phpactor/phpdoc-parser-benchmarks\n$ composer install\n$ ./vendor/bin/phpbench run --report=parser\n```\n\nResults (2018-12-26)\n--------------------\n\n**NOTE**: When running these benchmarks, there seem to be 2 peaks in each set,\none high and one low, it is not certain which peak will be used in the\ncalculation of these results, thereforre the results below should be taken\nwith a pinch-of-salt.\n\n```\n$ ./vendor/bin/phpbench run --report=parser --report=env --iterations=100 --revs=50 --warmup=1 --progress=blinken\n```\n\n### set: Faker Generator\n\nbenchmark | mem_peak | best | mean | mode | worst | rstdev | diff\n --- | --- | --- | --- | --- | --- | --- | --- \nPhpactorBench | 1,196,144b | 0.382ms | 0.608ms | 0.415ms | 1.049ms | 45.01% | 1.00x\nPhpstanBench | 3,717,160b | 3.832ms | 4.780ms | 4.057ms | 8.423ms | 30.05% | 9.79x\n\n### set: Laravel Route\n\nbenchmark | mem_peak | best | mean | mode | worst | rstdev | diff\n --- | --- | --- | --- | --- | --- | --- | --- \nPhpactorBench | 1,045,808b | 0.139ms | 0.203ms | 0.157ms | 0.395ms | 42.19% | 1.00x\nPhpstanBench | 1,901,232b | 1.153ms | 1.743ms | 1.269ms | 2.796ms | 36.80% | 8.09x\nPhpDocumentorBench | 1,442,752b | 0.615ms | 0.890ms | 0.659ms | 1.370ms | 34.35% | 4.20x\n\n### set: Phpspec ObjectBehavior\n\nbenchmark | mem_peak | best | mean | mode | worst | rstdev | diff\n --- | --- | --- | --- | --- | --- | --- | --- \nPhpactorBench | 1,042,792b | 0.141ms | 0.235ms | 0.154ms | 0.407ms | 43.99% | 1.00x\nPhpstanBench | 1,669,136b | 0.844ms | 1.221ms | 0.889ms | 1.998ms | 39.39% | 5.76x\nPhpDocumentorBench | 1,385,912b | 0.445ms | 0.667ms | 0.477ms | 1.036ms | 35.31% | 3.09x\n\n### set: Phpunit TestCase::create\n\nbenchmark | mem_peak | best | mean | mode | worst | rstdev | diff\n --- | --- | --- | --- | --- | --- | --- | --- \nPhpactorBench | 992,064b | 0.025ms | 0.043ms | 0.027ms | 0.107ms | 46.99% | 1.00x\nPhpstanBench | 1,170,496b | 0.137ms | 0.253ms | 0.164ms | 0.414ms | 44.88% | 6.13x\nPhpDocumentorBench | 1,355,424b | 0.145ms | 0.233ms | 0.157ms | 0.357ms | 32.02% | 5.86x\n\nEnvironment\n-----------\n\n### Suite #133f0ea6c4b2731d9c2eaec7fea167460c6f1324 2018-12-26 20:33:54\n\nprovider | key | value\n --- | --- | --- \nuname | os | Linux\nuname | host | x1-debian\nuname | release | 4.18.0-2-amd64\nuname | version | #1 SMP Debian 4.18.10-2 (2018-11-02)\nuname | machine | x86_64\nphp | xdebug | \nphp | version | 7.2.9-1\nphp | ini | \nphp | extensions | Core, date, libxml, openssl, pcre, zlib, filter, hash, pcntl, Reflection, SPL, session, sodium, standard\nopcache | extension_loaded | \nunix-sysload | l1 | 1.71\nunix-sysload | l5 | 1.88\nunix-sysload | l15 | 1.83\nvcs | system | git\nvcs | branch | master\nvcs | version | 13d11804e1a6915d2cdc506aa121389d58960f95\nbaseline | nothing | 0.090837478637695\nbaseline | md5 | 0.80704689025879\nbaseline | file_rw | 1.9490718841553\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphpactor%2Fphpdoc-parser-benchmarks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphpactor%2Fphpdoc-parser-benchmarks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphpactor%2Fphpdoc-parser-benchmarks/lists"}