カテゴリー
技術

Debian の perf を高速化するパッチと、そのGPL的な背景

Cargo の flamegraph ツールがDebian の perf のせいでとても遅いという話。

Cargo flamegraph sample

perf コマンドがプロファイルデータを解析する際に libbfd をリンクすればずっと高速になるのですが、Debian のポリシーでライセンスに違反するため libbfd をリンクすることはできないそうです。

[修正] コメントでの指摘を受け修正しました

perf のライセンスが GPL バージョン2、libbfd のライセンスが GPL バージョン3+ であり、これら二つのプロジェクトを合法的にリンクさせる方法がないそう。

Debian の Makefile では、わざわざ生成された perf コマンドが libbfd をリンクして「いない」ことをチェックするようになっているのですね。

そんな訳で、Debian の perf は dso 一つごとに addr2line コマンドをパイプで呼び出す(そして、毎回サブプロセスは終了する)方式となっています。

しかし、大量の perf 呼び出しを行う flamegraph を作ろうとした @leastfixedpoint さんは、いつまでも帰ってこない perf コマンドに業を煮やし、libbfd をリンクさせない範囲での高速化を考えました。

このパッチでは、addr2line を別プロセスとして起動させたままにしておき、dso をデータとして送り付け結果を受け取っても、addr2line プロセスを終了させないことで、とあるデータ量に対して68倍速く処理が終わるようにできたそうです。

対象のデータ量によっては気にならない程度の速度差なのかもしれませんが、同じようにここの処理速度で困ってる人もいるんじゃないでしょうかね。

via Hacker News

カテゴリー
ツール

オープンソース化された結婚式のウェブサイト(GPLライセンス)

Oath社のソフトウェア・エンジニア、ラムさん(Ram)が結婚一周年を記念して GitHub で公開したのは、彼が自身の結婚式のために製作したウェブサイト。

デモサイトも公開されていて、動く様子を見ることができます。

サイトは、二人の出会い(大学の同級生だそうです)、結婚式前後のイベント、参列者がインスタグラムに投稿する際のハッシュタグの案内(その写真はこちらで見られます)、婚約式の写真、結婚式場の地図、が、モダンなレスポンシブデザインで提供されています。

結婚式のウェブサイトのフォーマットとしては、この式が挙げられたインドでもどこでも大きく変わらないと思うのですが、コンテンツ内のメヘンディ、ハルディなどインドの結婚式独特の行事の案内や、そのドレスコードの説明などは興味深いと思いました。新郎新婦にウコンを塗りたくる儀式っていったい…

参加不参加の表明(RSVP)は Google Sheet とメールで、ホスティングは GitHub Pages で実現されていて、同じものを完全に無料で動かすことができます。

ライセンスはGPLv3ということで、これから結婚式を挙げるエンジニアの人は、これをベースにして作るのもいいかもしれませんね。

via Hacker News