मैं इस कोड चला रहा हूँ:स्मृति छवि कमी
#include <iostream>
#include <cstddef>
int main(int argc, char *argv[]){
int a1=0, a2=0;
int a3,a4;
int b1=++a1;
int b2=a2++;
int*p1=&a1;
int*p2=&++a1;
size_t st;
ptrdiff_t pt;
int i=0;
while(true){
printf("i: %d",i++);
}
printf("\n\ni now is: %d\n",i);
return 0;
}
कारण है कि मैं छवि स्मृति में इस तरह के कमी (Fiolet) का पालन करते हैं: कथा:
मैं इस सामान्य Win32 परियोजना बनाया है, सीएलआर नहीं मैंने कोड बदल दिया, इसलिए मैं देखता हूं कि int अंततः नकारात्मक हो गया है। अब जबकि() है:
int i=0;
while(0<++i){
printf("i: %d",i++);
}
printf("\n\ni now is: %d\n",i);
यह अजीब बात है: कृपया 30000 पुनरावृत्तियों के बाद क्या खुशी है देखें। हम छवि स्मृति में इन उतार चढ़ाव क्यों देखते हैं? अब मैं देख सकता हूं कि शायद यह वीएमएपी के साथ ही जुड़ा हुआ है, क्योंकि ऐसा होता है जब मैं "लॉन्च & एक नई प्रक्रिया का पता लगाने" चुनता हूं, लेकिन जब "चल रही प्रक्रिया को देखें" और वीएस -2010 से निकाले गए एक्सई को इंगित करने के लिए इंगित करें। यहाँ इस प्रक्रिया के स्क्रीन "का शुभारंभ किया & पता लगाया" है:
मैं यह भी कहा स्मृति की भारी पेजिंग, जो छवि में इस गिरावट के (इस पेजिंग लगभग त्वरित और जल्दी से शुरू हो रहा रैम सीमा के साथ मोटे तौर पर शुरू किया था, कि मैं करने के लिए निर्धारित किया है 2GB):
तो शायद NET अनुप्रयोगों की स्मृति प्रबंधन के लिए कुछ मुद्दे विषय जगह यहाँ ले जाता है: और यहाँ एक चलने वाली प्रक्रिया केवल "देखी" (VS2010 से runned) क्या है? मैं अभी भी अपने पूरक के लिए दो पूरक की सीमा पार करने की प्रतीक्षा कर रहा हूं।
अच्छी तरह से ... मुझे फिर से संपादित करना होगा: यह पता चला है कि जैसा कि पहले सोचा था - घटती स्मृति छवि प्रभाव तब मौजूद है जब प्रक्रिया केवल देखी जाती है (लॉन्च नहीं)। नीचे एक ही प्रक्रिया की तस्वीर से जुड़ा हुआ है 10 मिनट बाद (अब भी नकारात्मक में पूर्णांक मोड़ के लिए इंतज़ार कर):
और यहाँ यह है: पर
तो सबसे बड़ा सकारात्मक 2-पूरक मेरी मशीन 2 147 483 647 है और सबसे छोटी नकारात्मक है -2 147 483 648, क्या इस तरह से सत्यापित करने के लिए आसान है:
#include <limits>
const int min_int = std::numeric_limits<int>::min();
const int max_int = std::numeric_limits<int>::max();
यह मुझे एक ही परिणाम दे दी है: -2 14 7 483 648 और 2 147 483 647
शुरुआत में जब मैं सबकुछ टिप्पणी करता हूं लेकिन थोड़ी देर() लूप - वही बात होती है: प्रक्रिया 10 मिनट तक चलने के बाद घटती जा रही है, इसलिए यह बेकार नहीं है कोड जो इसका कारण बनता है। पर क्या?
क्या आप बार-बार स्मृति खपत के इस पैटर्न को पुन: उत्पन्न कर सकते हैं? – dirkgently
शायद प्रिंटफ लॉगिंग कुछ ग्राफिक्स स्पेस ले रही है? –
यह कैसे संभव है कि छवि अवरुद्ध हो रही है? @dirkgently, अब तक यह अभी भी चल रहा है क्योंकि मैं देखना चाहता हूं कि आखिरकार अंत में क्या होगा – 4pie0