2009-12-07 29 views
0

我們正在創建一個小型應用程序,將部署到非常有限的機器。他們只有256mb的RAM。JPA/ORM與JDBC性能限制的機器

我想使用JPA,因爲它簡化了代碼並消除了對JDBC ResultSet代碼的需求。但是,JPA在這種小型機器上的開銷會是一個因素嗎?目前我正在考慮使用Toplink,它有一個2.5mb的JAR文件。

我們只有有限數量的表,所以JDBC代碼不會太麻煩。但JPA使代碼如此美好。

乾杯。

回答

1

JPA/ORM在運行時的性能總是大於或等於JDBC,因爲它們都基於JDBC。如您所知,您從JPA/ORM獲得的大提升正處於開發階段。

我想使用JPA,因爲它簡化了代碼並消除了對JDBC ResultSet代碼的需求。

我不確定我是否理解此聲明。 JPA將在幕後使用ResultSet;你只是不會寫它。從ResultSet到對象的映射封裝在XML或註釋中。

如果您確實需要內存綁定,則可能必須傳遞JPA並手動編寫JDBC代碼。

在這種情況下,您可能會考慮Spring JDBC,因爲它擁有非常好的JDBC支持設計,使得它非常簡單。

256MB的RAM?您將很難使用任何第三方庫。

+0

'我想使用JPA,因爲它簡化了代碼並且不需要JDBC ResultSet代碼。' - 這就是我的意思,我們不需要寫它。 JPA非常棒,因爲它可以返回集合。儘管我不喜歡它,但我認爲我們必須使用JDBC。謝謝。 – StillLearning 2009-12-07 02:29:58

0

根據操作系統和您正在運行的是什麼256MB的RAM並不像您想象的那麼小。使用ORM解決方案可能是完全可行的,但最好的方法是自己測試並查看。

測試這個應該比較簡單,看看它是否能夠在你的環境中工作。爲使用ORM的項目創建一個簡單的項目或修改,併爲一個實體創建一些測試事務。然後觀察它的表現以及內存使用情況。取決於你需要做什麼,它可能沒問題。

你也可以將JVM內存限制到一定的水平,這將導致更多的垃圾回收,但它應該防止崩潰,除非你達到了限制。