2011-08-22 13 views
2

私はwicket Webアプリケーションを構築しています。それはDataViewの 'エンティティ'のリストを表示し、うまく動作する詳細ページを表示します。データベースの必要な行だけがDataViewにロードされるため、パフォーマンスは良好です。wicket webアプリケーションで複雑な計算をキャッシュする方法

「エンティティ」からオンザフライで生成された詳細ページに計算値を表示することもできます。しかし、リストページでこの計算値を合計したいときは、テーブルに数百の行があるとパフォーマンスが低下します。これは、セッションごとにテーブル全体に対して値が生成されるためです。

この計算値をキャッシュする必要がありますか(どうすればいいですか)、またはこの値を保持するデータベーステーブルに、DRY原則に違反する列を追加する方が良いでしょうか?

+0

コードは表示されませんが、私の答えはやや曖昧ですが、答えは1つの単語です:モデルです。 – biziclop

+0

しかし、モデルはセッションにまたがってキャッシュされますか? –

+0

あなたは、異なるHTTPセッション間で共有することを意味しますか?いいえ、間違いなく。だから、基本的に、アプリケーションレベルで物事をキャッシュする方法が必要ですか? – biziclop

答えて

0

@biziclopがコメントしたように、単純なキャッシュの解決策は、計算された値をキャッシュするアプリケーションクラスにフィールドを追加することです。このようにして、アプリケーションの起動時および関連するデータの変更ごとに計算を行う必要があります。

関連する問題