我正在從分析數據庫中提取登錄用戶的喜好。然而,當我做了查詢,我得到一個OutOfMemoryError:在啓動時獲取多個項目時出現內存不足錯誤
java.lang.OutOfMemoryError: Failed to allocate a 78089518 byte allocation with 16777216 free bytes and 26MB until OOM
at java.lang.String.<init>(String.java:332)
at java.lang.String.<init>(String.java:149)
at java.lang.String.<init>(String.java:119)
at com.parse.ParseRESTCommand.onResponse(ParseRESTCommand.java:176)
at com.parse.ParseRequest$3.then(ParseRequest.java:229)
at com.parse.ParseRequest$3.then(ParseRequest.java:225)
at bolts.Task$14.run(Task.java:796)
at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:105)
at bolts.Task.completeAfterTask(Task.java:787)
at bolts.Task.continueWithTask(Task.java:599)
at bolts.Task.continueWithTask(Task.java:610)
at bolts.Task$12.then(Task.java:702)
at bolts.Task$12.then(Task.java:690)
at bolts.Task$14.run(Task.java:796)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
查詢我做如下所示:
ParseQuery<Like> query = ParseQuery.getQuery(Like.class);
query.include("user");
query.setLimit(1000);
query.whereEqualTo("user", ParseUser.getCurrentUser());
query.addDescendingOrder("createdAt");
一些需要注意的,如果我限制這100它是好的。在限制範圍內玩耍時,如果限制超過600,它似乎會拋出錯誤。另外需要注意的是,我做了一個類似的調用,從Parse獲取1000個項目,完全沒有任何問題。它似乎與這個確切的查詢有關。
有沒有人遇到過類似的問題?
我不確定你的數據庫是什麼樣子,但可能是因爲你喜歡的類非常大,並且你包含了與當前用戶相匹配的每個用戶(對象)(雖然我不知道爲什麼你會有多個你的db中的當前用戶) – Naveed