Code makes the world a better place

GDB で Rust をデバッグする方法

イントロダクション

Rust で書かれた Servo ブラウザのように、大規模なオープンソースプロジェクトは非常に巨大です。行数を数えたことがあるのですが、Servo プロジェクトには 10 万行近いコードがあります。こうした大規模プロジェクトを開発するには、正しい方法でデバッグできることがとても重要です。なぜなら、ボトルネックを素早く効率的に見つけたいからです。

本記事では、Rust のコードや Servo プロジェクトを開発・デバッグするために GDB を使うコツを紹介します。このデバッグ手法は C/C++ にも応用できます。

Continue reading

Linux で perf を使った性能分析(入門)

イントロダクション

性能分析ツール(Profiler)を使うと、ソフトウェアの実行に関するより多くの情報を得られます。たとえば、使用メモリ量、CPU サイクル、キャッシュミス、I/O 処理時間などです。これらの情報は、プログラムの性能ボトルネックを見つける上で非常に役立ちます。どこがプログラムを遅くしているのかを見つけ、性能を最大化することが性能分析の最大の目的です。

本記事では Linux の性能分析ツール perf を紹介します。簡単なプログラム例を使って perf による分析手順を示し、分析ツールを使うと問題の根本原因をより見つけやすくなることを確認します。本文は Gabriel Krisman Bertaz の Performance analysis in Linux を参考にしています。

Continue reading