2 title: Introducing libcurls multi socket API
8 So, finally a first beta of [pecl_http](http://pecl.php.net/package/pecl_http)
11 This is the first version which supports [libcurl](http://curl.haxx.se/libcurl/)s
12 [multi socketAPI](http://curl.haxx.se/libcurl/c/curl_multi_socket.html) introduced in 7.16
16 Here's a not very impressive comparison of the performance of the traditional
17 multi API vs. the new multi socket API:
19 mike@honeybadger:~/build/php-5.2-debug$ cli
20 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
21 -u http://honeybadger/empty.html
25 mike@honeybadger:~/build/php-5.2-debug$ cli
26 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
27 -u http://honeybadger/empty.html
31 mike@honeybadger:~/build/php-5.2-debug$ cli
32 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
33 -u http://honeybadger/empty.html
37 mike@honeybadger:~/build/php-5.2-debug$ cli
38 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
39 -u http://honeybadger/empty.html -e
43 mike@honeybadger:~/build/php-5.2-debug$ cli
44 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
45 -u http://honeybadger/empty.html -e
49 mike@honeybadger:~/build/php-5.2-debug$ cli
50 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
51 -u http://honeybadger/empty.html -e
56 Above empty.html is, well, empty. The following test requests a 100k file:
58 mike@honeybadger:~/build/php-5.2-debug$ cli
59 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
60 -u http://honeybadger/100k.bin
64 mike@honeybadger:~/build/php-5.2-debug$ cli
65 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
66 -u http://honeybadger/100k.bin
70 mike@honeybadger:~/build/php-5.2-debug$ cli
71 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
72 -u http://honeybadger/100k.bin
76 mike@honeybadger:~/build/php-5.2-debug$ cli
77 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
78 -u http://honeybadger/100k.bin -e
82 mike@honeybadger:~/build/php-5.2-debug$ cli
83 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
84 -u http://honeybadger/100k.bin -e
88 mike@honeybadger:~/build/php-5.2-debug$ cli
89 ~/cvs/pecl/http/scripts/bench_select_vs_event.php
90 -u http://honeybadger/100k.bin -e
95 So, apparently time savings are not huge, but noticable.