SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
PECLを数えてみた
内山 雄司 @y__uti
2016-03-01 PHPBLT #3
PECL
The PHP Extension Community Library
2016-03-01 PHPBLT #3 2
courierauth krb5 PAM radius sasl DTrace inclued memprof APC APCu apcu_bc chdb coherence hidef memcache memcached memorize
varnish WinCache yac ZendOpcache augeas env yaconf zookeeper ncurses newt termbox tvision xmms gnupg libsodium mcrypt_filter
scrypt xxtea cassandra couchbase CUBRID daffodildb dbase DBDO dbplus dbx drizzle filepro hwapi ibm_db2 informix ingres
isis lchash leveldb maxdb mdbtools mongo mongodb mysql mysqlnd_memcache mysqlnd_ms mysqlnd_qc mysqlnd_uh notes oci8
odbtp Ovrimos Paradox PDO PDO_4D PDO_CUBRID PDO_DBLIB PDO_FIREBIRD PDO_IBM PDO_INFORMIX PDO_MYSQL PDO_OCI PDO_ODBC
PDO_PGSQL PDO_SQLANYWHERE PDO_SQLITE pdo_sqlsrv pdo_user PDO_XML pq redis riak sqlanywhere SQLite sqlite3 sqlsrv tdb
tokyo_tyrant date_time hrtime timezonedb dazuko fuse inotify mogilefs phdfs smbclient xattr html_parse tidy apfd json_post
pecl_http txforward uri_template cairo cairo_wrapper framegrab FreeImage GDChart gmagick imagick imlib2 opencv pango
qb rsvg SeasLog mailparse POP3 vpopmail big_int geospatial hdr_histogram lapack stats trader amqp apn ares cvsclient
cyrus DBus esmtp event gearman geoip gRPC gupnp IMS ip2location ircclient kadm5 Mosquitto mqseries msession netools Net_Gopher
ocal opendirectory perforce rdkafka sam spread ssh2 tcpwrap uuid yami yaz yp zeroconf zmq Bitset coin_acceptor cybercash
cybermut mcve spplus TCLink domxml dom_varimport WBXML xmldiff xmlReader XMLRPCi xmlwriter xslcache axis2 hprose json
jsonc jsond jsonnet oauth SCA_SDO xcommerce yar AOP apd APM automap bcompiler BLENC classkit docblock ffi funcall htscanner
igbinary intercept llvm memsession memtrack meta mono operator optimizer params parsekit Parse_Tree pcs phar phk PHPScript
postparser PreProcessor propro raphf runkit scream session_mysql strict tcc trace uopz uploadprogress vld xdebug bloomy
Judy quickhash Weakref cld fribidi gender idn intl translit unicode unicodestring binpack clips crack crack_dll crypto
fann filter functional graphdat hash huffman msgpack pcsc PECL_Gen protocolbuffers rsync SPL SPL_Types stomp svm udis86
Valkyrie xhprof xrange amfext rrd shape archive bz2 cpdf Fileinfo fpdf haru id3 lzf qqwry rar rpmreader syck yaml zip bz2_filter
oggvorbis openal zlib_filter bbcode colorer doublemetaphone enchant ereg jsmin markdown namazu panda pdflib ps re2 ssdeep
stem sundown TextCat xdiff ApacheAccessor dio expect fam printer proctitle pthreads statgrab sync threads w32api win32ps
win32ps_dll win32service yaf svn eio ev libevent swoole php_xcb tk win32std WinBinder wxwidgets ecasound ming opengl
sdl xmp FliteTTS KTaglib selinux taint clucene mnogosearch solr sphinx swish lua perl python spidermonkey v8js libvirt
登録モジュール数
2016-03-01 PHPBLT #3 3
2016-02-25 時点の情報
トップページからリンクを辿って到達できる HTML ページ数をカウントしたもの
カテゴリ別モジュール数
2016-03-01 PHPBLT #3 4
Database 56
PHP 41
Networking 35
Tools and Utilities 24
Text 17System 15
File Formats 14
Caching 13
Images 12
Web Service 10
Internationalization 8
XML 8
File System 7
Math 6
Payment 6
Authentication 5
Console 5
Encryption 5
GUI 5
HTTP 5
Languages 5
Multimedia 5
Search Engine 5
Configuration 4
Event 4
Streams 4Structures 4Benchmarking 3Date and Time 3Mail 3Processing 3Audio 2HTML 2Security 2Logging 1Numbers 1Version Control 1Virtualization 1
登録モジュール数の推移
2016-03-01 PHPBLT #3 5
4.2.0
4.3.0
4.4.0
5.0.0
5.1.0
5.2.0
5.3.0
5.4.0
5.5.0
5.6.0
7.0.0
0
50
100
150
200
250
300
350
2002/1/1 2006/1/1 2010/1/1 2014/1/1
モジュール数
"Available Releases" の情報を集計したもの。情報のない 37 モジュールを除外, stable 以外のリリースも含む
PHP のリリース日は http://www.php.net/releases による
月ごとのリリース数
2016-03-01 PHPBLT #3 6
0
10
20
30
40
50
60
2002/1/1 2006/1/1 2010/1/1 2014/1/1
リリース数
"Available Releases" の情報を集計したもの。情報のない 37 モジュールを除外, stable 以外のリリースも含む
ソースコードリポジトリ
2016-03-01 PHPBLT #3 7
svn.php.net 145
github.com 110
git.php.net 41
記載なし 35
bitbucket.org 3
code.google.com 3
その他 13
"Browse Source" の URL を集計
「記載なし」は "Browse Source" が存在しないもの
最新リリースの時期
2016-03-01 PHPBLT #3 8
0
5
10
15
20
25
30
35
40
2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016
モジュール数
最新リリース年 (stable 以外のリリースも含む)
svn.php.net github.com git.php.net
リリースの無いモジュールは除外した
該当数:svn.php.net (21), github.com (2), git.php.net (3)
ソースコード行数
2016-03-01 PHPBLT #3 9
3
79
181
46
4
0
20
40
60
80
100
120
140
160
180
200
0 1~1,000 1,001~10,000 10,001~100,000 100,001~
http://pecl.php.net/get/* で正常に取得できた 313 モジュールを対象
拡張子 .c, .h, .cc, .cpp, .hh のファイルを find と wc で集計
PECL_Gen
crack_dll
win32ps_dll
crips (153,710)
qb (265,259)
gender (368,049)
wxwidgets (983,756)
テストファイル (phpt) 行数
2016-03-01 PHPBLT #3 10
126
3
34
81
58
11
0
20
40
60
80
100
120
140
0 1~10 10~100 100~1,000 1,001~10,000 10,001~100,000
http://pecl.php.net/get/* で正常に取得できた 313 モジュールを対象
拡張子 .phpt のファイルを find と wc で集計
ソース行数 vs テスト行数
2016-03-01 PHPBLT #3 11
AOP
APC
APM
CUBRID
Cairo
DBDOEcasoundFileinfoFreeImageIMSJsonNet
Judy
KTaglibLZF
Mosquitto
Net_Gopher PDO
PDO_CUBRID
PDO_DBLIBPDO_FIREBIRD
PDO_IBM
PDO_INFORMIX
PDO_MYSQLPDO_OCIPDO_ODBCPDO_PGSQLPDO_SQLANYWHEREPDO_USERPECL_GenRSVG SAM
SPL_Types SQLiteSeasLogStatgrabTCLink WINCACHEWeakref WinBinderamfext
amqp
apacheaccessor
apcu
apcu_bcapdapfdapn
archive
aresaugeas bbcode
bcompiler
big_intbinpackbitset
blencbloomybz2bz2_filter
cairo_wrapper
cassandraclasskit
cldclucenecoin_acceptorcolorer couchbasecourierauthcrackcrack_dll
crypto
cvsclientcybercashcybermutcyrus date_timedazukodbasedbplusdbusdbxdio
docblock
dom_varimportdoublemetaphonedrizzledtrace
eio
enchantenv esmtp
ev eventexpectfam
fann
ffi
filter
framegrabfribidifuncallfunctionalfuse gdchartgearmangeoipgeospatial
gmagick
gnupg
graphdatgrpcgupnp haruhashhdr_histogramhidef hprosehrtimehtml_parsehtscannerhuffman
ibm_db2
id3idn
igbinary
imagick
imlib2inclued
ingres
inotifyintercept
intl
ip2locationircclientisisjsmin
json
json_post
jsoncjsond
kadm5 krb5lapacklchashleveldblibeventlibsodiumlua mailparse
markdown
maxdb
mcrypt_filtermcvemdbtools
memcachememcached
memoizememprofmemsessionmemtrackmnogosearchmogilefs mongomono mqseries
msgpack
mysqlnd_memcache
mysqlnd_ms
mysqlnd_qc
mysqlnd_uh
ncursesnetools newtoauthocal
oci8
odbtpoggvorbisopenalopendirectoryopengloperator optimizerpam pandaparadoxparams parse_treeparsekitpcspcsc pdflib
pdo_4d
pdo_sqlsrv
pecl_http
perforce
perl
phar
phdfs phkpop3
pq
proctitlepropro
protocolbuffers
ps
pthreads
pythonqqwry quickhash
radius
raphf
rar
rdkafka
re2
redis
riak
rpmreader
rrd rsync
runkit
saslscreamscrypt sdlselinuxshapesmbclient
solr
sphinxspidermonkeyspplusspread sqlsrvssdeep ssh2 statsstemstompstrict
sundown
svm svn
swish
swoolesycksynctainttcctcpwrap
tdb
termboxtextcattidy timezonedbtktokyo_tyranttrace translittvisiontxforwardudis86
uopz
uploadprogress
uri_template
uuid
v8js
valkyrie
varnish
vldvpopmailwbxmlwin32pswin32ps_dllwin32servicewin32stdxattrxcommerce xdebugxdiffxhprofxmldiffxmlreaderxmlrpcixmlwriterxmmsxmpxrangexslcachexxtea yacyaconf
yaf
yami
yaml
yaryazyp zendopcache
zeroconf
zip
zlib_filter
zmq
zookeeper0
5,000
10,000
15,000
20,000
25,000
30,000
35,000
40,000
45,000
50,000
0 5,000 10,000 15,000 20,000 25,000 30,000 35,000 40,000 45,000 50,000
テストファイル行数
ソースコード行数
Module Source Test
PDO_SQLITE 69,642 0
SCA_SDO 54,873 1,076
clips 153,710 0
gender 368,049 392
mongodb 75,145 12,334
qb 265,259 17,246
sqlite3 87,800 706
trader 90,270 11,099
wxwidgets 983,756 0
50,000 行を超えるモジュール
ソース行数 vs テスト行数
2016-03-01 PHPBLT #3 12
AOP
APM
DBDO
EcasoundFileinfo FreeImage IMS JsonNet
Judy
KTaglibLZF
Mosquitto
Net_Gopher PDOPDO_DBLIBPDO_FIREBIRD
PDO_IBM
PDO_INFORMIX
PDO_MYSQLPDO_OCIPDO_ODBCPDO_PGSQL PDO_SQLANYWHERE
PDO_USER
PECL_GenRSVG SAM
SPL_Types
SeasLogStatgrabTCLink
Weakref
amfext
amqp
apacheaccessor
apcu_bc
apd
apfd
apn
archive
ares
augeas
bbcode
bcompiler
big_int
binpack
bitset
blencbloomybz2bz2_filter
cairo_wrapper
classkit
cld
clucene
coin_acceptorcolorer couchbasecourierauth crackcrack_dll
crypto
cvsclientcybercashcybermutcyrus
date_time
dazuko dbasedbplus dbus
dbx
dio
docblock
dom_varimport
doublemetaphone drizzledtrace enchantenv esmtpexpectfam
fann
filter
framegrab
fribidi funcall
functionalfuse gdchartgearman
geoip
geospatial
gnupg
graphdatgrpcgupnp haru
hashhdr_histogram
hidef
hprosehrtime
html_parse
htscanner huffmanid3idn
igbinary
imlib2inclued
ingres
inotifyinterceptip2locationircclientisisjsmin
json
json_post
jsonc
jsond
kadm5
krb5
lapack
lchash
leveldb
libevent
libsodium
lua
mailparse
markdown
maxdb
mcrypt_filter mcvemdbtools
memcache
memcached
memoize
memprofmemsessionmemtrack mnogosearch
mogilefs
mono mqseries
mysqlnd_memcache
mysqlnd_uh
ncursesnetools newt
oauth
ocal odbtpoggvorbisopenal opendirectory opengl
operator
optimizerpam panda
paradox
params parsekit
pcs
pcsc
pdo_4d
perforce
perl
phdfs
phkpop3
pq
proctitle
propro
protocolbuffers
ps
pthreads
python
qqwry quickhash
radius
raphf
rdkafka
re2
rpmreader
rrd
runkit
saslscream scrypt sdlselinux
shape
smbclientsphinx
spidermonkey
spplus spreadssdeep ssh2
stomp
strict
sundown
svm
svn
swish
syck
sync
taint
tcc
tcpwrap
tdb
termbox textcattidy tk tokyo_tyrant
trace
tvisiontxforwardudis86
uopz
uploadprogress
uri_template
uuid
v8js
valkyrie
varnish
vldvpopmailwbxmlwin32pswin32ps_dllwin32servicewin32std
xattr
xcommercexdiff
xhprof xmldiff
xmlreaderxmlrpci
xmlwriter
xmms
xmp
xrange
xslcachexxtea
yac
yaconf
yaml
yar
yazyp
zeroconfzlib_filter zookeeper0
1,000
2,000
3,000
4,000
5,000
6,000
7,000
8,000
9,000
10,000
0 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 9,000 10,000
テストファイル行数
ソースコード行数
お約束
クローリングでは過剰な負荷をかけないよう注意しましょう
今回は以下のようにしました
◦ HTML ファイル 1 ページ取得ごとに 5 秒 sleep
◦ 拡張モジュール (.tar.gz) 1 モジュール取得ごとに 30 秒 sleep
ちなみに
◦ http://pecl.php.net/get は robots.txt で Disarrow と記述されている
2016-03-01 PHPBLT #3 13

