<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET Framework</title><link>https://www.dotnetzone.gr:443/cs/forums/14/ShowForum.aspx</link><description>Θέματα για threading, remoting, reflection, exception handling, security, regex κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: "Memory Leak"! Τι να κοιτάξω ώστε να βρώ τι φταίει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35721.aspx</link><pubDate>Tue, 02 Oct 2007 12:43:32 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35721</guid><dc:creator>New Yorker</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35721.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=35721</wfw:commentRss><description>&lt;P&gt;Δοκίμασες myobject.Dispose?&lt;BR&gt;&lt;BR&gt;New Yorker&lt;/P&gt;</description></item><item><title>Απ: "Memory Leak"! Τι να κοιτάξω ώστε να βρώ τι φταίει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35655.aspx</link><pubDate>Sun, 30 Sep 2007 21:18:06 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35655</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35655.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=35655</wfw:commentRss><description>&lt;P&gt;Και βέβαια κάνει. Ο Ant profiler όμως μπορεί να κρατήσεις snapshots "πριν" και "μετά" και να σου δείξει τις διαφορές. Μπορείς να κάνει το ίδιο και με τον CLR Profiler αλλά με πιο χειροκίνητο τρόπο. Αξίζει να τους δει κανείς και τους δύο, αν και νομίζω ότι με τον ANTS θα βρει τα πιθανά προβλήματα γρηγορότερα. Από εκεί και πέρα, αν μπορείς να πείσεις το αφεντικό να αγοράσει τον ANTS τέλεια. Αλλιώς, και ο CLR Profiler κάνει την δουλειά.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: "Memory Leak"! Τι να κοιτάξω ώστε να βρώ τι φταίει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35632.aspx</link><pubDate>Sun, 30 Sep 2007 05:50:52 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35632</guid><dc:creator>Δημήτρης Γκανάτσιος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35632.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=35632</wfw:commentRss><description>Να υποθέσω ότι θα κάνει και &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyID=A362781C-3870-43BE-8926-862B40AA0CD0&amp;amp;displaylang=en"&gt;αυτός&lt;/A&gt;, ο οποίος είναι και free.</description></item><item><title>Απ: "Memory Leak"! Τι να κοιτάξω ώστε να βρώ τι φταίει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35631.aspx</link><pubDate>Sun, 30 Sep 2007 02:41:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35631</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35631.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=35631</wfw:commentRss><description>&lt;P&gt;Μπορείς να κατεβάσεις trial από κάποιον profiler (πχ Ant Profiler) και να δεις τι έχει να σου πει... Ίσως σε γλυτώσει από τον πονοκέφαλο.&lt;/P&gt;</description></item><item><title>Απ: "Memory Leak"! Τι να κοιτάξω ώστε να βρώ τι φταίει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35621.aspx</link><pubDate>Sat, 29 Sep 2007 17:53:43 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35621</guid><dc:creator>pontifikas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35621.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=35621</wfw:commentRss><description>Δεν μπορώ να το βρώ.&lt;br&gt;Βασικά η εφαρμογή μου χρησιμοποιεί 3D γραφικά με Managed DirectX . Εκεί βρήκα 2 "τρύπες" αλλά εξακολουθεί να αυξάνει το μέγεθος σχεδόν με τον ίδιο &lt;br&gt;ρυθμό(Λίγο μικρότερο). &lt;br&gt;Ευχαριστω πάντως για την απάντηση.&lt;br&gt;</description></item><item><title>Απ: "Memory Leak"! Τι να κοιτάξω ώστε να βρώ τι φταίει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35359.aspx</link><pubDate>Tue, 25 Sep 2007 06:35:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35359</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35359.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=35359</wfw:commentRss><description>&lt;P&gt;Αν κάνει dump τότε κάπου κρατάς references χωρίς να το ξέρεις. Το Clear δεν κάνει Dispose, απλά ελευθερώνει τα references που κρατάει η λίστα. Αν δεν υπάρχει άλλο reference στα αντικείμενα, η μνήμη των αντικειμένων θα ελευθερωθεί στο επόμενο garbage collection. Η μνήμη όμως δεν θα επιστραφεί αμέσως στο λειτουργικό, αλλά θα παραμείνει διαθέσιμη στην εφαρμογή για τη δημιουργία νέων αντικειμένων. Ένας άλλος λόγος που μπορεί να αυξάνεται η μνήμη είναι ότι ελευθερώνοντας πολλά αντικείμενα δημιουργείται fragmentation στη μνήμη. Ο garbage collector κάνει και defragmentation της μνήμης, αν κάποια όρια έχουν ξεπεραστεί.&lt;/P&gt;
&lt;P&gt;Δοκίμασε κάτι πιο&amp;nbsp;απλό. Μία σκέτη φόρμα με τρία κουμπιά και ένα List&amp;lt;Point&amp;gt;. Το ένα κουμπί θα προσθέτει 50.000 points κάθε φορά, το άλλο θα καλεί απλά την Clear και το τρίτο την GC.Collect(). Τα 50.000 points πιάνουν μερικά MB τη φορά, οπότε όταν πατάς τo κουμπί Clear και μετά το Collect η μνήμη που ελευθερώνεται είναι μεγαλύτερη από οποιοδήποτε όριο και επιστρέφεται αμέσως στο λειτουργικό.&lt;/P&gt;</description></item><item><title>Απ: "Memory Leak"! Τι να κοιτάξω ώστε να βρώ τι φταίει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35356.aspx</link><pubDate>Tue, 25 Sep 2007 06:05:26 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35356</guid><dc:creator>pontifikas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35356.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=35356</wfw:commentRss><description>Παναγιώτη δοκίμασα και εγώ ένα loop με 1000 και δεν τις απελευθέρωσε. Μάλιστα μετά από μερικές επαναλήψεις άρχισε να κάνει dump στον σκληρό καθώς έφαγε όλη την μνήμη.&lt;br&gt;Δεν μπορώ ρε γαμώτο να βρώ που το χάνω. &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-6.gif" alt="Sad" /&gt;&lt;br&gt;&lt;br&gt;Σίγουρα όταν κάνω Clear ένα Collection γίνονται Dispose τα αντικείμενα που αυτό περιείχε?&lt;br&gt;</description></item><item><title>Απ: "Memory Leak"! Τι να κοιτάξω ώστε να βρώ τι φταίει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35297.aspx</link><pubDate>Mon, 24 Sep 2007 06:51:15 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35297</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35297.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=35297</wfw:commentRss><description>&lt;P&gt;Τη συμπεριφορά αυτή μπορείς να τη συναντήσεις ακόμα και αν δεν υπάρχει memory leak. Η μνήμη καθαρίζει μόνο όταν εκτελείται ο garbage collector, ο οποίος δεν εκτελείται αν δεν υπάρχει ανάγκη. Η διαγραφή των αντικειμένων κοστίζει σε CPU γι αυτό ο garbage collector εκτελείται όταν υπάρχει ανάγκη. Ίσα-ίσα, η κλήση του GC.Collect χωρίς να υπάρχει ανάγκη για μνήμη, θα καθυστερήσει την εφαρμογή σου. &lt;/P&gt;
&lt;P&gt;Δοκίμασα μία παραλλαγή του κώδικα σου και διαπίστωσα και εγώ ότι η μνήμη φαίνεται να αυξάνεται αργά όταν προσθέτω ένα-ένα τα σημεία. Όταν όμως άρχισα να τα προσθέτω κατά 50.000 τη φορά διαπίστωσα ότι μετά από κάθε Clear η μνήμη επανερχόταν στην αρχική κατάσταση. Προφανώς, η μνήμη επιστρέφεται στο λειτουργικό μόνο όταν ξεπεραστεί ένα αρκετά μεγάλο όριο.&lt;/P&gt;</description></item><item><title>"Memory Leak"! Τι να κοιτάξω ώστε να βρώ τι φταίει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/35292.aspx</link><pubDate>Mon, 24 Sep 2007 03:21:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:35292</guid><dc:creator>pontifikas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/35292.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=35292</wfw:commentRss><description>Αντιμετωπίζω πρόβλημα με μνημη που αυξάνει συνεχώς.&lt;br&gt;Πώς το εννοώ:&lt;br&gt;Έχω μια κλάση("Selected3DPointsCollections") που περιέχει 3 Collections. &lt;br&gt;&lt;br&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;List&amp;lt;Selected3DPoints&amp;gt; Selected3DPointsList &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; List&amp;lt;Selected3DPoints&amp;gt;();&lt;br&gt;SortedDictionary&amp;lt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;, &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;&amp;gt; PointSpheresCollection &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; SortedDictionary&amp;lt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;, &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt;&amp;gt;(&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; IRBrain.IntegerKeyComparer());&lt;br&gt;SortedList&amp;lt;Point, ArrayList&amp;gt; PointToSeedRelations &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; SortedList&amp;lt;Point, ArrayList&amp;gt;(&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;new&lt;/span&gt; IRBrain.PointComparer());&lt;/span&gt;&lt;br&gt;&lt;br&gt;Έχω ένα pubic static instance της κλάσης αυτής.&lt;br&gt;Η "Selected3DPoints" είναι μια άλλη κλάση.&lt;br&gt;Η PointToSeedRelations στο ArrayList αποθηκεύει Point.&lt;br&gt;&lt;br&gt;Για να βοηθήσω την διαίσθησή σας, έχω μια εικόνα(φωτογραφία). &lt;br&gt;Όταν κάνω κλικ επάνω της, αποθηκεύω στην κλάση αυτή το pixel όπου έκανα click καθώς και τα γειτονικά του.&lt;br&gt;Ένα αντικείμενο τύπου "Selected3DPoints" για κάθε pixel, μια 2άδα στην PointSpheresCollection και μια 2άδα στην PointToSeedRelations με το ArrayList να περιέχει&lt;br&gt;τα γειτονικά points του pixel.&lt;br&gt;Αν κάνω κλικ πατώντας Ctrl προθέτω το νέο Pixel στα Collections,αλλιώς καθαρίζω τα Collections της κλάσης και προσθέτω το νέο Pixel.(Με Ctrl δηλαδή φτοιάχων ομάδες από pixels)&lt;br&gt;&lt;br&gt;Όπως είπα, αν δεν πατώ Ctrl καθαρίζω τα Collections και αυτό το κάνω έτσι:&lt;br&gt;&lt;br&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;                &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;for&lt;/span&gt; (&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;int&lt;/span&gt; i &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; 0; i &amp;lt; Selected3DPointsList.Count; ++i)&lt;br&gt;                {&lt;br&gt;                    Selected3DPointsList[ i ].Dispose();&lt;br&gt;                    Selected3DPointsList[ i ] &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;null&lt;/span&gt;;&lt;br&gt;                }&lt;br&gt;                &lt;br&gt;                Selected3DPointsList.Clear();&lt;br&gt;&lt;br&gt;                PointSpheresCollection.Clear();&lt;br&gt;&lt;br&gt;                &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;foreach&lt;/span&gt; (KeyValuePair&amp;lt;Point, ArrayList&amp;gt; pair &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;in&lt;/span&gt; PointToSeedRelations)&lt;br&gt;                {&lt;br&gt;                    pair.Value.Clear();&lt;br&gt;                }&lt;br&gt;                PointToSeedRelations.Clear();&lt;br&gt;                GC.Collect();&lt;br&gt;  &lt;/span&gt;&lt;br&gt;Παρόλα αυτά παρατηρώ ότι κάθε φορά που κάνω click στην εικόνα η μνημη μου συνεχώς αυξάνει(δεν πατάω Ctrl).&lt;br&gt;To πρόβλημα θα πρέπει να βρίσκεται στην κλάση που ανέφερα.&lt;br&gt;&lt;br&gt;Έχω δοκιμάσει ακόμα και να κάνω null το public static instance της και να την ξανάδημιουργήσω αλλά τίποτα.&lt;br&gt;&lt;br&gt;Τι μπορεί να φταίει?&lt;br&gt;Επειδή γενικά χρησιμοποιώ πολλά Collections(Κυρίως Generics) υπάρχει κάτι συγκεκριμένο που πρέπει να κάνω για να απελευθερώσω τα αντικείμενα που περιέχουν ή ένα απλό Clear αρκεί?&lt;br&gt;&lt;br&gt;Ευχαριστώ.&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item></channel></rss>