Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cebe/Markbench
PHP: Markdown benchmarks (+ CLI tools)
https://github.com/cebe/Markbench
Last synced: 3 months ago
JSON representation
PHP: Markdown benchmarks (+ CLI tools)
- Host: GitHub
- URL: https://github.com/cebe/Markbench
- Owner: cebe
- Fork: true (kzykhys/Markbench)
- Created: 2014-02-12T01:37:36.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2019-03-19T21:06:21.000Z (over 5 years ago)
- Last Synced: 2024-07-19T03:51:31.149Z (4 months ago)
- Language: PHP
- Size: 46.9 KB
- Stars: 4
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Markdown Benchmarks (PHP)
=========================[![Build Status](https://travis-ci.org/kzykhys/Markbench.png?branch=master)](https://travis-ci.org/kzykhys/Markbench)
[![Latest Stable Version](https://poser.pugx.org/kzykhys/markbench/v/stable.png)](https://packagist.org/packages/kzykhys/markbench)
[![SensioLabsInsight](https://insight.sensiolabs.com/projects/f85a4034-6089-4b14-acb5-990e202a5a55/mini.png)](https://insight.sensiolabs.com/projects/f85a4034-6089-4b14-acb5-990e202a5a55)All parsers are managed by composer (minimum-stability=stable).
Tested with latest stable version.[**See the latest benchmark on Travis-CI**](https://travis-ci.org/kzykhys/Markbench)
```
$ php bin/markbench benchmark --profile=github-sample
Runtime: PHP7.3.2-3+ubuntu18.04.1+deb.sury.org+1
Host: Linux i7559 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64
Profile: Sample content from Github (http://github.github.com/github-flavored-markdown/sample_content.html) / 1000 times
Class: Markbench\Profile\GithubSampleProfile+------------------------+---------+-------------+---------------+----------+--------------+
| package | version | dialect | duration (MS) | MEM (B) | PEAK MEM (B) |
+------------------------+---------+-------------+---------------+----------+--------------+
| erusev/parsedown | 1.7.1 | gfm | 1067 | 12582912 | 12582912 |
| cebe/markdown | 1.2.1 | | 1353 | 12582912 | 12582912 |
| cebe/markdown | 1.2.1 | extra | 1445 | 12582912 | 12582912 |
| cebe/markdown | 1.2.1 | gfm | 1573 | 12582912 | 12582912 |
| erusev/parsedown-extra | 0.7.1 | gfm & extra | 1946 | 12582912 | 12582912 |
| michelf/php-markdown | 1.8.0 | | 2199 | 12582912 | 12582912 |
| michelf/php-markdown | 1.8.0 | extra | 2463 | 12582912 | 12582912 |
| kzykhys/ciconia | v1.0.2 | | 2468 | 14680064 | 14680064 |
| kzykhys/ciconia | v1.0.2 | gfm | 2959 | 14680064 | 14680064 |
| league/commonmark | 0.18.1 | commonmark | 4639 | 14680064 | 14680064 |
+------------------------+---------+-------------+---------------+----------+--------------+
```Tested parsers
--------------* [michelf/php-markdown](https://github.com/michelf/php-markdown) [![Latest Stable Version](https://poser.pugx.org/michelf/php-markdown/v/stable.png)](https://packagist.org/packages/michelf/php-markdown)
* [kzykhys/ciconia](https://github.com/kzykhys/Ciconia) [![Latest Stable Version](https://poser.pugx.org/kzykhys/ciconia/v/stable.png)](https://packagist.org/packages/kzykhys/ciconia)
* [erusev/parsedown](https://github.com/erusev/parsedown) [![Latest Stable Version](https://poser.pugx.org/erusev/parsedown/v/stable.png)](https://packagist.org/packages/erusev/parsedown)
* [erusev/parsedown-extra](https://github.com/erusev/parsedown-extra) [![Latest Stable Version](https://poser.pugx.org/erusev/parsedown-extra/v/stable.png)](https://packagist.org/packages/erusev/parsedown-extra)
* [cebe/markdown](https://github.com/cebe/markdown) [![Latest Stable Version](https://poser.pugx.org/cebe/markdown/v/stable.png)](https://packagist.org/packages/cebe/markdown)
* [league/commonmark](https://github.com/thephpleague/commonmark) [![Latest Stable Version](https://poser.pugx.org/league/commonmark/v/stable.png)](https://packagist.org/packages/league/commonmark)Internals
---------Each parser is executed asynchronously using [kzykhys/Parallel.php](https://github.com/kzykhys/Parallel.php)
```
Runner
+-->(kzykhys/Parallel.php)
+-- child process #1 --+
+-- child process #2 --+--> output
+-- child process #3 --+
|-- duration/mem usage --|
```### Requirements
* PHP5.4+
* Compiled with --enable-pcntlAdd a parser
------------* Put your class that implements `Markbench\DriverInterface` into `Driver` directory.
* Run command again**Feel free to fork and send a pull request!**
Run a benchmark
---------------```
composer install
bin/markbench benchmark
``````
$ bin/markbench help benchmark
Usage:
benchmark [--parser="..."] [-p|--profile[="..."]]Options:
--parser Name of a parser. Available: cebe/markdown, cebe/markdown:gfm, kzykhys/ciconia, kzykhys/ciconia:gfm, erusev/parsedown, michelf/php-markdown, michelf/php-markdown:extra
--profile (-p) Name of a profile. (default: "default")
--help (-h) Display this help message.
--quiet (-q) Do not output any message.
--verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
--version (-V) Display this application version.
--ansi Force ANSI output.
--no-ansi Disable ANSI output.
--no-interaction (-n) Do not ask any interactive question.
```### Profiles
* default
* blank
* github-sample### Add a profile
* Put your class that implements `Markbench\ProfileInterface` into `Profile` directory.
* Run `php bin/markbench benchmark --profile=your_profile_name`**Feel free to fork and send a pull request!**
License
-------The MIT License
Author
------Kazuyuki Hayashi (@kzykhys)