Más contenido relacionado

La actualidad más candente

最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話y-uti
 
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみたOPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみたYoshio Hanawa
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方do_aki
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020Rui Hirokawa
 
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみたWindows で PHP をビルドしてみた
Windows で PHP をビルドしてみたy-uti
 
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...php and sapi and zendengine2 and...
php and sapi and zendengine2 and...do_aki
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とdo_aki
 
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るshinjiigarashi
 
PHPの関数実行とその計測
PHPの関数実行とその計測PHPの関数実行とその計測
PHPの関数実行とその計測shinjiigarashi
 
signal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何かsignal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何かdo_aki
 
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩くPHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩くshinjiigarashi
 
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!shinjiigarashi
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016Rui Hirokawa
 
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件y-uti
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話y-uti
 
Hack/HHVM 入門
Hack/HHVM 入門Hack/HHVM 入門
Hack/HHVM 入門y-uti
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い sasezaki
 
PHPの今とこれから2014
PHPの今とこれから2014PHPの今とこれから2014
PHPの今とこれから2014Rui Hirokawa
 
PHPの今とこれから2019
PHPの今とこれから2019PHPの今とこれから2019
PHPの今とこれから2019Rui Hirokawa
 
PHPの今とこれから 2013
PHPの今とこれから 2013PHPの今とこれから 2013
PHPの今とこれから 2013Rui Hirokawa
 

