私のチームは Ruby で MMO サーバーに取り組んでおり、計算量の多い操作を C 拡張に移行することにしました。その取り組みの一環として、実際のデータ ストレージを C に移動しました (Data_Get_Struct などを使用)。したがって、たとえば、各 Ruby「Zone」オブジェクトには、実際のバイナリ データが格納される「ZoneKernel::Zone」C 構造体が関連付けられています。
基本的に、これはひどい考えなのかどうか疑問に思っています。私は Ruby の内部構造にあまり詳しくありませんが、親 Zone が Ruby 側のメモリ内にとどまっている限り (したがって、C データのガベージ コレクションを防ぎます)、データは問題ないように思われます。
1 つの注意点は、サーバーをクラッシュさせる半定期的な「スタック整合性エラー」が発生していることです。これは、関連するメモリの問題のように思われます (庭のさまざまな segfault ではなく)。 、私もそれをいただければ幸いです!