Oh my god, these benchmarks sound like heaven. I am actually plotting to implement this within one of my projects, but seing these benchmarks gives me one more reason to. Especially the JSON part with the class example…that kinda made me gape for a moment.
I think this is a nice extension! :) On Do. Apr. 02 2015 21:01:23 马秉尧 wrote: > Hello, I am the maintainer of this extension. I’m sorry to release this > extension without sending email to this lists. In fact, a month ago, I talked > about this extension in my reply email to @Thomas Hruska. But I don’t know I > made a stupid mistake, I forgot to fill [email protected] > <mailto:[email protected]> in CC addresses, since I have seen this > email, today. > > Now, I will talk about this extension. > > The hprose is not a new project. It began 6 years ago. This project is > designed to build a fast non invasive remote service without IDL, and can be > able to cross language, cross platform. I have already implemented it for > more than 20 programming languages. The PHP version is also have implemented > early. But the pure PHP version is running very slowly, so I made this > extension. > > A year ago, I wrote this extension in C++ with PHP-CPP > (https://github.com/hprose/hprose-phpcpp > <https://github.com/hprose/hprose-phpcpp>), but it is not fast as I expected. > So I made a C version of it. It is this extension. > > This extension is a part of Hprose for > PHP(http://github.com/hprose/hprose-php > <http://github.com/hprose/hprose-php>). It implements hprose serialize, > unserialize and RPC protocol abstraction layer. The http client and server > implementation are written in PHP. > > The hprose_serialize/hprose_unserialize is very faster than > json_encode/json_decode and serialize/unserialize in PHP. > > I tested two samples of data: > > —————————— > date_default_timezone_set("UTC"); > $a = array("name" => "张三", "age" => 18, "生日" => new > DateTime("1996-12-01")); > $a[0] = array(); > for ($i = 0; $i < 10000; $i++) { > $a[0][$i] = $i; > } > —————————— > > hprose serialize Runtime:0.1732s > json encode Runtime:0.1809s > serialize Runtime:0.8132s > hprose unserialize Runtime:0.4894s > json decode Runtime:1.0057s > unserialize Runtime:0.6869s > hprose serialize/unserialize Runtime:0.6645s > json encode/decode Runtime:1.1910s > serialize/unserialize Runtime:1.5263s > > > —————————————— > class User { > public $name; > public $age; > public $birthday; > public $male; > } > > $user = new User(); > $user->name = "Tom"; > $user->age = 18; > $user->birthday = new DateTime("1996-12-01"); > $user->male = true; > > $a = array(); > for ($i = 0; $i < 10000; $i++) { > $a[$i] = $user; > } > —————————————— > > hprose serialize Runtime:0.2019s > json encode Runtime:14.9729s > serialize Runtime:0.7270s > hprose unserialize Runtime:0.5670s > json decode Runtime:23.9245s > unserialize Runtime:1.0133s > hprose serialize/unserialize Runtime:1.1054s > json encode/decode Runtime:40.6623s > serialize/unserialize Runtime:1.9498s > > > >> 在 2015年4月2日,下午7:21,Kevin Ingwersen (Ingwie Phoenix) >> <[email protected] <mailto:[email protected]>> 写道: >> >> @Pierre >> I never knew extensions had to be registered? Dont get me wrong, I am not >> the maintainer, just curios actually. >> Say I wanted to make a module with bindings to libFLTK. Would i have to >> announce that somewhere - and where actually? >> >> Maybe the developer has done lots of testing already and can ensure >> stability. I looked though the github page for hprose and it actually is a >> very interesting concept! It also looks like a lot of work has gone into it >> already. >> >> On Do. Apr. 02 2015 11:20:09 Pierre Joye wrote: >>> hi, >>> >>> First release and 1.0.0 seems rather optimistic and also not following >>> our rules. Talking about that, where was the mail announcing this new >>> extension? :) >>> >>> Cheers, >>> >>> On Thu, Apr 2, 2015 at 1:24 PM, PECL Announce <[email protected] >>> <mailto:[email protected]>> wrote: >>>> The new PECL package hprose-1.0.0 (stable) has been released at >>>> http://pecl.php.net/ <http://pecl.php.net/>. >>>> >>>> Release notes >>>> ------------- >>>> Initial Hprose for pecl >>>> >>>> Package Info >>>> ------------- >>>> Hprose extension for PHP. >>>> Hprose is a High Performance Remote Object Service Engine. >>>> >>>> It is a modern, lightweight, cross-language, cross-platform, >>>> object-oriented, high performance, remote dynamic communication >>>> middleware. It is not only easy to use, but powerful. You just need a >>>> little time to learn, then you can use it to easily construct cross >>>> language cross platform distributed application system. >>>> >>>> Hprose supports many programming languages, for example: >>>> >>>> AAuto Quicker >>>> ActionScript >>>> ASP >>>> C++ >>>> Dart >>>> Delphi/Free Pascal >>>> dotNET(C#, Visual Basic...) >>>> Golang >>>> Java >>>> JavaScript >>>> Node.js >>>> Objective-C >>>> Perl >>>> PHP >>>> Python >>>> Ruby >>>> ... >>>> Through Hprose, You can conveniently and efficiently >>>> intercommunicate between those programming languages. >>>> >>>> This project is the implementation of Hprose for PHP. >>>> >>>> Related Links >>>> ------------- >>>> Package home: http://pecl.php.net/package/hprose >>>> <http://pecl.php.net/package/hprose> >>>> Changelog: http://pecl.php.net/package-changelog.php?package=hprose >>>> <http://pecl.php.net/package-changelog.php?package=hprose> >>>> Download: http://pecl.php.net/get/hprose-1.0.0.tgz >>>> <http://pecl.php.net/get/hprose-1.0.0.tgz> >>>> >>>> Authors >>>> ------------- >>>> Bingyao Ma <[email protected] <mailto:[email protected]>> (lead) >>>> >>>> >>>> -- >>>> PECL development discussion Mailing List (http://pecl.php.net/ >>>> <http://pecl.php.net/>) >>>> To unsubscribe, visit: http://www.php.net/unsub.php >>>> <http://www.php.net/unsub.php> >> >> >> >
