最近のRoonアップデートについてのテクニカルな詳細
以前スタッフの方が、現在Roonが行っているアップデートのテクニカルな詳細について
記事にするようなことを言っていましたが、
今日Roonのブログで記事がアップされていましたので以下に全文訳しました。
なおRoon Bridgeの更新が予定されていますが、よほど古いものを使っていない限り
大丈夫なようですが、一応自分の環境をチェックしてみてください。
機能を増やすより、動作を安定させて欲しいというヘビーユーザーの声が
コミュニティに多かったのですが、最近それが一気に解消されたように思います。
まだまだこれからも改善が行われていきそうで楽しみです。
より高速でスムーズなRoonの構築

パフォーマンスの改善において最も素晴らしいのは、往々にして「改善されたこと自体を意識しなくなること」です。
検索結果は素早く返り、ブラウジングは即座に行われ、スクロールはあなたの操作にしっかり追従します。Roonを数日間起動し続けても、最初に開いた時と変わらないレスポンスを維持します。
この体験をより速く、よりスムーズに、そしてより信頼性の高いものにすることは、過去6ヶ月間におけるエンジニアリングチームの最大の注力分野の1つでした。
これは単一のプロジェクトや、何か1つの劇的な修正によるものではありません。私たちはRoonを上から下まで徹底的に見直しました。その取り組みには、メモリリークの特定、不要な処理の削減、キャッシュとデータベースアクセスの改善、検索機能の一部の再構築、レンダリングとスクロールの洗練、そしてアプリケーションを支えるテクノロジーの近代化が含まれています。
これらの変更の多くは、最近のリリースを通じてすでにRoonに反映されています。その他の変更は、現在もEarly Accessや継続的な開発の段階にあります。
これらはすべて、1つのシンプルで大きな目標を支えています:
Roonは自己管理に費やす時間を減らし、ユーザーへの応答により多くの時間を割くべきである。
同じ仕事をするための処理を減らす
Roonは常にライブラリを整理し、ローカルコンテンツとストリーミングコンテンツを統合し、ブラウジング用のメタデータを準備し、リモート端末やオーディオデバイスと通信し、ライブラリの変更に対応し、非常にビジュアルなインターフェースをレンダリングしています。
時間が経つにつれて、小さな非効率が蓄積していくことがあります。
役目を終えたデータがメモリ内に残り続けるケースが見つかりました。これにより、Roonはそのクリーンアップにより多くの時間を費やすことを余儀なくされていました。また別の場所では、再利用可能な情報を再構築していたり、同じデータの重複コピーを保持していたり、リモートが切断された後もリソースを保持し続けていたりしました。
これらの異なる問題は、Roonを使用している人にとっては非常に似た体感として現れます。操作に時間がかかるようになったり、ブラウジングが重くなったり、最初は素早く起動していたアプリケーションが時間の経過とともにレスポンスが悪くなったりするのです。
私たちは、Roonの中で最も頻繁に使用される経路を中心に、こうした数十件の問題に対処しました。いくつかの領域では、個別の問題を修正するだけでなく、同様の問題が再発しにくいように根本的なシステムを再設計しました。
検索のためのより高速な基盤
Roon Searchの進化については以前にも執筆したことがありますが、その取り組みは水面下で継続されていました。
最近では、Roon Server内部で動作するローカル検索エンジンに焦点を当てました。ライブラリが大きくなるにつれて、以前の実装ではパフォーマンスにばらつきが生じることがわかってきました。多くの検索は素早く結果を返しますが、一部の検索には必要以上に著しい時間とリソースがかかっていたのです。
そうした制約を騙し騙し回避し続けるのではなく、私たちはシステムの一部を、高速で効率的なワークロード向けに設計された現代的な検索エンジンへと置き換えました。
目標は、Roonが見つける検索結果やランキング方法を変更することではありません。それらの結果を生み出すための裏側の処理をより速く、より予測可能なものにすることでした。
その結果、特に大規模なライブラリにおいて、より高速で一貫性のあるローカル検索が実現しました。また、Roon Serverのメモリや処理リソースへの負荷も軽減されます。
Roonの「体感速度」を向上させる
パフォーマンスとは、メモリ使用量やデータベースクエリ、あるいはサーバーがタスクを完了する速さだけの話ではありません。指と画面の間で何が起こるかということも重要な要素です。
最近の取り組みでは、大きなリストにおける長年のスクロール問題に対処し、画面移動(ナビゲーション)時の不要な処理を削減し、Roonがインターフェースの一部をレンダリング(描画)する方法を改善しました。
120Hzディスプレイを搭載したサポート対象のスマートフォンやタブレットにおいて、Roon Remoteは高リフレッシュレートをより適切に活用できるようになりました。これにより、スクロールがより自然でレスポンシブに感じられるようになります。
やるべき仕事はまだ残っています。レンダリングのパフォーマンスは、OS、デバイス、グラフィックスハードウェア、ディスプレイ、そして使用されている特定の画面の複雑な組み合わせに依存します。
だからこそ、私たちはこれを1回限りの「パフォーマンス向上リリース」とは考えていません。ユーザーが毎日行う操作において引っかかり(摩擦)が見つかった場合、その原因を理解し、可能な限りそれを取り除きたいと考えています。
Roonの根幹にある技術の近代化

