I am analyzing a .dmp file for "OutofMemory" exception. The objects are staying in the memory for very long time, so is there a command to check if the garbage collection was triggered by using SOS.dll or SOSEX?
Is there a way to check if garbage collection was triggered while analyzing dump file through SOS.dll
648 views Asked by m_d_p29 At
1
There are 1 answers
Related Questions in C#
- What is the code of the sorted function?
- I'm trying to make the "merge function" work by writing a Callback.
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Recursive function in PHP function : how to prevent return value?
- Javascript function onclick
- Borland c++: Error while assigning OnChange to another function?
- Control BX Slider from outside of function
- Jquery Resize: how to check if a screen has been resized at any point
- OrientDB - SQL command to pass array value as parameter in OrientDB function
- Check if a private function exists inside an object in JavaScript
Related Questions in DEBUGGING
- What is the code of the sorted function?
- I'm trying to make the "merge function" work by writing a Callback.
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Recursive function in PHP function : how to prevent return value?
- Javascript function onclick
- Borland c++: Error while assigning OnChange to another function?
- Control BX Slider from outside of function
- Jquery Resize: how to check if a screen has been resized at any point
- OrientDB - SQL command to pass array value as parameter in OrientDB function
- Check if a private function exists inside an object in JavaScript
Related Questions in GARBAGE-COLLECTION
- What is the code of the sorted function?
- I'm trying to make the "merge function" work by writing a Callback.
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Recursive function in PHP function : how to prevent return value?
- Javascript function onclick
- Borland c++: Error while assigning OnChange to another function?
- Control BX Slider from outside of function
- Jquery Resize: how to check if a screen has been resized at any point
- OrientDB - SQL command to pass array value as parameter in OrientDB function
- Check if a private function exists inside an object in JavaScript
Related Questions in SOS
- What is the code of the sorted function?
- I'm trying to make the "merge function" work by writing a Callback.
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Recursive function in PHP function : how to prevent return value?
- Javascript function onclick
- Borland c++: Error while assigning OnChange to another function?
- Control BX Slider from outside of function
- Jquery Resize: how to check if a screen has been resized at any point
- OrientDB - SQL command to pass array value as parameter in OrientDB function
- Check if a private function exists inside an object in JavaScript
Related Questions in SOSEX
- What is the code of the sorted function?
- I'm trying to make the "merge function" work by writing a Callback.
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Recursive function in PHP function : how to prevent return value?
- Javascript function onclick
- Borland c++: Error while assigning OnChange to another function?
- Control BX Slider from outside of function
- Jquery Resize: how to check if a screen has been resized at any point
- OrientDB - SQL command to pass array value as parameter in OrientDB function
- Check if a private function exists inside an object in JavaScript
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
In a comment you mention
If you have an object in Gen 2, then garbage collection ran at least 2 times, otherwise it would be in Gen 0.
Now that you know it, it's obvious that this information is not really helpful. You want to know why it remains in memory.
To find out which reference keeps the large object in memory, use the SOS command
!gcroot
. When you know that, review your code to find out where such a reference comes from or where it should be removed.If there is no reference any more, the object may be freed soon and it's just alive because no Gen 2 garbage collection has occurred since. See this great answer on IDisposable, which discusses the point of releasing a large object.
In your case, it might even be ok to call
GC.Collect()
after releasing the reference. Usually you should not tamper with garbage collection, but if you always have such a large object and you certainly know that this object is no longer needed andGC.Collect()
resolves the OOM exception, then it is the right thing to do.