bezier / msgpack-php
此包的最新版本(1.0.0)没有可用的许可证信息。
MessagePack与纯PHP故障转移
1.0.0
2014-10-23 07:14 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-24 08:06:58 UTC
README
此项目旨在实现使用PHP故障转移的MessagePack序列化。这可能对无法安装php-modules或使用HipHop将PHP编译为C++的人有用。
Composer
https://packagist.org.cn/packages/bezier/msgpack-php
项目
示例
use CharStream;
$hole = "Light"
$pack = msgpack_pack($hole);
if ( msgpack_unpage($pack) === $hole ) {
echo "The hole is lit.";
}
注意事项
- 仅定义了msgpack_pack()和msgpack_unpack()。
- 它只在小端架构上进行了测试,但应该也可以在大端架构上工作,如果可能的话,请测试它。
- uint64和int64类型可能需要64位系统才能工作
- 它使用is_x()来选择类型,在使用函数之前进行类型转换
- 与官方库不同,您不能打包对象。如果您知道如何做,请进行分支。
- 它将始终将整数打包到尽可能少的位数中,并优先选择无符号数。
基准测试
如您所见,纯PHP实现(msgpack-php)与msgpack创建的优秀的php-extension相比相当慢。然而,当msgpack-php使用HipHop编译时(msgpack-hphp),性能差异要小得多,甚至在某些特定基准测试中msgpack-hphp甚至击败了msgpack,这可能是由于基准测试本身也是用HipHop编译的。
计时值是平均秒数,采样10次,每次迭代10.000次。百分比相对于正常的php serialize()(不是HipHop的版本)。
[integer ] default json igbinary msgpack msgpack-php msgpack-hphp
status : OK OK OK OK OK OK
serialize : 0.0105 (100%) 0.0090 ( 85%) 0.0089 ( 84%) 0.0093 ( 88%) 0.0550 ( 523%) 0.0051 ( 57%)
unserialize: 0.0089 (100%) 0.0119 (134%) 0.0088 ( 99%) 0.0090 (101%) 0.0985 (1110%) 0.0208 (234%)
size : 12 (100%) 9 ( 75%) 9 ( 75%) 5 ( 41%) 5 ( 41%) 5 ( 41%)
[double ] default json igbinary msgpack msgpack-php msgpack-hphp
status : OK OK OK OK OK OK
serialize : 0.0323 (100%) 0.0132 ( 40%) 0.0092 ( 28%) 0.0094 ( 28%) 0.0740 (229%) 0.0074 ( 23%)
unserialize: 0.0221 (100%) 0.0124 ( 56%) 0.0085 ( 38%) 0.0089 ( 40%) 0.1151 (521%) 0.0217 ( 98%)
size : 54 (100%) 15 ( 27%) 13 ( 24%) 9 ( 16%) 9 ( 16%) 9 ( 16%)
[string ] default json igbinary msgpack msgpack-php msgpack-hphp
status : OK OK OK OK OK OK
serialize : 0.0104 (100%) 0.0123 (118%) 0.0092 ( 88%) 0.0096 ( 91%) 0.0728 ( 700%) 0.0067 ( 64%)
unserialize: 0.0095 (100%) 0.0153 (160%) 0.0093 ( 97%) 0.0097 (101%) 0.1469 (1543%) 0.0301 (316%)
size : 40 (100%) 34 ( 85%) 38 ( 95%) 35 ( 87%) 35 ( 87%) 35 ( 87%)
[array ] default json igbinary msgpack msgpack-php msgpack-hphp
status : OK OK OK OK OK OK
serialize : 0.0183 (100%) 0.0297 (162%) 0.0222 (121%) 0.0134 ( 73%) 0.5567 (3042%) 0.0432 (236%)
unserialize: 0.0174 (100%) 0.0363 (207%) 0.0171 ( 98%) 0.0170 ( 97%) 0.7823 (4483%) 0.1665 (957%)
size : 226 (100%) 176 ( 77%) 186 ( 82%) 176 ( 77%) 176 ( 77%) 176 ( 77%)
[array ] default json igbinary msgpack msgpack-php msgpack-hphp
status : OK OK OK OK OK OK
serialize : 0.0199 (100%) 0.0481 (242%) 0.0306 (153%) 0.0148 ( 74%) 0.8513 (4285%) 0.0763 ( 383%)
unserialize: 0.0231 (100%) 0.0583 (252%) 0.0202 ( 87%) 0.0248 (107%) 1.4168 (6134%) 0.3156 (1366%)
size : 406 (100%) 351 ( 86%) 346 ( 85%) 351 ( 86%) 351 ( 86%) 351 ( 86%)