From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!gandalf.srv.welterde.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED.rrsoftware.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: How to get Ada to ?cross the chasm?? Date: Thu, 10 May 2018 17:27:34 -0500 Organization: JSA Research & Innovation Message-ID: References: <1c73f159-eae4-4ae7-a348-03964b007197@googlegroups.com> <87lgd1heva.fsf@nightsong.com> <87zi1gz3kl.fsf@nightsong.com> <878t8x7k1j.fsf@nightsong.com> <87k1sg2qux.fsf@nightsong.com> <87h8njmk4r.fsf@nightsong.com> <87po27fbv9.fsf@nightsong.com> <87h8nhwhef.fsf@nightsong.com> <87d0y4zf7d.fsf@nightsong.com> Injection-Date: Thu, 10 May 2018 22:27:37 -0000 (UTC) Injection-Info: franka.jacob-sparre.dk; posting-host="rrsoftware.com:24.196.82.226"; logging-data="30045"; mail-complaints-to="news@jacob-sparre.dk" X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Response X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 Xref: reader02.eternal-september.org comp.lang.ada:52221 Date: 2018-05-10T17:27:34-05:00 List-Id: "Dmitry A. Kazakov" wrote in message news:pd0ukp$7mu$1@gioia.aioe.org... > On 2018-05-09 23:33, Paul Rubin wrote: >> "Dmitry A. Kazakov" writes: ... >>> It is incredibly difficult to estimate the time spent by the clients >>> of GC. What is measured is probably the GC task with all distributed >>> overhead in the clients and the overhead of the overall design >>> uncounted. >> >> Hmm, this is an interesting claim that I won't say is wrong, but I >> haven't heard it before and am surprised by it and am skeptical. At least in a language like Ada, reachability tracking is itself a complicated problem. One needs some sort of code thunk or data structure to be able to find all of the stand-alone access objects/parameters (these are the ones that root data structures), including the ones buried in private types. The overhead of such a structure/code is clearly outside of the GC modules themselves (it has to belong to the compiled user code, so it doesn't get picked up by standard profiling). Whether that overhead is mainly in time or mainly in spaace can be traded off, but that won't change for a particular implementation (implementing that once surely is enough). Comparing that to an environment that doesn't use GC is always going to be difficult. On top of which, one really ought to include any extra overhead incurred in explicit storage management (finalization, for instance) if one was going to get a really fair answer. This is a tough problem, any real answer would only be valid for a particular pair of programs. I personally prefer to have my complications explicit, so I can attack them if performance improvement is needed. YMMV. Randy.