これらのパフォーマンス向上と並行して、私たちはRoon全体で使用されているテクノロジー基盤の近代化を進めてきました。
その取り組みの重要な一部分が、.NET 10 への移行です。
まず Roon Server と Roon デスクトップアプリケーションが移行を果たしました。続いて、Roon 2.70 にて iPhone、iPad、Android 向けの Roon Remote が移行しました。これにより、長年にわたりモバイルアプリケーションを支えてきた古いランタイムが置き換えられました。
フレームワークの名前自体は重要ではありません。重要なのは、共通の現代的な基盤によって何ができるようになるかです。
密接に関連するアプリケーション間で異なる世代のテクノロジーを維持することは、複雑さを生み出します。エンジニアは、異なる実装をサポートしたり、古いシステムの制約を回避したりすることに多くの時間を費やすことになります。その結果、体験そのものを改善するための時間が減ってしまうのです。
この基盤を近代化することにより、問題を診断するためのより優れてツールが手に入り、プラットフォーム固有の古い回避策が排除され、デスクトップ、サーバー、モバイル全体で一貫してRoonを改善することが容易になります。
このアプローチは .NET だけにとどまりません。Roon全体において、より良いソリューションが存在する古いシステムを順次置き換え、データのキャッシュやアクセスの方法を改善し、内部インフラストラクチャをシンプルにし、Roonの構築やテストに使用するツールを近代化してきました。
これは近代化のための近代化ではありません。Roonをより継続的に改善しやすくするための取り組みなのです。
Roon Bridgeが次のステップ
Roon Bridgeは、.NET 10への移行における最後の主要なパーツです。
アップデートされたRoon BridgeのEarly Accessテストは7月に開始され、正式版(プロダクション)リリースは2026年8月30日に予定されています。
ほとんどの人にとって、これは通常のアップデートとして配信されます。ただし、Roon Bridgeを現代的な基盤に移行することにより、macOSとLinuxにおいて新しい最小動作要件が導入されます。
8月30日より:
- macOS上のRoon Bridgeには、macOS 12 Monterey以降が必要となります。
- Linux上のRoon Bridgeには、glibc 2.27以降およびOpenSSL 1.1.1以降が必要となります。
- Windowsユーザーは、今回の互換性変更の影響を受けません。
現在使用されているシステムのほとんどは、すでにこれらの要件を満たしています。古いMacや、Raspberry Piなどの小型コンピューターを含むLinuxデバイスでRoon Bridgeを実行している場合は、正式アップデートの前にOSを確認することをお勧めします。
お使いのシステムの確認方法や利用可能な選択肢については、当社のRoon Bridge最小システム要件に関するお知らせでご確認いただけます。
なお、この移行によって、お客様のRoonサブスクリプション、音楽ファイル、ライブラリ、プレイリスト、タグ、お気に入り、再生履歴、およびRoonのビットパーフェクト再生が変更されることはありません。
パフォーマンス改善の取り組みは続きます
Roonは6ヶ月前と比較して大幅に良い状態になりました。現在のパフォーマンスは向上しており、将来に向けてさらなる理解と改善を行うための備えもより強固になっています。
この進歩の多くは、皆様のご協力なしには困難でした。多くの方が診断データを送信し、問題のパターンを報告し、修正をテストし、問題が完全に解決していない場合にも追加の情報を共有してくださいました。
特に、Early Access コミュニティの貢献は重要でした。事前リリースソフトウェアを他のユーザーに配信される前に自身のシステムでテストしていただけたことで、問題の検出・再現・把握がスムーズに行われました。
その成果は、画面上で指し示せるような単一の新機能ではありません。
それは、より速くなった検索結果です。高いレスポンスを維持するライブラリです。操作にスムーズについてくる画面です。後始末に費やす時間を減らし、ユーザーが指示した作業により多くの時間を割くシステムです。
そのすべてを支えているのがより強固な基盤であり、それによって私たちは今後も改善を続けていくための大きな余地を得ることができました。

