One thing to check is the size of the resulting bytecode file. When I compiled it, I got a 911 KB .zo file. So the most likely reason is that your macros are just producing a lot of code.
You can run the macro profiler (eg, `raco macro-profiler aw-schema.rkt`) to get a summary of what macros contribute most to the compiled code size. See https://docs.racket-lang.org/macro-debugger/index.html#(part._.Macro_.Profiler) for more details. I also gave a talk about the macro profiler called "The Cost of Sugar" a few years ago at RacketCon. The slides are at http://www.ccs.neu.edu/home/ryanc/talks/racket18-sugar.pdf, and there should be a recording online somewhere. The usual fix is to use helper functions. There are some examples in the slides. Ryan On Mon, Jul 20, 2020 at 2:08 AM Ryan Kramer <default.kra...@gmail.com> wrote: > Using DrRacket, the following file takes 18 seconds to compile without > debugging, or about 40 seconds to compile with debugging: > https://raw.githubusercontent.com/default-kramer/plisqin-tutorials/e844825b48137553246c64e73516d880b9068825/define-schema-answer-key/aw-schema.rkt > > When I say "compile", I mean that I click "Run" in DrRacket and wait for > it to give me REPL access. But that file just defines and provides a slew > of functions, it doesn't really do anything at runtime. > > (Using the command-line `racket that-file.rkt` takes only 7 seconds, which > is OK. But many people, myself included, primarily use DrRacket.) > > Admittedly, this is 612 dense lines of code. So it might just be a case of > "yeah, that's about how long it takes." But it's also possible (or > probable?) that I have some inefficient macros somewhere. Are there any > tools/techniques I can use to help me reduce the compilation time? > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/40e40eff-a0be-4850-9360-c9648cb5b8d9o%40googlegroups.com > <https://groups.google.com/d/msgid/racket-users/40e40eff-a0be-4850-9360-c9648cb5b8d9o%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/CANy33q%3D1d1ojXVrcsM1mYCa2%2BcLkN2-x7x0WM197BukAA%3DRuzA%40mail.gmail.com.