2015-02-07 50 views
0

我有Postgres DB,7500行在客戶端表中,-Xmx8m。Hibernate ScrollableResultSet意外OutOfMemoryError

Query query = session.createQuery("select c from Client c"); 
ScrollableResults resultSet = query.setFetchSize(50).setCacheMode(CacheMode.IGNORE) 
.scroll(ScrollMode.FORWARD_ONLY); 
    int i = 0; 

    while (resultSet.next()) { 
     Client client = (Client) resultSet.get(0); 
     System.out.println(client.getId()); 
     i++; 
     if (i % 50 == 0) { 
      session.clear(); 
      Thread.sleep(500); 
     } 
    } 
    session.clear(); 
    resultSet.close(); 

當我運行我的應用程序,我得到這個: .... java.lang.OutOfMemoryError:GC開銷超過限制

然後我設置-Xmx1024m和運行jvisualvm和得到這個 -

enter image description here 爲什麼我得到了很多字符串?誰可以解釋爲什麼OutOfMemory發生?

回答