La actualidad más candente (20)

最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話
 
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみたOPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
Windows で PHP をビルドしてみた
Windows で PHP をビルドしてみたWindows で PHP をビルドしてみた
Windows で PHP をビルドしてみた
 
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
 
PHPの関数実行とその計測
PHPの関数実行とその計測PHPの関数実行とその計測
PHPの関数実行とその計測
 
signal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何かsignal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何か
 
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩くPHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩く
 
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話
 
Hack/HHVM 入門
Hack/HHVM 入門Hack/HHVM 入門
Hack/HHVM 入門
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
 
PHPの今とこれから2014
PHPの今とこれから2014PHPの今とこれから2014
PHPの今とこれから2014
 
PHPの今とこれから2019
PHPの今とこれから2019PHPの今とこれから2019
PHPの今とこれから2019
 
PHPの今とこれから 2013
PHPの今とこれから 2013PHPの今とこれから 2013
PHPの今とこれから 2013
 

Similar a PECL を数えてみた

ふつうのLinuxプログラミング
ふつうのLinuxプログラミングふつうのLinuxプログラミング
ふつうのLinuxプログラミングShuhei KONDO
 
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ 社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ Daisuke Ikeda
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきことmao999
 
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応marsee101
 
C83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきましたC83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきましたKiwamu Okabe
 
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Hiro Yoshioka
 
