ミュンヘン工科大学の研究チームのメンバーはRust言語で開発したネットワークデバイスドライバの処理速度をC言語のものと比較した。その結果、Rust版の速度低下は最大でも数%にとどまっていた。なぜ処理性能がわずかに遅くなるのか、その理由も説明した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「C」や「C++」に代わるシステムプログラミング言語として「Rust」が注目を集めている。メモリ安全性が高く、メモリ破壊バグといった脆弱(ぜいじゃく)性を作り込みにくいからだ(関連記事)。
ただし、システムプログラミング言語では、高い処理性能が必須条件であり、これがCやC++が使われ続けている理由となっている。Rustはどの程度「速い」のだろうか。
ドイツのミュンヘン工科大学で博士課程の学生であるポール・エメリク氏は2019年9月9日、Rustで作成したデバイスドライバの性能評価をGitHubで発表した。
同氏のグループはさまざまな言語で同じ機能を備えたデバイスドライバを記述し、性能を比較している。
性能評価用に作成したのは、Intelのイーサネットコントローラー向けのLinux用デバイスドライバだ(ixgbeタイプ)。
エメリク氏は解説の冒頭で研究に取り組んだ理由をはっきりと述べている。
「Rust版がC版より遅いのは、当然ながらRustの安全機能に起因する。だが、それを定量化できるのだろうか」
同氏によれば、Rustによる実装とCによる従来型の実装には大きな違いが2つしかないという。
つまり、境界チェックが、Rustのパフォーマンス上の主なデメリットとなっているという。
Copyright © ITmedia, Inc. All Rights Reserved.