[Agda-dev] One more point for my false-golfing score

Nils Anders Danielsson nad at cse.gu.se
Tue Aug 18 16:36:05 CEST 2015


On 2015-07-01 21:29, Wolfram Kahl wrote:
> I think the question is: Can we remove ``abstract''?
>
> Are there any use cases where it actually still makes a significant difference?
>
> WHen I abandoned ``abstract'', it just gave me gains in type-checking time
> in the order of 1% to 2% on my RATH-Agda code base of the time,
> and I started needing some of the proofs anyways.
> For one to two percent typechecking time, I think it is not worth the extra complexity.

I tried removing abstract from the following development:

   http://www.cse.chalmers.se/~nad/repos/equality/

With abstract in place:

$ time agda -v0 --ignore-interfaces Equivalence.agda +RTS -s
    8,635,704,032 bytes allocated in the heap
    9,337,200,064 bytes copied during GC
      190,867,416 bytes maximum residency (56 sample(s))
        1,626,636 bytes maximum slop
              473 MB total memory in use (0 MB lost due to fragmentation)

                                      Tot time (elapsed)  Avg pause  Max pause
   Gen  0     49379 colls,     0 par   16.276s  16.102s     0.0003s    0.0028s
   Gen  1        56 colls,     0 par   11.340s  11.555s     0.2063s    0.5579s

   INIT    time    0.000s  (  0.000s elapsed)
   MUT     time   25.836s  ( 26.136s elapsed)
   GC      time   27.616s  ( 27.657s elapsed)
   EXIT    time    0.000s  (  0.026s elapsed)
   Total   time   53.456s  ( 53.819s elapsed)

   %GC     time      51.7%  (51.4% elapsed)

   Alloc rate    334,250,814 bytes per MUT second

   Productivity  48.3% of total user, 48.0% of total elapsed


real    0m53.828s
user    0m53.456s
sys     0m0.436s

Without abstract:

$ time agda -v0 --ignore-interfaces Equivalence.agda +RTS -s
agda: out of memory (requested 2097152 bytes)

real    3m51.112s
user    3m49.504s
sys     0m1.876s

-- 
/NAD


More information about the Agda-dev mailing list