<div dir="ltr">Good feature.<br><br>Currently I'm trying to build a trace visualization tool, and such information would be quite useful.<br>It would allow to explore in what order different parts of the system were started.<br><br>Also +1 for monotonic timestamp, that would allow to consistently put it along other trace timestamps.<div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 9, 2017 at 5:20 PM, Danil Zagoskin <span dir="ltr"><<a href="mailto:z@gosk.in" target="_blank">z@gosk.in</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi!<div><br></div><div>TL;DR: Would you like to know when any process was started in little cost of memory usage on 32-bit systems and crashdump generation speed?<br><br>Sometimes we have to inspect long-running systems.</div><div>And if a complex enough system runs for a month, it's hard to answer these questions:</div><div> - Process A should run at most 1 hour. Did it stall a week ago?</div><div> - Process B is supervised and it's not good when it restarts. Did it restart last night?</div><div> - Did process C exist when process D was started?</div><div> - Was pid E reused by a new process since it was stored in ETS?</div><div><br></div><div>To answer that questions we need a process start time to be stored somewhere.</div><div>Given that almost every project uses third-party libraries with their own processes, the universal solution could be having process start time available in process_info.</div><div><br></div><div>It turned out that ERTS already have a process start time, used by a crashdump writer.</div><div><br></div><div>I proposed a PR exposing that value in process_info: <a href="https://github.com/erlang/otp/pull/1597" target="_blank">https://github.<wbr>com/erlang/otp/pull/1597</a></div><div>It's very simple — just return a value we already have.</div><div><br></div><div>But as Rickard Green noticed, it's better to have this time as Erlang monotonic time instead of system seconds in current implementation.</div><div>This will slightly increase memory consumption on 32-bit systems and slightly slow down crashdump generation.</div><div><br></div><div>The other option Rickard proposed is to remove that timestamp completely and save some memory.</div><div><br></div><div><br></div><div>So, the questions are:</div><div><br></div><div> - Do you find process_info(Pid, start_time) useful and worth 4 bytes/process on 32 bit systems?<br> - Do you find process start time in a crashdump useful?</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>-- <br><div class="m_1372883445183044465gmail_signature"><div dir="ltr"><div><font face="'courier new', monospace">Danil Zagoskin | <a href="mailto:z@gosk.in" target="_blank">z@gosk.in</a></font></div></div></div></div></font></span></div>
<br>______________________________<wbr>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/<wbr>listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>