産学間連携推進室(AC部屋) 2012 成果報告会
産学間連携推進室(AC部屋) 2012 成果報告会産学間連携推進室(AC部屋) 2012 成果報告会
産学間連携推進室(AC部屋) 2012 成果報告会Hirotaka Kawata
 
node-handlersocket
node-handlersocketnode-handlersocket
node-handlersocketkoichik
 
ITスキルシート(マヴェリック アリネア)
ITスキルシート(マヴェリック アリネア)ITスキルシート(マヴェリック アリネア)
ITスキルシート(マヴェリック アリネア)Maverick Alinea
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPUTakuro Iizuka
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Mori Shingo
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくばHirotaka Kawata
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906akirahiguchi
 
Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Shinichi Hirauchi
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会Yoshihisa Ozaki
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Takuya Matsunaga
 
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザKohei MATSUSHITA
 
Exploring the x64
Exploring the x64Exploring the x64
Exploring the x64FFRI, Inc.
 

Similar a PECL を数えてみた (20)

ゆるかわPhp
ゆるかわPhpゆるかわPhp
ゆるかわPhp
 
ふつうのLinuxプログラミング
ふつうのLinuxプログラミングふつうのLinuxプログラミング
ふつうのLinuxプログラミング
 
社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~ 社内向けTech Talk資料~Fluentdの基本紹介~
社内向けTech Talk資料~Fluentdの基本紹介~
 
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
 
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
 
