So Perl6 is a lot like Python in that modules get compiled to byte code
making them a lot faster to parse the second time around.

If you're running a 6000 line script then a lot of time is going to be
spent parsing your script every time you run it. If you instead take all
your script code and pop it into a module and have a script along the lines
of :

use lib "./";
use System;

System::start();

(Where your module code is called System.pm6 and start is the entry point
subroutine).

I think you'd find this improves the speed of the script significantly.

On Mon, 6 Aug 2018 at 10:38 ToddAndMargo <toddandma...@zoho.com> wrote:

> On 08/06/2018 02:07 AM, ToddAndMargo wrote:
> > On 08/06/2018 01:02 AM, Simon Proctor wrote:
> >> Sorry I wrote my earlier email on my phone without a computer to hand.
> >> Here's a quick rundown on what I'm talking about.
> >>
> >> --stagestats gives you the breakdown on how much time is spent doing
> >> various steps (note that using time instead of date; date gives you a
> >> better timing of how long something took.
> >>
> >> time perl6 --stagestats -e ""
> >> Stage start      :   0.000
> >> Stage parse      :   0.089
> >> Stage syntaxcheck:   0.000
> >> Stage ast        :   0.000
> >> Stage optimize   :   0.001
> >> Stage mast       :   0.004
> >> Stage mbc        :   0.000
> >> Stage moar       :   0.000
> >>
> >> real    0m0.144s
> >> user    0m0.155s
> >> sys    0m0.032s
> >>
> >> And generally that's going to be the case for most short programs, in
> >> these cases especially moving to having the core of your code in
> >> modules with give you a speed boost.
> >>
> >> Sorry if my comments earlier were unhelpful.
> >>
> >> Simon
> >>
> >> On Mon, 6 Aug 2018 at 08:56 ToddAndMargo <toddandma...@zoho.com
> >> <mailto:toddandma...@zoho.com>> wrote:
> >>
> >>      >> On Sun, 5 Aug 2018, 23:45 Elizabeth Mattijsen, <l...@wenzperl.nl
> >>     <mailto:l...@wenzperl.nl>
> >>      >> <mailto:l...@wenzperl.nl <mailto:l...@wenzperl.nl>>> wrote:
> >>      >>
> >>      >>      > On 1 Aug 2018, at 20:14, ToddAndMargo
> >>     <toddandma...@zoho.com <mailto:toddandma...@zoho.com>
> >>      >>     <mailto:toddandma...@zoho.com
> >>     <mailto:toddandma...@zoho.com>>> wrote:
> >>      >>      > Is it just me or does Perl 6 take about three times as
> >>     long to
> >>      >>      > start up as Perl 5?  I do have a very fast machine and it
> >>     takes
> >>      >>      > about seven see for some of my Perl 6 stuff to get past
> >> the
> >>      >>      > ruminating phase and start running.
> >>      >>
> >>      >>     Seven seconds?  Seven?  That seems *very* long indeed.
> >>      >>
> >>      >>     How long does it take to do:
> >>      >>
> >>      >>         perl6 -e ‘’
> >>      >>
> >>      >>     ?  That should be in the order of 130 msecs.  If that’s the
> >>     case,
> >>      >>     then you’re probably doing a lot of grammar changes to Perl
> >>     6.  But
> >>      >>     without the actual code, this remains guessing.
> >>      >>
> >>      >>
> >>      >>      > Any workaround for this, or is this just growing pains
> >>     for Perl 6?
> >>      >>
> >>      >>     Not sure  :-)
> >>      >>
> >>      >>
> >>      >>
> >>      >>     Liz
> >>      >>
> >>      >> --
> >>      >> Simon Proctor
> >>      >> Cognoscite aliquid novum cotidie
> >>
> >>     On 08/05/2018 10:57 PM, Simon Proctor wrote:
> >>      > Have you tried running with --stagestats which gives you a break
> >>     down of
> >>      > where the time is being spent?
> >>      >
> >>      > On thing is if you are running large script files it came take a
> >>     while.
> >>      > Moving your code into modules, which get precompiled can give a
> >>      > significant speed boost.
> >>
> >>     Does this tell you anything?
> >>
> >>     $ curl --fail --head https://google.com; echo $?
> >>     HTTP/2 301
> >>     location: https://www.google.com/
> >>     content-type: text/html; charset=UTF-8
> >>     date: Mon, 06 Aug 2018 05:19:51 GMT
> >>     expires: Wed, 05 Sep 2018 05:19:51 GMT
> >>     cache-control: public, max-age=2592000
> >>     server: gws
> >>     content-length: 220
> >>     x-xss-protection: 1; mode=block
> >>     x-frame-options: SAMEORIGIN
> >>     alt-svc: quic=":443"; ma=2592000; v="44,43,39,35"
> >>
> >>     0
> >>
> >> --
> >> Simon Proctor
> >> Cognoscite aliquid novum cotidie
> >
> > real    0m14.580s
> > user    0m13.723s
> > sys    0m0.418s
>
>
> The program is 6160 line long plus a bunch of imported
> modules.
>
> The Perl 5 version of this program that starts three
> times faster is 6354 lines long plus a bunch if imported
> modules.
>
> The slow start is not a reason to go back to p5 for
> any reason.  It would just be nice if it started faster.
>
-- 
Simon Proctor
Cognoscite aliquid novum cotidie

Reply via email to