Hi,<div><br></div><div>As a matter of clarification the scheme I am proposing is to be able to specify the life time of an object after which it is deleted.</div><div><br></div><div>Let me know your interests. Further details are below.</div>
<div><br></div><div>Suminda<br clear="all"><div><div dir="ltr"><div><span style="font-family:&#39;arial narrow&#39;,sans-serif">--</span></div><span style="font-family:&#39;arial narrow&#39;,sans-serif">Suminda Sirinath Salpitikorala Dharmasena</span><span style="font-family:&#39;arial narrow&#39;,sans-serif">, B.Sc. Comp. &amp; I.S. (Hon.) Lond., P.G.Dip. Ind. Maths. J&#39;Pura, MIEEE, MACM</span><span style="font-family:&#39;arial narrow&#39;,sans-serif">, CEO </span><span style="font-family:&#39;comic sans ms&#39;,sans-serif">Sakrīō!</span><span style="font-family:&#39;arial narrow&#39;,sans-serif"> </span><span style="font-family:&#39;arial narrow&#39;,sans-serif">▣ </span><b style="font-family:&#39;arial narrow&#39;,sans-serif"><i>Address</i></b><span style="font-family:&#39;arial narrow&#39;,sans-serif">: 6G • 1st Lane • Pagoda Road • Nugegoda 10250 • Sri Lanka. </span><span style="font-family:&#39;arial narrow&#39;,sans-serif">▣ </span><b style="font-family:&#39;arial narrow&#39;,sans-serif"><i>Mobile</i></b><span style="font-family:&#39;arial narrow&#39;,sans-serif">: +94-(0)711007945 </span><span style="font-family:&#39;arial narrow&#39;,sans-serif">▣ </span><b style="font-family:&#39;arial narrow&#39;,sans-serif"><i>Tele</i></b><span style="font-family:&#39;arial narrow&#39;,sans-serif">: +94-(0)11-5 864614 / 5 875614 / 2 825908 ▣ <b><i>Web</i></b>: <a href="http://www.sakrio.com" target="_blank">http://www.sakrio.com</a> </span><span style="font-family:&#39;arial narrow&#39;,sans-serif">▣</span></div>
<div dir="ltr"><br><div><font face="arial narrow, sans-serif">This email is subjected to the email Terms of Use and Disclaimer: <a href="http://www.sakrio.com/email-legal" target="_blank">http://www.sakrio.com/email-legal</a>. Please read this first.</font></div>
<div><font face="arial narrow, sans-serif">--</font></div></div></div>
<br><br><div class="gmail_quote">On 19 May 2013 20:48, Suminda Dharmasena <span dir="ltr">&lt;<a href="mailto:sirinath@sakrio.com" target="_blank">sirinath@sakrio.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<div><br></div><div>I am looking to see if we can introduce user control for memory management and more finer resource management ability through annotations and API.</div><div><br></div><div>Part of the discussion on this is in the comment section of the following blog which I had with David Homes: <a href="https://blogs.oracle.com/dholmes/entry/minimize_garbage_generation" target="_blank">https://blogs.oracle.com/dholmes/entry/minimize_garbage_generation</a></div>

<div><br></div><div>Many Java objects can either be allocated on the stack as well as deleted if allocated in the heap without it being passed for GC. Since stack allocation will only work for some objects and will break the current memory model an annotation can be introduced to mark stack allocation. Any contained objects cannot outlive the containing object in this case unless they are annotated to escape. Escaping objects can be heap allocated and collected through the normal GC process.</div>

<div><br></div><div>If an object is heap allocated it can be deleted at define points like block exit, return or end of iteration (in loops) etc. Appropriate annotation can be introduced to mark the deletion. In this case contained objects can out live the containing object. The objects that cannot be deleted will be marked for GC during the normal GC cycle. Also an annotation can be introduced to help mark fields and methods which might escape and which does not statically. For methods all parameters, local variables and returned objects will not escape thus can be deleted after method returns. For methods parameters, any objects passed will not escape and can be safely deleted after method returns. Not all parameters may be marked. For fields, the objects can be deleted when the containing object is deleted. These objects if returned from a method will be clones and any pass to methods which are not marked for non escape would be clones else the compiler should complain. For local variables, they can be deleted when method returns or go out of scope. Also for return values an annotation to mark the return value safe to delete after returning.</div>

<div><br></div><div>More fine grain resource management can be done through annotation like calling close() before trying to GC with appropriate annotations.</div><div><br></div><div>Also appropriate API can be defined also to perform some of the memory management operations.</div>

<div><br></div><div>For further examples of possible annotations see the discussion on: <a href="https://blogs.oracle.com/dholmes/entry/minimize_garbage_generation" target="_blank">https://blogs.oracle.com/dholmes/entry/minimize_garbage_generation</a></div>

<div><br></div><div>Also ability to turn off GC within a code block or function unless an outofmemory error happens.</div><div><br></div><div>This would leave lesser workload for the GC system. Large part of memory management workload will be at know at appropriate point in code (if the programmer is disciplined). In GCing we do not know where the execution is when GC happens. If this is in latency sensitive code block you are in trouble. This way the developer is in true partnership with the GC and memory management system.</div>

<div><br></div><div>Suminda<br clear="all"><div><div dir="ltr"><div><span style="font-family:&#39;arial narrow&#39;,sans-serif">--</span></div><span style="font-family:&#39;arial narrow&#39;,sans-serif">Suminda Sirinath Salpitikorala Dharmasena</span><span style="font-family:&#39;arial narrow&#39;,sans-serif">, B.Sc. Comp. &amp; I.S. (Hon.) Lond., P.G.Dip. Ind. Maths. J&#39;Pura, MIEEE, MACM</span><span style="font-family:&#39;arial narrow&#39;,sans-serif">, CEO </span><span style="font-family:&#39;comic sans ms&#39;,sans-serif">Sakrīō!</span><span style="font-family:&#39;arial narrow&#39;,sans-serif"> </span><span style="font-family:&#39;arial narrow&#39;,sans-serif">▣ </span><b style="font-family:&#39;arial narrow&#39;,sans-serif"><i>Address</i></b><span style="font-family:&#39;arial narrow&#39;,sans-serif">: 6G • 1st Lane • Pagoda Road • Nugegoda 10250 • Sri Lanka. </span><span style="font-family:&#39;arial narrow&#39;,sans-serif">▣ </span><b style="font-family:&#39;arial narrow&#39;,sans-serif"><i>Mobile</i></b><span style="font-family:&#39;arial narrow&#39;,sans-serif">: <a href="tel:%2B94-%280%29711007945" value="+94711007945" target="_blank">+94-(0)711007945</a> </span><span style="font-family:&#39;arial narrow&#39;,sans-serif">▣ </span><b style="font-family:&#39;arial narrow&#39;,sans-serif"><i>Tele</i></b><span style="font-family:&#39;arial narrow&#39;,sans-serif">: +94-(0)11-5 864614 / 5 875614 / 2 825908 ▣ <b><i>Web</i></b>: <a href="http://www.sakrio.com" target="_blank">http://www.sakrio.com</a> </span><span style="font-family:&#39;arial narrow&#39;,sans-serif">▣</span></div>

<div dir="ltr"><br><div><font face="arial narrow, sans-serif">This email is subjected to the email Terms of Use and Disclaimer: <a href="http://www.sakrio.com/email-legal" target="_blank">http://www.sakrio.com/email-legal</a>. Please read this first.</font></div>

<div><font face="arial narrow, sans-serif">--</font></div></div></div>
</div>
</blockquote></div><br></div>