C83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきましたC83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきました
 
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
 
産学間連携推進室(AC部屋) 2012 成果報告会
産学間連携推進室(AC部屋) 2012 成果報告会産学間連携推進室(AC部屋) 2012 成果報告会
産学間連携推進室(AC部屋) 2012 成果報告会
 
node-handlersocket
node-handlersocketnode-handlersocket
node-handlersocket
 
ITスキルシート(マヴェリック アリネア)
ITスキルシート(マヴェリック アリネア)ITスキルシート(マヴェリック アリネア)
ITスキルシート(マヴェリック アリネア)
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
 
Handlersocket etc. 20110906
Handlersocket etc. 20110906Handlersocket etc. 20110906
Handlersocket etc. 20110906
 
Windowsのパケットモニタ作成
Windowsのパケットモニタ作成Windowsのパケットモニタ作成
Windowsのパケットモニタ作成
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会CLRの基礎 - プログラミング .NET Framework 第3版 読書会
CLRの基礎 - プログラミング .NET Framework 第3版 読書会
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
 
目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ目指せ1秒切り!ECサイト表示高速化のワザ
目指せ1秒切り!ECサイト表示高速化のワザ
 
Exploring the x64
Exploring the x64Exploring the x64
Exploring the x64
 

Más de y-uti

潜在ディリクレ配分法
潜在ディリクレ配分法潜在ディリクレ配分法
潜在ディリクレ配分法y-uti
 
Active Object
Active ObjectActive Object
Active Objecty-uti
 
目で見る過学習と正則化
目で見る過学習と正則化目で見る過学習と正則化
目で見る過学習と正則化y-uti
 
ロジスティック回帰入門
ロジスティック回帰入門ロジスティック回帰入門
ロジスティック回帰入門y-uti
 
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...y-uti
 
PHP-ML で手書き数字認識
PHP-ML で手書き数字認識PHP-ML で手書き数字認識
PHP-ML で手書き数字認識y-uti
 
スパース推定
スパース推定スパース推定
スパース推定y-uti
 
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話y-uti
 
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告y-uti
 
分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用y-uti
 
JIT for PHP を試した
JIT for PHP を試したJIT for PHP を試した
JIT for PHP を試したy-uti
 
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告y-uti
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecationy-uti
 
逐次ベイズ学習 - サンプリング近似法の場合 -
逐次ベイズ学習 - サンプリング近似法の場合 -逐次ベイズ学習 - サンプリング近似法の場合 -
逐次ベイズ学習 - サンプリング近似法の場合 -y-uti
 
各言語の k-means 比較
各言語の k-means 比較各言語の k-means 比較
各言語の k-means 比較y-uti
 
Git 入門
Git 入門Git 入門
Git 入門y-uti
 
PHP5.3 を使うのはやめよう
PHP5.3 を使うのはやめようPHP5.3 を使うのはやめよう
PHP5.3 を使うのはやめようy-uti
 
プログラマのための文書推薦入門
プログラマのための文書推薦入門プログラマのための文書推薦入門
プログラマのための文書推薦入門y-uti
 

Más de y-uti (18)

潜在ディリクレ配分法
潜在ディリクレ配分法潜在ディリクレ配分法
潜在ディリクレ配分法
 
Active Object
Active ObjectActive Object
Active Object
 
目で見る過学習と正則化
目で見る過学習と正則化目で見る過学習と正則化
目で見る過学習と正則化
 
ロジスティック回帰入門
ロジスティック回帰入門ロジスティック回帰入門
ロジスティック回帰入門
 
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
 
PHP-ML で手書き数字認識
PHP-ML で手書き数字認識PHP-ML で手書き数字認識
PHP-ML で手書き数字認識
 
スパース推定
スパース推定スパース推定
スパース推定
 
Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話Kaggle の Titanic チュートリアルに挑戦した話
Kaggle の Titanic チュートリアルに挑戦した話
 
PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告PHP カンファレンス福岡 2017 参加報告
PHP カンファレンス福岡 2017 参加報告
 
分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用
 
JIT for PHP を試した
JIT for PHP を試したJIT for PHP を試した
JIT for PHP を試した
 
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecation
 
逐次ベイズ学習 - サンプリング近似法の場合 -
逐次ベイズ学習 - サンプリング近似法の場合 -逐次ベイズ学習 - サンプリング近似法の場合 -
逐次ベイズ学習 - サンプリング近似法の場合 -
 
各言語の k-means 比較
各言語の k-means 比較各言語の k-means 比較
各言語の k-means 比較
 
Git 入門
Git 入門Git 入門
Git 入門
 
