<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Oct 15, 2015 at 6:57 PM, Jean Menezes da Rocha <span dir="ltr"><<a href="mailto:jean@menezesdarocha.info" target="_blank">jean@menezesdarocha.info</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div>I am writing a program that stores a large number of objects in the memory (thousands of), and then calls a "play" method from each one. As it goes playing, RAM usage increases drastically and a weird lag/clicking happens. Is there a possible method to clear memory (perhaps by discarding objects already played) while the script is in execution? Is there any alternative when calling a large number of functions over short periods of time?</div><div><br></div><div>For the sake of example, take this lame pseudocode:</div><div><br></div><div>class Foo {</div><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px">int fooX;<br></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px">float fooY;<br></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px">int fooZ;<br><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"></blockquote>string fooBla;<br>string fooBlu;</blockquote><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><div>fun void set(int x, float y, int z, string bla, string blu) {<br></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><div><div>x => fooX;</div></div></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><div><div>y => fooY;</div></div></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><div><div>z => fooZ;</div></div></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><div><div>bla => fooBla;</div></div></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px">blu => fooBlu;<br></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"></blockquote></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px">}<br></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><br></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px">fun void play() {<br></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"></blockquote>SinOsc s => Gain g => dac;<br><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"></blockquote>if ( x > 2 ) { fooY * x => s.freq; }<br><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"></blockquote>else { if ( z < 4 ) { fooY * z => s.freq; } else { fooY => s.freq; } }<br><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"></blockquote>0.5 => g.gain;<br><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"></blockquote>if ( bla == "fast" ) { 10::ms => now; }<br>else { if ( bla == "slow" ) { 500::ms => now; } else { 200::ms => now; }<br></blockquote></blockquote></div></blockquote><div><br></div><div>You may want to try unchucking from the dac here<br><br></div><div>s =< g;<br></div><div>g =< dac;<br></div><div><br>See<br><br><a href="http://chuck.cs.princeton.edu/doc/language/ugen.html#connect" target="_blank">http://chuck.cs.princeton.edu/doc/language/ugen.html#connect</a><br><br></div><div>I haven't seen memory usage slow ChucK down, but connecting too many things to dac sometimes does.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"></blockquote></blockquote><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px">}<br></blockquote>}<div><br></div><div>(now imagine a function that sets thousands of Foo objects, stores them into an array and afterwards iterate through said array, calling .play() function for each item. at this point things become <i>very</i> slow because of too many objects filling up the memory).</div><div><br></div><div>Even using --silent, the script is eventually sluggish because memory still is filled up.</div><div><br></div><div>I hope you can point me to the right direction!<span><font color="#888888"><br><div>-- <br><div><div dir="ltr"><span style="color:rgb(136,136,136)">Jean Menezes da Rocha</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Compositor</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Professor -- Faculdades Est</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Mestre e Doutorando em Composição pela Universidade Federal da Bahia</span><br></div></div>
</div></font></span></div></div><br></blockquote></div><br></div><div class="gmail_extra">Hope this helps!<br></div><div class="gmail_extra"><br></div><div class="gmail_extra"> michael<br></div></div>