高速なULID生成ライブラリを作ってみた

ULIDの公式リポジトリからリンクされているライブラリを見ていてもう少し高速化できそうだったので実装してみた。

リポジトリ

pg-ito/fast_ulid: implement of ULID for php
https://github.com/pg-ito/fast_ulid

使い方

次のような使い方でULIDが生成できる

$loader = require_once __DIR__.'/vendor/autoload.php';
use \PgIto\FastUlid\FastUlid;

echo FastUlid::gen().PHP_EOL;
// 01GAGJ3TPGR82PLAS7K37HNIDV

パフォーマンス

手元のWSL環境ではおおむね1IDあたり1ms(1000ns)ほどで生成できた。(ほかのライブラリの2倍くらい)

$ php bench.php 
number of generated ids 1000000
elapsed 1.0562382 Sec.
1056.2382 nSec/generate

ご要望などありましたらお寄せください。

カテゴリー: php

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です