Jetty

2010-11-11 28 views
6

'da uygulama başlatmayı hızlandırın Guice, ve EclipseLink ile yapılandırılmış küçük bir web uygulamasına sahibim ve bu uygulamayı geliştirme sırasında iskelede (8.0.0.M1) çalıştırın. Yaklaşık 10 (küçük) JPA yönetilen sınıf (varlık ve gömülebilir) ve toplamda yaklaşık 20 sınıf vardır.Jetty

İlk başlangıç, ilk istekler için 15 saniye + 5 saniye sürer. İlk istek üzerine JPA çalışıyor gibi görünüyor, çünkü tablo oluşturma stratejisi "oluştur" etkin ve ilk istek üzerine Maven'den bazı JPA çıktılarını görüyorum.

Yeniden yükleme yaklaşık 10 saniye sürer ve yeniden yüklendikten sonraki ilk istek yaklaşık 3 ila 4 saniye sürer.

Başlangıç ​​zamanının çok da kötü olmadığını düşünebilirsiniz, ancak başlangıçta Django gibi daha akıcı bir şekilde çalışmayı hızlandırabilir miyim diye merak ediyorum. Başlangıç ​​ayarlaması için bir fikrin var mı?

+0

Endişeniz başlangıç ​​zamanı başına mı, yoksa ilk kullanıcı başlangıç ​​maliyetini ödemek zorunda mı? Eğer ikincisiyse, başvurunuzu sadece ısınmak için başlangıçta istek (ler) e gönderebilirsiniz. Daha sonra ilk kullanıcı normal bir yanıt zamanı görür. –

+0

Endişem, geliştirme sırasında başlangıç ​​zamanı. Yeniden üretimler, üretimde nispeten nadirdir, bu nedenle ilk kullanıcının birkaç saniye beklemesi gerektiğini kabul ediyorum. – deamon

+1

Kod değişiklikleri (şema değişiklikleri değil) nedeniyle yeniden başlatırsanız, yeniden başlatmalardan (neredeyse) tamamen JRebel ile (http://www.zeroturnaround.com/jrebel/) kaçınmayı deneyin. Özgür değil, ama çok zaman kazandırıyor (Ben hiçbir şekilde onlara bağlı değilim). – DaGGeRRz

cevap

2

Tablo oluşturma stratejisini kaldırmaya hazır değilseniz, böyle yükleme sürelerini tolere etmeniz gerekecektir. Özünde, başvurunuzu başlattığınız her defasında, tabloları bırakacak/oluşturacak/doğrulayacak ve paketinizdeki varlıklar ile eşleşmesi için doğru DDL ifadelerini yayınlayacaktır.

Varlıklarınızı tanımlamayı tamamladığınızı ve bazı iş mantığı kodları üzerinde çalıştığınızı varsayarak, veritabanını bir kez oluşturabilir ve yalnızca ilk kurulumunuzu yeniden kullanabilirsiniz.

0

Hızlı uygulama geliştirme (RAD) için Jetty kullandığınızı ve değişiklikleri olabildiğince çabuk görmek ve test etmek istediğinizi tahmin ediyorum. RAD ortamınızın veritabanında gerçek bir "kalıcı" gereksinim yoksa, bir bellek belleği DB altyapısına geçmeyi deneyebilirsiniz. DB motoru gibi HSQL, gerçek üretim kalitesi DB motorlarına kıyasla çok hızlı bir şekilde yeni tabloları (ve diğer yapıları) döndürmenizi sağlar. Bu, bir ORM kullanmanız gerekir çünkü HSQL'in SQL'i diğer birçok veritabanından çok farklıdır, ancak JPA'yı kullanmakta olduğunuza benziyor bu yüzden bu zor olmamalıdır.

Gördüğüm tek alternatif, uygun şekilde oluşturulmuş şemasına sahip ve her seferinde düşürmeyen bir veritabanı kullanmaktır.

+0

Zaten bir bellek içi DB (Derby) kullanıyorum. – deamon