2009-09-22 18 views
5

मुझे यकीन नहीं है कि निम्नलिखित प्रश्न मान्य हैं या नहीं। खुद को शिक्षित करने के लिए मैं बस पूछ रहा हूं।सी # - क्या जीसी हीप को बदलना संभव है?

(1) क्या मैं सभी पीढ़ियों के जीसी ढेर को प्रोग्रामेटिक रूप से पुन: सक्रिय कर सकता हूं?

(2) क्या यह देखना संभव है कि जीसी एक थ्रेड लॉन्च करके मेरी असेंबली पर कैसे काम करता है?

+1

मेमोरी प्रोफाइलर स्मृति में कौन सी वस्तुएं समझने के लिए एक बहुत ही आसान टूल है। –

+0

मुझे मेमोरी प्रोफाइलर कहां मिल सकता है? – user160677

+0

http://msdn.microsoft.com/en-us/library/ms979205.aspx –

उत्तर

7

आप प्रश्नों के उत्तर दिए गए हैं:

  1. दुर्भाग्य से नहीं, तुम नहीं कर सकते हैं। सीएलआर का कचरा कलेक्टर एक निशान, स्वीप, कॉम्पैक्ट पैटर्न में काम करता है, इसलिए रनों के बीच में ढेर के बारे में कोई जानकारी नहीं है (ढेर के आकार के अलावा या किसी विशिष्ट प्रकार की वर्तमान पीढ़ी की वर्तमान पीढ़ी) जो आपको सभी वस्तुओं को फिर से चालू करने की अनुमति देगी यह।

  2. जीसी की निगरानी करने का सबसे अच्छा तरीका perfmon का उपयोग करना है और CLR memory counters देखें (या लॉग) करना है।

+0

+1। – RichardOD

+0

जानकारी के लिए धन्यवाद। – user160677

+0

असल में आप कर सकते हैं)) https://github.com/mumusan/dotnetex/ – Alexus

2

मैं एक ही प्रश्न के उत्तर के लिए कुछ समय पहले इंटरनेट खोज रहा था लेकिन मुझे प्रोग्रामिंग के जीसी ढेर को फिर से शुरू करने का कोई तरीका नहीं मिला।

यदि आपको डिबगिंग उद्देश्यों के लिए यह जानकारी देखने की आवश्यकता है तो आप WinDbg लॉन्च कर सकते हैं और एसओएस एक्सटेंशन लोड कर सकते हैं। जीसी ढेर पर वास्तव में कौन सी वस्तुएं हैं, यह देखने के लिए आप डंपेप एक्सटेंशन कमांड का उपयोग कर सकते हैं। यदि आपके पास है तो आप dotTrace की मेमोरी प्रोफाइलिंग मोड का भी उपयोग कर सकते हैं।

+0

धन्यवाद धन्यवाद :) बहुत बहुत धन्यवाद – user160677

संबंधित मुद्दे