0

VelocityEngineインスタンスのフットプリントは十分に小さいため、テンプレートを処理する必要があるたびに新しいインスタンスを構築できますか、それともVelocityEngineをキャッシュしてインスタンスを再利用するのが最善ですか?

4

1 に答える 1

1

通常は大きな違いはないと思います。実装したプロジェクトでは構成可能にしましたが、最終的にはオブジェクトをキャッシュせず、パフォーマンスの問題なしに毎回再生成するだけでした。

私の場合、速度処理が重いことに注意してください。つまり、レンダリング自体にかなりの時間がかかります。ペイロードが小さい場合、これは異なる場合があります。ただし、Velocityは内部でリフレクションを処理するため、レンダリングに常にオーバーヘッドが発生します。したがって、初期オブジェクトの作成には、これに比べてそれほど時間はかからないと思います。

したがって、パフォーマンス分析で問題が発生することが示されない限り、ここで何かを実装するのにあまり時間をかけません。一般的な経験則では、ほとんどの時間を使い果たしているものを測定し、それを修正してみてください。

さらに、私が覚えている限り(現時点では参照が見つかりませんでした)、VelocityEngineは定義ごとにスレッドセーフである必要があります。ただし、過去にマルチスレッドの問題に関するバグレポートがあり(すべて修正されました!)、新しいエンジンを作成することで、将来発生する可能性のあるスレッドの問題を回避できます。

于 2013-02-17T20:59:25.933 に答える