PHP5.3 を使うのはやめよう
PHP5.3 を使うのはやめようPHP5.3 を使うのはやめよう
PHP5.3 を使うのはやめよう
 
プログラマのための文書推薦入門
プログラマのための文書推薦入門プログラマのための文書推薦入門
プログラマのための文書推薦入門
 

Último

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (9)

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

PECL を数えてみた

  • 2. PECL The PHP Extension Community Library 2016-03-01 PHPBLT #3 2
  • 3. courierauth krb5 PAM radius sasl DTrace inclued memprof APC APCu apcu_bc chdb coherence hidef memcache memcached memorize varnish WinCache yac ZendOpcache augeas env yaconf zookeeper ncurses newt termbox tvision xmms gnupg libsodium mcrypt_filter scrypt xxtea cassandra couchbase CUBRID daffodildb dbase DBDO dbplus dbx drizzle filepro hwapi ibm_db2 informix ingres isis lchash leveldb maxdb mdbtools mongo mongodb mysql mysqlnd_memcache mysqlnd_ms mysqlnd_qc mysqlnd_uh notes oci8 odbtp Ovrimos Paradox PDO PDO_4D PDO_CUBRID PDO_DBLIB PDO_FIREBIRD PDO_IBM PDO_INFORMIX PDO_MYSQL PDO_OCI PDO_ODBC PDO_PGSQL PDO_SQLANYWHERE PDO_SQLITE pdo_sqlsrv pdo_user PDO_XML pq redis riak sqlanywhere SQLite sqlite3 sqlsrv tdb tokyo_tyrant date_time hrtime timezonedb dazuko fuse inotify mogilefs phdfs smbclient xattr html_parse tidy apfd json_post pecl_http txforward uri_template cairo cairo_wrapper framegrab FreeImage GDChart gmagick imagick imlib2 opencv pango qb rsvg SeasLog mailparse POP3 vpopmail big_int geospatial hdr_histogram lapack stats trader amqp apn ares cvsclient cyrus DBus esmtp event gearman geoip gRPC gupnp IMS ip2location ircclient kadm5 Mosquitto mqseries msession netools Net_Gopher ocal opendirectory perforce rdkafka sam spread ssh2 tcpwrap uuid yami yaz yp zeroconf zmq Bitset coin_acceptor cybercash cybermut mcve spplus TCLink domxml dom_varimport WBXML xmldiff xmlReader XMLRPCi xmlwriter xslcache axis2 hprose json jsonc jsond jsonnet oauth SCA_SDO xcommerce yar AOP apd APM automap bcompiler BLENC classkit docblock ffi funcall htscanner igbinary intercept llvm memsession memtrack meta mono operator optimizer params parsekit Parse_Tree pcs phar phk PHPScript postparser PreProcessor propro raphf runkit scream session_mysql strict tcc trace uopz uploadprogress vld xdebug bloomy Judy quickhash Weakref cld fribidi gender idn intl translit unicode unicodestring binpack clips crack crack_dll crypto fann filter functional graphdat hash huffman msgpack pcsc PECL_Gen protocolbuffers rsync SPL SPL_Types stomp svm udis86 Valkyrie xhprof xrange amfext rrd shape archive bz2 cpdf Fileinfo fpdf haru id3 lzf qqwry rar rpmreader syck yaml zip bz2_filter oggvorbis openal zlib_filter bbcode colorer doublemetaphone enchant ereg jsmin markdown namazu panda pdflib ps re2 ssdeep stem sundown TextCat xdiff ApacheAccessor dio expect fam printer proctitle pthreads statgrab sync threads w32api win32ps win32ps_dll win32service yaf svn eio ev libevent swoole php_xcb tk win32std WinBinder wxwidgets ecasound ming opengl sdl xmp FliteTTS KTaglib selinux taint clucene mnogosearch solr sphinx swish lua perl python spidermonkey v8js libvirt 登録モジュール数 2016-03-01 PHPBLT #3 3 2016-02-25 時点の情報 トップページからリンクを辿って到達できる HTML ページ数をカウントしたもの
  • 4. カテゴリ別モジュール数 2016-03-01 PHPBLT #3 4 Database 56 PHP 41 Networking 35 Tools and Utilities 24 Text 17System 15 File Formats 14 Caching 13 Images 12 Web Service 10 Internationalization 8 XML 8 File System 7 Math 6 Payment 6 Authentication 5 Console 5 Encryption 5 GUI 5 HTTP 5 Languages 5 Multimedia 5 Search Engine 5 Configuration 4 Event 4 Streams 4Structures 4Benchmarking 3Date and Time 3Mail 3Processing 3Audio 2HTML 2Security 2Logging 1Numbers 1Version Control 1Virtualization 1
  • 5. 登録モジュール数の推移 2016-03-01 PHPBLT #3 5 4.2.0 4.3.0 4.4.0 5.0.0 5.1.0 5.2.0 5.3.0 5.4.0 5.5.0 5.6.0 7.0.0 0 50 100 150 200 250 300 350 2002/1/1 2006/1/1 2010/1/1 2014/1/1 モジュール数 "Available Releases" の情報を集計したもの。情報のない 37 モジュールを除外, stable 以外のリリースも含む PHP のリリース日は http://www.php.net/releases による
  • 6. 月ごとのリリース数 2016-03-01 PHPBLT #3 6 0 10 20 30 40 50 60 2002/1/1 2006/1/1 2010/1/1 2014/1/1 リリース数 "Available Releases" の情報を集計したもの。情報のない 37 モジュールを除外, stable 以外のリリースも含む
  • 7. ソースコードリポジトリ 2016-03-01 PHPBLT #3 7 svn.php.net 145 github.com 110 git.php.net 41 記載なし 35 bitbucket.org 3 code.google.com 3 その他 13 "Browse Source" の URL を集計 「記載なし」は "Browse Source" が存在しないもの
  • 8. 最新リリースの時期 2016-03-01 PHPBLT #3 8 0 5 10 15 20 25 30 35 40 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 モジュール数 最新リリース年 (stable 以外のリリースも含む) svn.php.net github.com git.php.net リリースの無いモジュールは除外した 該当数:svn.php.net (21), github.com (2), git.php.net (3)
  • 9. ソースコード行数 2016-03-01 PHPBLT #3 9 3 79 181 46 4 0 20 40 60 80 100 120 140 160 180 200 0 1~1,000 1,001~10,000 10,001~100,000 100,001~ http://pecl.php.net/get/* で正常に取得できた 313 モジュールを対象 拡張子 .c, .h, .cc, .cpp, .hh のファイルを find と wc で集計 PECL_Gen crack_dll win32ps_dll crips (153,710) qb (265,259) gender (368,049) wxwidgets (983,756)
  • 10. テストファイル (phpt) 行数 2016-03-01 PHPBLT #3 10 126 3 34 81 58 11 0 20 40 60 80 100 120 140 0 1~10 10~100 100~1,000 1,001~10,000 10,001~100,000 http://pecl.php.net/get/* で正常に取得できた 313 モジュールを対象 拡張子 .phpt のファイルを find と wc で集計
  • 11. ソース行数 vs テスト行数 2016-03-01 PHPBLT #3 11 AOP APC APM CUBRID Cairo DBDOEcasoundFileinfoFreeImageIMSJsonNet Judy KTaglibLZF Mosquitto Net_Gopher PDO PDO_CUBRID PDO_DBLIBPDO_FIREBIRD PDO_IBM PDO_INFORMIX PDO_MYSQLPDO_OCIPDO_ODBCPDO_PGSQLPDO_SQLANYWHEREPDO_USERPECL_GenRSVG SAM SPL_Types SQLiteSeasLogStatgrabTCLink WINCACHEWeakref WinBinderamfext amqp apacheaccessor apcu apcu_bcapdapfdapn archive aresaugeas bbcode bcompiler big_intbinpackbitset blencbloomybz2bz2_filter cairo_wrapper cassandraclasskit cldclucenecoin_acceptorcolorer couchbasecourierauthcrackcrack_dll crypto cvsclientcybercashcybermutcyrus date_timedazukodbasedbplusdbusdbxdio docblock dom_varimportdoublemetaphonedrizzledtrace eio enchantenv esmtp ev eventexpectfam fann ffi filter framegrabfribidifuncallfunctionalfuse gdchartgearmangeoipgeospatial gmagick gnupg graphdatgrpcgupnp haruhashhdr_histogramhidef hprosehrtimehtml_parsehtscannerhuffman ibm_db2 id3idn igbinary imagick imlib2inclued ingres inotifyintercept intl ip2locationircclientisisjsmin json json_post jsoncjsond kadm5 krb5lapacklchashleveldblibeventlibsodiumlua mailparse markdown maxdb mcrypt_filtermcvemdbtools memcachememcached memoizememprofmemsessionmemtrackmnogosearchmogilefs mongomono mqseries msgpack mysqlnd_memcache mysqlnd_ms mysqlnd_qc mysqlnd_uh ncursesnetools newtoauthocal oci8 odbtpoggvorbisopenalopendirectoryopengloperator optimizerpam pandaparadoxparams parse_treeparsekitpcspcsc pdflib pdo_4d pdo_sqlsrv pecl_http perforce perl phar phdfs phkpop3 pq proctitlepropro protocolbuffers ps pthreads pythonqqwry quickhash radius raphf rar rdkafka re2 redis riak rpmreader rrd rsync runkit saslscreamscrypt sdlselinuxshapesmbclient solr sphinxspidermonkeyspplusspread sqlsrvssdeep ssh2 statsstemstompstrict sundown svm svn swish swoolesycksynctainttcctcpwrap tdb termboxtextcattidy timezonedbtktokyo_tyranttrace translittvisiontxforwardudis86 uopz uploadprogress uri_template uuid v8js valkyrie varnish vldvpopmailwbxmlwin32pswin32ps_dllwin32servicewin32stdxattrxcommerce xdebugxdiffxhprofxmldiffxmlreaderxmlrpcixmlwriterxmmsxmpxrangexslcachexxtea yacyaconf yaf yami yaml yaryazyp zendopcache zeroconf zip zlib_filter zmq zookeeper0 5,000 10,000 15,000 20,000 25,000 30,000 35,000 40,000 45,000 50,000 0 5,000 10,000 15,000 20,000 25,000 30,000 35,000 40,000 45,000 50,000 テストファイル行数 ソースコード行数 Module Source Test PDO_SQLITE 69,642 0 SCA_SDO 54,873 1,076 clips 153,710 0 gender 368,049 392 mongodb 75,145 12,334 qb 265,259 17,246 sqlite3 87,800 706 trader 90,270 11,099 wxwidgets 983,756 0 50,000 行を超えるモジュール
  • 12. ソース行数 vs テスト行数 2016-03-01 PHPBLT #3 12 AOP APM DBDO EcasoundFileinfo FreeImage IMS JsonNet Judy KTaglibLZF Mosquitto Net_Gopher PDOPDO_DBLIBPDO_FIREBIRD PDO_IBM PDO_INFORMIX PDO_MYSQLPDO_OCIPDO_ODBCPDO_PGSQL PDO_SQLANYWHERE PDO_USER PECL_GenRSVG SAM SPL_Types SeasLogStatgrabTCLink Weakref amfext amqp apacheaccessor apcu_bc apd apfd apn archive ares augeas bbcode bcompiler big_int binpack bitset blencbloomybz2bz2_filter cairo_wrapper classkit cld clucene coin_acceptorcolorer couchbasecourierauth crackcrack_dll crypto cvsclientcybercashcybermutcyrus date_time dazuko dbasedbplus dbus dbx dio docblock dom_varimport doublemetaphone drizzledtrace enchantenv esmtpexpectfam fann filter framegrab fribidi funcall functionalfuse gdchartgearman geoip geospatial gnupg graphdatgrpcgupnp haru hashhdr_histogram hidef hprosehrtime html_parse htscanner huffmanid3idn igbinary imlib2inclued ingres inotifyinterceptip2locationircclientisisjsmin json json_post jsonc jsond kadm5 krb5 lapack lchash leveldb libevent libsodium lua mailparse markdown maxdb mcrypt_filter mcvemdbtools memcache memcached memoize memprofmemsessionmemtrack mnogosearch mogilefs mono mqseries mysqlnd_memcache mysqlnd_uh ncursesnetools newt oauth ocal odbtpoggvorbisopenal opendirectory opengl operator optimizerpam panda paradox params parsekit pcs pcsc pdo_4d perforce perl phdfs phkpop3 pq proctitle propro protocolbuffers ps pthreads python qqwry quickhash radius raphf rdkafka re2 rpmreader rrd runkit saslscream scrypt sdlselinux shape smbclientsphinx spidermonkey spplus spreadssdeep ssh2 stomp strict sundown svm svn swish syck sync taint tcc tcpwrap tdb termbox textcattidy tk tokyo_tyrant trace tvisiontxforwardudis86 uopz uploadprogress uri_template uuid v8js valkyrie varnish vldvpopmailwbxmlwin32pswin32ps_dllwin32servicewin32std xattr xcommercexdiff xhprof xmldiff xmlreaderxmlrpci xmlwriter xmms xmp xrange xslcachexxtea yac yaconf yaml yar yazyp zeroconfzlib_filter zookeeper0 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 9,000 10,000 0 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 9,000 10,000 テストファイル行数 ソースコード行数
  • 13. お約束 クローリングでは過剰な負荷をかけないよう注意しましょう 今回は以下のようにしました ◦ HTML ファイル 1 ページ取得ごとに 5 秒 sleep ◦ 拡張モジュール (.tar.gz) 1 モジュール取得ごとに 30 秒 sleep ちなみに ◦ http://pecl.php.net/get は robots.txt で Disarrow と記述されている 2016-03-01 PHPBLT #3 13