应用程序在eclipse中运行得更快

时间:2012-03-28 07:52:25

标签: java eclipse hibernate jpa

我在eclipse中有一个可运行的java SE应用程序。我引导JPA在普通的java 6 SE环境中工作。对数据库中不同表的每个请求都不会超过100毫秒。

问题在于,当我导出runnable jar并且我说java -jar myapp.jar时,对数据库的每个请求大约需要9秒。

我不明白为什么当我从eclipse运行它时应用程序更快

3 个答案:

答案 0 :(得分:1)

事实上,每次我向数据库发出请求时,我都在创建一个实体管理器:

Persistence.createEntityManagerFactory( "mysqldb" );

为了优化实体管理器的创建,我使用像这样的单例实体工厂:

private static EntityManagerFactory em = Persistence
        .createEntityManagerFactory( "mysqldb" );

public static EntityManagerFactory getEmf()
{
    return em;
}

这有助于改善eclipse之外的应用程序的性能,但是当我在eclipse中运行时,性能没有任何变化。

我不确定应用程序从eclipse启动时效果更好的原因是什么,但此解决方案暂时解决了我的问题。

答案 1 :(得分:0)

我不确定如何使用eclipse编译器。 eclipse使用的ant脚本是:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project Server">
<!--this file was created by Eclipse Runnable JAR Export Wizard-->
<!--ANT 1.7 is required                                        -->
<target name="create_run_jar">
    <jar destfile="myapp.jar" filesetmanifest="mergewithoutmain">
        <manifest>
            <attribute name="Main-Class" value="myapp.main.Main"/>
            <attribute name="Class-Path" value="."/>
        </manifest>
        <fileset dir="dir.../Myapp/build/classes"/>
        <zipfileset excludes="META-INF/*.SF" src=
            ..exclude all libraries
    </jar>
</target>
</project>

答案 2 :(得分:0)

您可以在两个版本上使用-verbose:class来查看它是否正在加载导致速度减慢的类的不同版本