I'm writing a program called moarperf, which is a local web app written in Cro that doesn't touch the network outside of loopback. It just has to build its JavaScript blobs once by downloading like a brazillion libraries from npm.
Also, comma complete comes with support for profiling, which also doesn't need a live net connection. Finally, I think at least Debian patches the profiler html app to point at an angularjs downloaded from Debian repositories. It's quite feasible to have an env var for nqp/rakudo that changes the path to the js libraries to something local. On 28 April 2019 09:01:28 CEST, David Christensen <dpchr...@holgerdanske.com> wrote: >> On 21/04/2019 05:58, ToddAndMargo via perl6-users wrote: >>> Hi All, >>> >>> One liners are fast, but my own programs are very slow to start. >>> >>> I download >>> >>> https://github.com/perl6/gtk-simple/blob/master/examples/05-bars.pl6 >>> >>> >>> To check it out and it also takes ten second to start. >> >>> What gives? >>> >>> Many thanks, -T > > >On 4/27/19 11:14 PM, Timo Paulssen wrote: >> You don't happen to have a PERL6LIB or -I pointed at a folder with >> loads of stuff in it? If that is the case, having a single "use" >> statement will cause rakudo to iterate through all files and >> subfolders, which can take a long time if you've got, for example, >> your home directory in that list (be it via -I. or PERL6LIB=. or >> explicitly mentioning the big folder) >> >> There's many different tools to find out what's going on. For the >> "too big perl6lib folder" problem, "strace" will give you a good hint >> by giving one "stat" command for every file under your home >> directory. >> >> Other than that, check "perl6 --stagestats -e 'blah'" or "perl6 >> --stagestats FooBar.p6", which will give timings for the different >> phases, most notably "parse", "optimize", and "mbc". loading modules >> and precompiling are part of the parse stage. >> >> the "time" command will split your run time between "system" and >> "user" time (as well as wallclock time). if "system" is particularly >> high, then the program spends a lot of time asking the kernel to do >> stuff (such as iterating files on the filesystem for the PERL6LIB >> case i've menitoned above). >> >> If none of that helps, startup can be profiled with "perl6 >> --profile-compile blah" and run time can be profiled with "perl6 >> --profile blah". The default output will be a html file that you can >> just open in your browser to get an interactive performance >> inspection tool thingie. Be aware, though, that it can become very >> big in the case of --profile-compile, depending on the structure of >> the program being compiled. >> >> Hope any of that helps - Timo > > >Yes, very useful -- thank you. :-) > > >(I do not seem to have a man page for Perl 6, but 'perl6 --help' gives >a >brief overview of those options.) > > >The only drawback is that the HTML profile reports require JavaScript >and a live Internet connection to function. > > >David -- Sent from my Android device with K-9 Mail. Please excuse my brevity.