Cy#の河合です。今回、文字列生成におけるメモリアロケーションをゼロにする「ZString」というライブラリを公開しました。そこで、この記事ではZStringの紹介の他に、あらためてC#の文字列についてを深く分解して解説し、Stringの複雑さと落とし穴、そしてZStringの必要性について解説します。 [GitHub – Cysharp/ZString] 以下の表は `”x:” + x + ” y:” + y + ” z:” + z` という単純な文字列連結においてのパフォーマンス計測です。 それぞれ “x:” + x + ” y:” + y + ” z:” + z ZString.Concat(“x:”, x, ” y:”, y, ” z:”, z) string.Format(“x:{0} y:{1} z:{2}”, x, y, z) ZString.Format(“x:{0} y:
こんにちは。サーバーサイドエンジニアの小松・大橋です。 2020年2月13日・14日に開催された「Developers Summit 2020(デブサミ2020)」において、『グランブルーファンタジーを支えるサーバーサイドの技術』と題した講演を行いました。ご参加いただいた皆様、当日は素晴らしい時を共有させていただき、ありがとうございました。 なお、この講演はWebメディア「CodeZine」でも取り上げていただきました。ご興味のある方はご参照いただければと思います。 講演資料はこちらになります。 本稿では、講演でお伝えし切れなかったことや、質問を多くいただいた事項をフォローアップしていきます。 中長期的な改善の意義について 講演では、中長期的な改善の意義についてお話ししました。 我々にとって最も大切なのは、お客様に快適にプレイしていただくことです。そして、トラブルを未然に防ぐことも目的の一
Cy#の河合です。以前に「MasterMemory – Unityと.NET Coreのための読み取り専用インメモリデータベース」という記事で、弊社で開発しOSSにて公開しているMasterMemoryというライブラリを紹介しました。 [GitHub – Cysharp/MasterMemory] 最初のバージョンでは、コンセプト実証と性能の追求が主軸でしたが、最初の公開から半年を経た今回はVersion 2として、実アプリケーションに適合するにあたっての便利な周辺機能の拡充を図りました。その一つがパラメーター検証のためのバリデーターです。 Cygamesでは以前、「ユーザを飽きさせない高頻度の更新を可能にする開発運用ノウハウ ~ハイスピードな開発、リリースを実現するために~」としてDSLによる検証システムを紹介しました。 DSLベースにすることで、スキーマ定義によるサーバ
Cy#の河合です。今回、『UniTask』という新しいUnity用の非同期処理ライブラリを公開しました。 [GitHub – Cysharp/UniTask] 新規公開、ではありますが、実は新しいわけではなく、元々UniRxの機能として公開していたものを、分離したものとなります。併せてUniRxも更新していて、お互いに依存が一切ない独立したものになっています。 概要に関しては、以前に公開した以下のスライドで詳しく述べていますが、改めてまとめてみます。 async/awaitまでのC#/Unityの非同期処理 一般に、非同期処理はコールバックで完了後のメソッドを呼び出す形で実装できます。Unityも例外ではなく多用されていますが、 複雑な処理でネストが多重になる その際、内側の例外は外側には伝搬されない 処理順序がコードから見えなくなる といったような、いわゆるコールバック地獄に陥ります。代
Cy#の河合です。今回新しくオープンソースライブラリとして、マスターデータの管理用途を主眼に置いた、読み取り専用のインメモリデータベースを公開しました。 [GitHub – Cysharp/MasterMemory] 今までのゲーム開発の経験から、「省メモリ(インメモリということもあり使用メモリ量には気を使う」「高速なデータベースロード(構築に時間がかかるとゲームの起動速度に大きく影響する)」「高速な検索(ディクショナリのルックアップと同程度のクエリ)」の3点を重視して作りました。以下がベンチマークの結果となります。 MasterMemory、SQLite、LiteDB、RocksDBがインプロセス、Memcachedのみ別プロセスのマシン内通信による比較です。SQLite(ファイル読み込み型)の4700倍高速で、1クエリでのアロケーションはゼロです。また、保存時のファイルサイズも極小です
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く