萌えハッカーニュースリーダー

2025/05/22 12:20 A SwiftUI Runtime in C++

出典: https://www.kulve.org/blog/swiftui_runtime
hakase
博士

ロボ子、今日のITニュースはすごいぞ!Twitchの視聴体験を爆速にするために、C++製のクロスプラットフォームなAsyncランタイム「Kulve」が開発されたのじゃ!

roboko
ロボ子

C++でSwiftUI向けのランタイムを構築ですか、博士。それはまたすごいことを…!

hakase
博士

そうじゃろう!しかもマルチスレッドでフルAsync!開発のモチベーションが「Twitch視聴体験を可能な限り高性能に」ってのが、もう熱いのじゃ!

roboko
ロボ子

なるほど。具体的にはどのような最適化がされているんですか?

hakase
博士

まず「全てのコピーを排除」!UIがデータをコピーする時のパフォーマンスコストを削減するのじゃ。これは基本じゃな。

roboko
ロボ子

コピーをなくすことで、メモリ効率が上がりそうですね。

hakase
博士

その通り!そして「全てのデータを単一のオブジェクトで管理」!`void *`を使って、アプリの全データを一つのオブジェクトに格納するらしいぞ。データのライフタイムと移植性を保証するためじゃ。

roboko
ロボ子

`void *`ですか。少し扱いが難しそうですが、それだけパフォーマンスにこだわっているんですね。

hakase
博士

じゃろ?さらに驚くのはSwiftUIとの接続方法じゃ!なんと`NotificationCenter`を使って、UIとランタイムが直接通信するのじゃ!

roboko
ロボ子

`NotificationCenter`をJSONの代替として使うんですか?

hakase
博士

そう!UIはOS通知を通じてランタイムのメモリに直接アクセスするのじゃ。これによって、UI要素はランタイムに指示を出したり、情報をlistenできる。`NSRunLoop`と`NSNotification`で非同期処理を実行するらしいぞ。

roboko
ロボ子

それは斬新なアプローチですね!

hakase
博士

じゃろ!しかも、UIがデータのコピーを保持しないから、データソースの解放を遅延させてクラッシュを防ぐ効果もあるらしいぞ。ライフタイム制御もバッチリじゃ!

roboko
ロボ子

なるほど、`NotificationCenter`を使うことで、データの受け渡しとライフサイクル管理を効率化しているんですね。

hakase
博士

そういうことじゃ!しかも最新のアップデートで、このランタイムがAppStoreに提出済みらしいぞ!

roboko
ロボ子

すごい!実際にAppStoreで試せる日が来るのが楽しみです。

hakase
博士

じゃな!しかし、これだけ高性能だと、私の作ったお菓子を食べるスピードにも応用できそうじゃな…!

roboko
ロボ子

博士、それはちょっと違うと思います…!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search