私はマルチスレッドのクローラーを持っています。このプログラムでは、シードを大量にロードするとエラーが発生します。を見てjava.lang.OutOfMemoryError
、メモリが足りないのではないかと思いました。crawler.jar
これらの引数を指定してファイルを実行しようとしましたjava -Xms512m -Xmx3G -jar crawler.jar
が、これまでのところうまくいきません。
これは、プログラムの StackTrace です。
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:597)
at com.sleepycat.je.utilint.DaemonThread.runOrPause(DaemonThread.java:99)
at com.sleepycat.je.dbi.EnvironmentImpl.runOrPauseDaemons(EnvironmentImpl.java:772)
at com.sleepycat.je.dbi.EnvironmentImpl.envConfigUpdate(EnvironmentImpl.java:717)
at com.sleepycat.je.dbi.EnvironmentImpl.finishInit(EnvironmentImpl.java:579)
at com.sleepycat.je.dbi.DbEnvPool.getEnvironment(DbEnvPool.java:204)
at com.sleepycat.je.Environment.makeEnvironmentImpl(Environment.java:230)
at com.sleepycat.je.Environment.<init>(Environment.java:212)
at com.sleepycat.je.Environment.<init>(Environment.java:166)
...
私が疑ったように、これはメモリに関連していますか?-Xms512m -Xmx3G
を使用してjarファイルを実行しているときに作業を追加しますjava -jar
か?
タスク マネージャーを実行しました (私は Windows Server で実行しています) が、アプリを実行した後、メモリはそれほど高くなりません! 私が間違っている?