[mayaa-user:1016] 頻繁にレンダリングを行っていると、ページのビルドが遅くなります

Susumu ISHIGAMI [E-MAIL ADDRESS DELETED]
2014年 3月 15日 (土) 20:41:10 JST


石上です

連投で申し訳ありません。

一つのmayaaエンジンで、多数のWebページを提供しているWebサイトにて、
ローカル環境では数秒で終わっていたテンプレートのビルドに、数十秒
かかる現象を観測しています。

おそらく、このような構成のサイトでは、ページが多い分、
全体的にレンダリング処理が頻繁に行われていると思われます。
JMeterを使用して、ビルド済みのテンプレートをレンダリングする
処理を頻繁に行うと、ローカル環境でも、当該テンプレートのビルド時間が
遅くなることを確認いたしました。

私の推測では、Engineオブジェクトが事実上シングルトンとして実装されているため、
ビルド処理やレンダリング処理などあらゆる処理でEngineオブジェクトをsynchronizeしてしまっていて、
Engineオブジェクトのロック待ちが処理のボトルネックとなっているのではないかと思っています。

この件について、もし何か対処法があればご教示いただけると有難いです。

私が思いついたアプローチとしては、

・レンダリング処理時は、ビルド処理と競合するリソースについては直接参照せず
 キャッシュを参照することにして、ビルドとレンダリングを干渉させないようにする

・ロックの範囲をテンプレートエンジン全体ではなく、フォルダ等一定のセグメントごとにロックする

このとき、ランタイムで変更できるファイルを限定しても構いません
(例えばdefault.mayaaファイルの変更は検知しない)

曖昧で申し訳ありません。

更に情報が必要でしたら、提供致します。
再現ソースが必要でしたら少し時間をいただければ作成致します。


mayaa-user メーリングリストの案内