CEDiL - Center for the Design of Library

  • セッション検索(ホーム)
  • 利用規約
  • お問い合わせ
新規会員登録 ログイン
登録情報変更
ログアウト
  • セッション検索(ホーム)
  • 利用規約
  • お問い合わせ
  1. TOP
  2. セッション詳細
GS2
検索 ヘルプ

絞り込む

  • 指定しない
  • CEDEC 2026
  • CEDEC 2025
  • CEDEC 2024
  • CEDEC 2023
  • CEDEC 2022
  • CEDEC 2021
  • CEDEC 2020
  • CEDEC 2019
  • CEDEC 2018
  • CEDEC 2017
  • CEDEC 2016
  • CEDEC 2015
  • CEDEC 2014
  • CEDEC 2013
  • CEDEC 2012
  • CEDEC 2011
  • CEDEC 2010
  • CEDEC 2009
  • CEDEC 2008
  • CEDEC 2007
  • CEDEC 2006
  • CEDEC+KYUSHU 2025
  • CEDEC+KYUSHU 2024
  • CEDEC+KYUSHU 2023
  • CEDEC+KYUSHU 2022
  • CEDEC+KYUSHU 2021
  • CEDEC+KYUSHU 2020
  • CEDEC+KYUSHU 2019
  • CEDEC+KYUSHU 2018
  • CEDEC+KYUSHU 2017
  • CEDEC+KYUSHU 2016
  • KYUSHU CEDEC 2015
  • KANSAI CEDEC 2015
  • CEDEC+SAPPORO 2019
  • SAPPORO CEDEC 2014

セッション分野

最大100倍高速化!PHPからJavaへのFFIを実現する、JNIを用いた高速なサーバAPIの実装方法

CEDEC 2022 ENG
ポスト
日時
2022年08月25日(木)18時00分〜18時25分
形式
ショートセッション(25分)

受講スキル

PHPのチューニングに関心がある方 サーバを運用している方 異なる言語間のInteropに関心がある方 PHPのC Extensionに関心がある方

受講者が得られるであろう知見

ソーシャルゲームのWebAPIのチューニング方法 PHPとJavaのInteropの方法 PHP C Extensionの安全な本番投入のフロー

セッションの内容

ゲームサーバにおいてPHPからJavaライブラリを利用する際に処理効率と安定性、運用のしやすさを実現する実装方法と、この実装を導入する際の事例をウマ娘プリティーダービーおよびワールドフリッパーでの実例を踏まえてご紹介します。

近年ゲームサーバでは1つのブログラム言語だけが稼働していることは少なく、多少なりともスクリプト言語・コンパイル言語ともに使われているケースが多いです。通常ではPHPにライブラリを移植するといった手法がとられますが処理速度の面で問題がでるうえ、移植である以上元のJavaライブラリと処理の同一性を担保することもかなりの労力が必要となってしまいます。この点は高処理効率と運用のしやすさの両立を目指す必要があるゲームサーバとしては問題となります。
これを解決するためにCによるExtensionを作成しPHPからJavaライブラリを直接実行できるFFI(Foreign Function Interface)を実装しました。特に今回のケースでは処理時間はPHPで等価なコードを移植した場合に比べ、100msから1msと約100倍の差が出ました。この事例をもとに実装に至った経緯や、具体的な設計構成についてご紹介します。

講演資料

最大100倍高速化!PHPからJavaへのFFIを実現する、JNIを用いた高速なサーバーAPIの実装方法.pdf

※資料のダウンロードには ログイン が必要です。

講演者プロフィール

伊藤 英知

伊藤 英知

株式会社Cygames サーバーサイド

シニアエンジニア

プロフィール

サイバーエージェントグループのソーシャルゲーム会社を経て、2012年より株式会社Cygamesに参画。
フィーチャーフォン/スマートフォンのブラウザおよび、スマートフォンのネイティブゲーム、コンシューマゲームの開発・運用に携わる。
負荷対策やミドルウェアの検証や社内で使用しているサーバフレームワークのメンテナンスなど社内のプロジェクトを横断的に支援、より安定して快適に遊べるよう日々開発を行っている。

《講演者からのメッセージ》

PHP ExtensionやJNIは一つ一つは昔からある枯れた仕組みですが、
適用する場所を見極めて組み合わせるとPHPからJavaのライブラリを直接呼び出すことができるようになります。
これによりメンテナンス性とパフォーマンスの両方の問題を同時に解決できたという事例を紹介します。
あわせて、新しいソリューションを安全に投入する際の留意点について解説します。
PHP Extensionや他の言語との連携にご興味のある方はぜひ御覧ください。

セッション検索(ホーム)に戻る

PR

  • 株式会社WFS

関連リンク

  • CEDEC
  • YouTubeチャンネル
CEDiL

CEDEC Digital Libraryは、ゲーム開発者向けの技術情報を提供するプラットフォームです。

  • セッション検索(ホーム)
  • ログイン
  • お問い合わせ
  • 利用規約
CESA:一般社団法人コンピュータエンターテインメント協会

Copyright © CEDEC Digital Library All rights reserved.