पर आउटऑफमेमरी एरर फेंकता है मैंने डेटाबेस पूल (केवल डेटा पुनर्प्राप्त करने के लिए) अनुकरण करने के लिए मॉकिटो का उपयोग करने का प्रयास किया, लेकिन एक प्रदर्शन परीक्षण चलाते समय, जिसने कई समय के दौरान कई नकली कनेक्शन पुनर्प्राप्त किए, यह स्मृति से बाहर हो गया।मॉकिटो एक साधारण परीक्षण
यहां एक सरलीकृत स्वयं निहित कोड है, जो मेरी मशीन पर लगभग 150,000 पाश पुनरावृत्तियों के बाद आउटऑफमेमरी एरर फेंकता है (इसके बावजूद कि कुछ भी वैश्विक रूप से सहेजा नहीं जा रहा है, और सब कुछ कचरा इकट्ठा होना चाहिए)। मैं क्या गलत कर रहा हूं? के लिए मुझे तो मैं सिर्फ तुम जब आप इसे चलाते heapspace उपलब्ध की राशि में वृद्धि करने की आवश्यकता है यह मान सकते हैं
import static org.mockito.Mockito.when;
import java.sql.Connection;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
public class Test1 {
static class DbPool {
public Connection getConnection() {return null;}
}
@Mock
private DbPool dbPool;
@Mock
private Connection connection;
public Test1() {
MockitoAnnotations.initMocks(this);
when(dbPool.getConnection()).thenReturn(connection);
for(int i=0;i<1000000;i++) {
dbPool.getConnection();
System.out.println(i);
}
}
public static void main(String s[]) {
new Test1();
}
}
उच्चतम मेरी स्मृति उपयोग कभी करने के लिए हो जाता है ~ 950 एमबी के रूप में [ 'रनटाइम द्वारा मापा है (। totalMemory'] (http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html#totalMemory()))। – Jeffrey
लेकिन इसे किसी भी स्मृति का उपयोग पहली जगह क्यों करना चाहिए? बनाए गए ऑब्जेक्ट्स के लिए कोई वैश्विक संदर्भ नहीं बनाया गया है, और फिर भी जब आप जीसी चलाते हैं तो कुछ भी एकत्र नहीं होता है। – Tim
मॉकिटो अपने मजाकिया वर्गों के साथ दृश्यों के पीछे चीजें कर रहा है। मुझे लगता है कि वह जगह है जहां अधिकांश स्मृति का उपयोग किया जा रहा है। – Jeffrey