<HTML><BODY><div><div>Hi, Sebastian ! Thank you for reply!</div><div> </div><div>There is really smth strange happens here — if I use Large Object Heap to store my frames from rtsp (put it simply, </div><div>I back each video file in memory frame by frame, each frame is byte[200k] which is stored in LOH) then  gst allocates lots of memory (Gst.Memory). It reserves alot from virtual memory. There is no magic in my code, just get byte[] from gst.buffer, and store it in list of frames(list of bytes, basically). If I don’t store byte[] in list, then everything seems to be ok, no huge memory consumption, GC works regulary and memory consumption is no greater then 450Mb (which is ok for now). I mean I get</div><div>byte[] from buffer and do nothing with that, don’t store in list. If I storem then gst going crazy for some reason.</div><div> </div><div>Also, I’ve notice that Gst.Memory objects resides in gen1  only. For some reason they stay longer than should.</div><div> </div><div>So, it seems that there is very strange interference or interaction between gst (appsink ?) and my attempt to store byte arrays in memory. From some moment in time, gst seems to trying to reserve as much as possible memory.</div><div> </div><div>Also my settigns like Drop=true, max_buffers =100 seems to have no effect.<br> </div><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">Пятница, 15 сентября 2023, 17:30 +03:00 от Sebastian Dröge <sebastian@centricular.com>:<br> <div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_16947882061774854490_BODY"><div class="cl_059540"><div class="mail-quote-collapse"><div><span data-type="sender">On Fri, 2023-09-15 at 10:23 -0400, Nicolas Dufresne via gstreamer-devel wrote:</span></div><div data-type="body"><blockquote type="cite" style="margin:0 0 0 .8ex;border-left:2px #729fcf solid;padding-left:1ex"><blockquote type="cite" style="margin:0 0 0 .8ex;border-left:2px #729fcf solid;padding-left:1ex"><blockquote type="cite" style="margin:0 0 0 .8ex;border-left:2px #729fcf solid;padding-left:1ex"><div id=""><div class="js-helper_mr_css_attr js-readmsg-msg_mr_css_attr"><div><div id="style_16947347981376795412_BODY_mr_css_attr"><div class="mail-quote-collapse"><br>> Appsink config and NewSample handler is below. My problem is that it consumes lot’s of (unmanaged) memory.<br>> There is no leak, it works ok, after .net GC run memory lower to normal values and then grows again. It looks like<br>> saw-tooth. I’ve tried to limit max-buffers (set it to 100 or 1), drop = true but it seems that nothing works. Memory profiler shows smth like 30K instances of Gst.Memory holds 1.5Gb of unmanaged (in terms of .net) memory. Aftre GC collect, it seems to collect some of these instances and release some unmanaged memory (say it lowers 10 times). Again, there is no leeks, I just want to lower memory consumption of appsink element.</div></div></div></div></div></blockquote></blockquote><div> </div><div>I believe recent C# GC allow you to do explicit unref (nullifying the object) to workaround the issue. The GC have no idea about the size of the object/buffer, so it does not prioritize it.</div></blockquote></div></div><div> </div><div>Also the bindings allow you to call dispose() on the object to "invalidate" it (any further calls on it will cause an exception then). That also unrefs the native object immediately.</div><div> </div><div>The problem you're running into here is the main problem with any bindings for a language with a tracing GC, unfortunately. Or at least the cases where you can't provide more information (and object traversal information) to the GC.</div><div> </div><div><pre><span>-- 
</span></pre><div><div><span><span style="font-family: Calibri, sans-serif;font-size: 14.666667px;">Sebastian Dröge, Centricular Ltd · </span><a title="Click to open https://www.centricular.com/" style="color: rgb(0, 0, 238);font-family: Calibri, sans-serif;font-size: 14.666667px;" href="https://www.centricular.com/" target="_blank">https://www.centricular.com</a></span></div></div></div></div></div></div></div></div></blockquote> <div> </div><div data-signature-widget="container"><div data-signature-widget="content"><div>--<br>С Уважением,<br>Шаров Антон</div></div></div><div> </div></div></BODY></HTML>