27年ぶりのYUKIライブ 2024/8/11。僕は埼玉の戸田市文化会館で行われた”YUKI concert tour “SUPER SLITS” 2024”に参加した。前にYUKIの歌声を聴いたのは1997/05/27の代々木第一体育館。実に27年の歳月が経ってしまった。 なぜそんなに間が空いたのか。なぜ、それでも参加しようと思ったのか…
参考にしたサイト集 perlxs - perldoc.perl.org perlxstut - perldoc.perl.org perlguts - perldoc.perl.org perlapi - perldoc.perl.org http://d.hatena.ne.jp/tokuhirom/20081209/1228829454 Perl XS メモ - typemap と MAGIC をからめて - daily dayflower http://pub.ne.jp/wakapon/?entry_id=1109553 http://pub.ne.jp/wakapon/?entry_id=1109664 準備 $ h2xs -A -n MyXSS Makefile.PL CC => 'g++', 型 SV スカラー AV 配列 HV ハッシュ CV コード GV グロブ RV リ
id:tokuhirom さんが http://d.hatena.ne.jp/tokuhirom/20081209/1228829454 で下地をつくってくださったので(perl-users.jp むけまとめも期待してます),ちょっとアドバンスドな話題を。 例題 http://www.sra.co.jp/people/m-kasahr/eb/ http://www.sra.co.jp/people/m-kasahr/eb/ の Perl binding を開発するとしましょう。 http://www.sra.co.jp/people/m-kasahr/eb/ の使い方は,たとえば次のような感じです。 EB_Book *book_pointer; book_pointer = (EB_Book *) malloc(sizeof(EB_Book)); eb_initialize_book(bo
Perl/XSが得意なことはほとんどオレオレ用語といっていいくらい端折ったリストなので追々補足しておく。 まずひとつ,「注意を払う」というのは内部で呼ばれるmalloc()を極力減らすという意味と書いたが,よく考えてみればこれはmalloc()*1が遅いというのが問題なのではない*2。malloc()はそれだけで終わるものではなく,mallo()を呼ぶAPIの内部または前後ではデータのコピーが伴うのが普通だし,その前にSVの割りあてが必要だったり,あるいは一時SVを使うとなればENTER+SAVETMPS ... FREETMPS+LEAVEといったブロックスコープ管理ルーチンが伴ったりと,付随する様々な処理が加わることが極めて多い。だから避けるべきなのはmalloc()そのものというより,malloc()に付随する膨大な処理である。 具体的には,たとえばMOP.xsでは,メソッドやハッシ
最近ひたすらXSを書いていて思ったのが,XSはやっぱり速いということ。 ただ,いつでも無条件に速いというわけでもなく,何も考えずに書くとPurePerlのコードより遅くなることも珍しくない。実際,最近書いたShikaやMOPのXS版もいきなり高速だったわけではなく,一番最初のコードはPurePerlのほうが10%-30%ほど高速だった。 いろいろベンチマークをとった結果の感触として,XSの得手・不得手が分かってきたのでメモしておく。ちなみに下記で「注意を払う」というのは内部で呼ばれるmalloc()を極力減らすという意味で使っている。SVの生成自体はmalloc()を伴わないことが多い*1が,文字列の生成/連結や配列の生成/push/unshiftでは内部でmalloc()が呼ばれる可能性が高く,速度を落とす原因となる。 得手分野 ループ - XSのループが早いというより,Perlのループ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く