2009-05-25 17 views
6

Rozważamy użycie ehcache (1.6.0-beta5) do włączenia buforowania drugiego poziomu wielu tabel, które nigdy nie są modyfikowane. Dla tej tabeli ustawiliśmy region ehcache tylko do odczytu i obecnie wygląda na to, że działa dobrze. Pozycje POJO Hibnerate przechowywane w pamięci podręcznej są niezmienne.Wydajność hibernacji buforowania drugiego poziomu ehcache

Jeden z twórców tutaj podniósł problem, że występuje znaczny spadek wydajności w czasie potrzebnym do "uwodnienia" obiektów z ehcache, czyli odwzorowania z wewnętrznej reprezentacji ehcache jednostki do rzeczywistego obiektu java. Zamiast tego zasugerował, byśmy ręcznie przechowywali obiekty w naszej pamięci podręcznej. Wymagałoby to znacznej modyfikacji naszego kodu i mam zastrzeżenia co do tego, jak duża byłaby poprawa.

Moje pytania są następujące:

  1. Czy ten spadek wydajności naprawdę istotna?
  2. Jeśli jednostki są niezmienne w pamięci podręcznej tylko do odczytu, to czy ehcache rzeczywiście musi w ogóle wykonać jakieś nawodnienie? Czy nie mógłbyś przechowywać obiektów bezpośrednio?

Dzięki za pomoc.

Odpowiedz

4

Powinieneś profilować czas potrzebny na nawodnienie. A jeśli jest to istotne (co najmniej kilka procent), powinieneś pomyśleć o zmianie kodu.

+1

Tak, to zdecydowanie kolejny krok dla nas. Widziałem, czy inni wcześniej mieli problemy z wydajnością spowodowane wcześniejszym nawodnieniem. –

+0

Jaki był rezultat twojego profilowania? Czy nawodnienie miało znaczący wpływ na wydajność w twoim przypadku? – Jardo

Powiązane problemy