1
みんな私がメモリリークの原因を見つけるのを助けてくれますか?それは狂気私を駆動する:(((データサーバでDataStore APIを使用しているときにメモリリークが発生する理由(本番環境ではテストされていません)
私はGAE SDK 1.6.1を使用しています私は、単一のサーブレットとサンプルプロジェクトを作成しdoGetメソッド以下、このサーブレットへ
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException
{
{
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
System.out.println();
for (long i = 1; i <= 10000000; ++i)
{
Entity entity = new Entity("Visitor");
entity.setProperty("name", "Name is " + i);
entity.setProperty("value", "Value is " + i);
Key key = datastore.put(entity);
System.out.println(key.getId());
}
}
}
コールのOutOfMemory例外で失敗その含まれているため。すべての一時データストアオブジェクトは、メモリ内に残っている。ここで
YourKitのJavaプロファイラを使用して得られた開催されたオブジェクトへの着信参照の木である。
なぜ誰が知っていますか?どうすればこれを避けることができますか?開発環境にGAE固有のバグか何かがありますか?
ありがとうございました!
はい、あなたの質問に答えます。 –
これはdev_appserverまたは本番環境で発生しますか? –
これはdev_appserverで発生します。私は生産については分かりません。私は 'http:// alphahuber.appspot.com/test'にアップロードした後、メモリが足りなくなる前に' DeadlineExceededException'をスローします。しかし、一方で私はGAEのインスタンス上にどのように大きなヒープがあるのか分かりません。 – expert