Created
August 25, 2017 06:53
-
-
Save nkh/f482d398b8db001a7778f89975723fbc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I took an example from Data::Dump::Tree (DDT)and started playing with Promises, the | |
goal was simply educative, I am following "Parallelism, Concurrency, | |
and Asynchrony in Perl 6" document to try the different mechanisms. The final goal | |
being the parallelization of DDT as it is too sluggish and also in preparation of | |
Asciio 2.0. | |
<jnthn> | |
1 will probably because the thread pool over-subscribes the CPU. Second is 'cus you exhausted the thread pool (16 is the number of threads it has by default). Third one may be a data race that's worth reporting. | |
First two are already known about; the latter being addressed by making await non-blocking (available in 6.d.PREVIEW) | |
The first just needs the time spent making the pool size itself more sensibly in respones to the kind of workload | |
<nadim> I don't see how the first case differs from the first run and the last run. I await all the threads in each iteration so the thread pool should be full [no thread running] at each itertation [start] | |
how does await non blocking fix second problem? I'd like to know I have reached the pool limit when I run start not later when I use await. or I am not understanding it right? I'd rather have an exception thrown directly when using start. or that things get aueued without me thinking about the thread pool. | |
<jnthn> Everyone would love not to have to think. | |
<nadim> An exception makes people think, like it or not | |
Problem 1 | |
========= | |
for ^50 | |
{ | |
$dump_start = now ; | |
my $d1 = start $d.ddt: :get, { :$config, :$regex, :$match }, :title<config parsing>, :elements_filters[&sorter] ; | |
my $d2 = start $d.ddt: :get, { :$config, :$regex, :$match }, :title<config parsing>, :elements_filters[&sorter] ; | |
my $d3 = start $d.ddt: :get, { :$config, :$regex, :$match }, :title<config parsing>, :elements_filters[&sorter] ; | |
my $d4 = start $d.ddt: :get, { :$config, :$regex, :$match }, :title<config parsing>, :elements_filters[&sorter] ; | |
my $d5 = start $d.ddt: :get, { :$config, :$regex, :$match }, :title<config parsing>, :elements_filters[&sorter] ; | |
my $d6 = start $d.ddt: :get, { :$config, :$regex, :$match }, :title<config parsing>, :elements_filters[&sorter] ; | |
my $d7 = start $d.ddt: :get, { :$config, :$regex, :$match }, :title<config parsing>, :elements_filters[&sorter] ; | |
my $d8 = start $d.ddt: :get, { :$config, :$regex, :$match }, :title<config parsing>, :elements_filters[&sorter] ; | |
await $d1, $d2, $d3, $d4, $d5, $d6, $d7, $d8 ; | |
say "dump time: {now - $dump_start} s" ; | |
} | |
The problem is that it first iterates quickly and then slows down considerably | |
dump time: 0.24248294 s # first iteration | |
dump time: 0.2493730 s | |
dump time: 0.2249258 s | |
dump time: 0.25128736 s | |
dump time: 0.24334974 s | |
dump time: 0.2577809 s | |
... | |
dump time: 0.4216805 s | |
dump time: 0.404167881 s | |
dump time: 0.40570028 s | |
dump time: 0.41778251 s | |
dump time: 0.4126616 s # last iteration | |
I ran it with 500 iteration, around iteration 150 the time seems to stabilize just below 0.5s. | |
At iteration 500 it is half the time under 0.5s and half the time very slightly higher | |
with peaks around 0.7 s | |
execution slowing down | |
---------------------- | |
I changed the code to this loop and that call to ddt to show the promises, wrongly calling promises | |
threads in my example. | |
for ^15 | |
{ | |
@threads.push: start $d.ddt: :get, { :$config, :$regex, :$match }, :title<config parsing>, :elements_filters[&sorter] ; | |
} | |
ddt @threads ; | |
that worked fine and fast. I changed the code to | |
for ^16 # change from ^15 to ^16 | |
{ | |
@threads.push: start $d.ddt: :get, { :$config, :$regex, :$match }, :title<config parsing>, :elements_filters[&sorter] ; | |
} | |
ddt @threads ; | |
that doesn't work at all. The "ddt @threads" does not get executed, nothing get's schedules, no CPU is used. It's dead Jim. | |
random errors | |
------------- | |
I changed the code to | |
for ^15 # change back to ^15 | |
{ | |
@threads.push: start $d.ddt: :get, { :$config, :$regex, :$match }, :title<config parsing>, :elements_filters[&sorter] ; | |
} | |
ddt @threads, :flat{1, 5} ; #changed the option to ddt | |
The option to ddt makes the rendering much slower, slow enough to that some promises get scheduled before the | |
ddt call returns. | |
I ran it mucltiple times on the command line, sometimes it works, like the example below: | |
132 ~/4/P6-Data-Dump-Tree p6 time_threads.pl | |
time: 0.24393817 s | |
[15] @0 | |
0 = .Promise <Planned> 5 = .Promise <Kept> 10 = .Promise <Planned> | |
1 = .Promise <Planned> 6 = .Promise <Planned> 11 = .Promise <Planned> | |
2 = .Promise <Planned> 7 = .Promise <Planned> 12 = .Promise <Planned> | |
3 = .Promise <Planned> 8 = .Promise <Planned> 13 = .Promise <Planned> | |
4 = .Promise <Planned> 9 = .Promise <Planned> 14 = .Promise <Planned> | |
time: 0.5515428 s | |
total time 0.8070619 s | |
sometimes it fails with this error: | |
----------------------------------- | |
122 ~/4/P6-Data-Dump-Tree p6 time_threads.pl | |
time: 0.2489823 s | |
[15] @0 | |
0 = .Promise <Planned> 5 = .Promise <Planned> 10 = .Promise <Kept> | |
1 = .Promise <Planned> 6 = .Promise <Planned> 11 = .Promise <Planned> | |
2 = .Promise <Planned> 7 = .Promise <Kept> 12 = .Promise <Kept> | |
3 = .Promise <Planned> 8 = .Promise <Planned> 13 = .Promise <Broken> | |
4 = .Promise <Planned> 9 = .Promise <Planned> 14 = .Promise <Kept> | |
Tried to get the result of a broken Promise | |
in block <unit> at time_threads.pl line 53 | |
Original exception: | |
Cannot find method 'specialize' on object of type NQPClassHOW | |
in method reset at /home/nadim/nadim/devel/repositories/perl_modules/P6-Data-Dump-Tree/lib/Data/Dump/Tree.pm (Data::Dump::Tree) line 218 | |
my code at line 218 looks like this : | |
$.width //= %+((qx[stty size] || '0 80') ~~ /\d+ \s+ (\d+)/)[0] ; | |
Other times it fails like this without outputing the result of ddt: | |
------------------------------------------------------------------- | |
122 ~/4/P6-Data-Dump-Tree p6 time_threads.pl | |
time: 0.24770038 s | |
Unhandled exception in code scheduled on thread 19 | |
Unhandled exception in code scheduled on thread 18 | |
Unhandled exception in code scheduled on thread 13 | |
Unhandled exception in code scheduled on thread 6 | |
Type check failed in binding to parameter 'value'; expected Any but got NQPMu (?) | |
I added "use v6.d.PREVIEW" and ran a few mre tests. I don't know if the next errors are | |
related but here are the errors I got. | |
Another Error | |
------------- | |
207 ~/4/P6-Data-Dump-Tree p6 time_threads.pl | |
time: 0.2496898 s | |
.Promise+{x[Str]} (Planned) | |
Segmentation fault (core dumped) | |
And One with a stack dump | |
------------------------- | |
207 ~/4/P6-Data-Dump-Tree p6 time_threads.pl | |
time: 0.2489853 s | |
.Promise+{x[Str]} (Planned) | |
*** Error in `/home/nadim/nadim/devel/repositories/rakudo/install/bin/moar': double free or corruption (fasttop): 0x0000557c1fe1fa40 *** | |
======= Backtrace: ========= | |
/lib/x86_64-linux-gnu/libc.so.6(+0x790cb)[0x7fdd07da80cb] | |
/lib/x86_64-linux-gnu/libc.so.6(+0x82c9a)[0x7fdd07db1c9a] | |
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fdd07db5d8c] | |
//home/nadim/nadim/devel/repositories/rakudo/install/lib/libmoar.so(+0x1e91fa)[0x7fdd082df1fa] | |
//home/nadim/nadim/devel/repositories/rakudo/install/lib/libmoar.so(MVM_serialization_read_ref+0x0)[0x7fdd082e1130] | |
//home/nadim/nadim/devel/repositories/rakudo/install/lib/libmoar.so(+0x1ec3bd)[0x7fdd082e23bd] | |
//home/nadim/nadim/devel/repositories/rakudo/install/lib/libmoar.so(+0x1ecaa1)[0x7fdd082e2aa1] | |
//home/nadim/nadim/devel/repositories/rakudo/install/lib/libmoar.so(MVM_serialization_deserialize+0xb0f)[0x7fdd082e5b5f] | |
//home/nadim/nadim/devel/repositories/rakudo/install/lib/libmoar.so(MVM_interp_run+0xe168)[0x7fdd0827a7f8] | |
//home/nadim/nadim/devel/repositories/rakudo/install/lib/libmoar.so(MVM_vm_run_file+0xc2)[0x7fdd0833f942] | |
/home/nadim/nadim/devel/repositories/rakudo/install/bin/moar(+0x1160)[0x557c1a2ca160] | |
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x7fdd07d4f3f1] | |
/home/nadim/nadim/devel/repositories/rakudo/install/bin/moar(+0x11ca)[0x557c1a2ca1ca] | |
======= Memory map: ======== | |
557c1a2c9000-557c1a2cb000 r-xp 00000000 08:04 11536889 /home/nadim/nadim/devel/repositories/rakudo/install/bin/moar | |
557c1a4ca000-557c1a4cb000 r--p 00001000 08:04 11536889 /home/nadim/nadim/devel/repositories/rakudo/install/bin/moar | |
557c1a4cb000-557c1a4cc000 rw-p 00002000 08:04 11536889 /home/nadim/nadim/devel/repositories/rakudo/install/bin/moar | |
557c1b5b9000-557c27404000 rw-p 00000000 00:00 0 [heap] | |
7fdca8000000-7fdca8021000 rw-p 00000000 00:00 0 | |
7fdca8021000-7fdcac000000 ---p 00000000 00:00 0 | |
7fdcb0000000-7fdcb02af000 rw-p 00000000 00:00 0 | |
7fdcb02af000-7fdcb4000000 ---p 00000000 00:00 0 | |
7fdcb4000000-7fdcb42c1000 rw-p 00000000 00:00 0 | |
7fdcb42c1000-7fdcb8000000 ---p 00000000 00:00 0 | |
7fdcb8000000-7fdcb82d8000 rw-p 00000000 00:00 0 | |
7fdcb82d8000-7fdcbc000000 ---p 00000000 00:00 0 | |
7fdcbe7fd000-7fdcbe7fe000 ---p 00000000 00:00 0 | |
7fdcbe7fe000-7fdcbeffe000 rwxp 00000000 00:00 0 | |
7fdcbeffe000-7fdcbefff000 ---p 00000000 00:00 0 | |
7fdcbefff000-7fdcbf7ff000 rwxp 00000000 00:00 0 | |
7fdcbf7ff000-7fdcbf800000 ---p 00000000 00:00 0 | |
7fdcbf800000-7fdcc0000000 rwxp 00000000 00:00 0 | |
7fdcc0000000-7fdcc02a8000 rw-p 00000000 00:00 0 | |
7fdcc02a8000-7fdcc4000000 ---p 00000000 00:00 0 | |
7fdcc4000000-7fdcc42a8000 rw-p 00000000 00:00 0 | |
7fdcc42a8000-7fdcc8000000 ---p 00000000 00:00 0 | |
7fdcc8000000-7fdcc828c000 rw-p 00000000 00:00 0 | |
7fdcc828c000-7fdccc000000 ---p 00000000 00:00 0 | |
7fdccc000000-7fdccc2c9000 rw-p 00000000 00:00 0 | |
7fdccc2c9000-7fdcd0000000 ---p 00000000 00:00 0 | |
7fdcd0000000-7fdcd00eb000 rw-p 00000000 00:00 0 | |
7fdcd00eb000-7fdcd4000000 ---p 00000000 00:00 0 | |
7fdcd4000000-7fdcd42ac000 rw-p 00000000 00:00 0 | |
7fdcd42ac000-7fdcd8000000 ---p 00000000 00:00 0 | |
7fdcd8000000-7fdcd8484000 rw-p 00000000 00:00 0 | |
7fdcd8484000-7fdcdc000000 ---p 00000000 00:00 0 | |
7fdcdc7f9000-7fdcdc7fa000 ---p 00000000 00:00 0 | |
7fdcdc7fa000-7fdcdcffa000 rwxp 00000000 00:00 0 | |
7fdcdcffa000-7fdcdcffb000 ---p 00000000 00:00 0 | |
7fdcdcffb000-7fdcdd7fb000 rwxp 00000000 00:00 0 | |
7fdcdd7fb000-7fdcdd7fc000 ---p 00000000 00:00 0 | |
7fdcdd7fc000-7fdcddffc000 rwxp 00000000 00:00 0 | |
7fdcddffc000-7fdcddffd000 ---p 00000000 00:00 0 | |
7fdcddffd000-7fdcde7fd000 rwxp 00000000 00:00 0 | |
7fdcde7fd000-7fdcde7fe000 ---p 00000000 00:00 0 | |
7fdcde7fe000-7fdcdeffe000 rwxp 00000000 00:00 0 | |
7fdcdeffe000-7fdcdefff000 ---p 00000000 00:00 0 | |
7fdcdefff000-7fdcdf7ff000 rwxp 00000000 00:00 0 | |
7fdcdf7ff000-7fdcdf800000 ---p 00000000 00:00 0 | |
7fdcdf800000-7fdce0000000 rwxp 00000000 00:00 0 | |
7fdce0000000-7fdce02ac000 rw-p 00000000 00:00 0 | |
7fdce02ac000-7fdce4000000 ---p 00000000 00:00 0 | |
7fdce4000000-7fdce4484000 rw-p 00000000 00:00 0 | |
7fdce4484000-7fdce8000000 ---p 00000000 00:00 0 | |
7fdce8000000-7fdce889a000 rw-p 00000000 00:00 0 | |
7fdce889a000-7fdcec000000 ---p 00000000 00:00 0 | |
7fdcec000000-7fdcec484000 rw-p 00000000 00:00 0 | |
7fdcec484000-7fdcf0000000 ---p 00000000 00:00 0 | |
7fdcf0000000-7fdcf1077000 rw-p 00000000 00:00 0 | |
7fdcf1077000-7fdcf4000000 ---p 00000000 00:00 0 | |
7fdcf4000000-7fdcf4c8e000 rw-p 00000000 00:00 0 | |
7fdcf4c8e000-7fdcf8000000 ---p 00000000 00:00 0 | |
7fdcf8000000-7fdcf8906000 rw-p 00000000 00:00 0 | |
7fdcf8906000-7fdcfc000000 ---p 00000000 00:00 0 | |
7fdcfc7f9000-7fdcfc7fa000 ---p 00000000 00:00 0 | |
7fdcfc7fa000-7fdcfcffa000 rwxp 00000000 00:00 0 | |
7fdcfcffa000-7fdcfcffb000 ---p 00000000 00:00 0 | |
7fdcfcffb000-7fdcfd7fb000 rwxp 00000000 00:00 0 | |
7fdcfd7fb000-7fdcfd7fc000 ---p 00000000 00:00 0 | |
7fdcfd7fc000-7fdcfdffc000 rwxp 00000000 00:00 0 | |
7fdcfdffc000-7fdcfdffd000 ---p 00000000 00:00 0 | |
7fdcfdffd000-7fdcfe7fd000 rwxp 00000000 00:00 0 | |
7fdcfe7fd000-7fdcfe7fe000 ---p 00000000 00:00 0 | |
7fdcfe7fe000-7fdcfeffe000 rwxp 00000000 00:00 0 | |
7fdcfeffe000-7fdcfefff000 ---p 00000000 00:00 0 | |
7fdcfefff000-7fdcff7ff000 rwxp 00000000 00:00 0 | |
7fdcff7ff000-7fdcff800000 ---p 00000000 00:00 0 | |
7fdcff800000-7fdd00000000 rwxp 00000000 00:00 0 | |
7fdd00000000-7fdd008f5000 rw-p 00000000 00:00 0 | |
7fdd008f5000-7fdd04000000 ---p 00000000 00:00 0 | |
7fdd047d7000-7fdd047d8000 r-xp 00000000 00:00 0 | |
7fdd04839000-7fdd04842000 r-xp 00000000 00:00 0 | |
7fdd048a3000-7fdd048a9000 r-xp 00000000 00:00 0 | |
7fdd0490a000-7fdd04919000 r-xp 00000000 00:00 0 | |
7fdd0497a000-7fdd0498a000 r-xp 00000000 00:00 0 | |
7fdd049eb000-7fdd049f5000 r-xp 00000000 00:00 0 | |
7fdd04a56000-7fdd04a5b000 r-xp 00000000 00:00 0 | |
7fdd04a5b000-7fdd04a65000 r--p 00000000 08:04 14420696 /home/nadim/nadim/devel/repositories/rakudo/install/share/perl6/runtime/CORE.d.setting.moarvm | |
7fdd04ac6000-7fdd04ac7000 r-xp 00000000 00:00 0 | |
7fdd04b26000-7fdd04b43000 r-xp 00000000 00:00 0 | |
7fdd04ba4000-7fdd04d0f000 rw-p 00000000 00:00 0 | |
7fdd04d0f000-7fdd04d56000 r--p 00000000 08:04 14420689 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/Perl6/Metamodel.moarvm | |
7fdd04d56000-7fdd04d84000 r--p 00000000 08:04 14420690 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/Perl6/BOOTSTRAP.moarvm | |
7fdd04d84000-7fdd04db4000 rw-p 00000000 00:00 0 | |
7fdd04db4000-7fdd0599e000 r--p 00000000 08:04 14420695 /home/nadim/nadim/devel/repositories/rakudo/install/share/perl6/runtime/CORE.setting.moarvm | |
7fdd05a77000-7fdd05aa1000 r-xp 00000000 00:00 0 | |
7fdd05aa1000-7fdd05ab5000 r--p 00000000 08:04 16779310 /home/nadim/nadim/devel/repositories/perl_modules/P6-Data-Dump-Tree/lib/.precomp/144BF9F3B6429DD8176CC4E9795A0372370FB9A6.1502282226.01473/44/44D523FFB5ABE7D26BB49E7B06788E251321B707 | |
7fdd05ab5000-7fdd05ac7000 r-xp 00000000 00:00 0 | |
7fdd05ac7000-7fdd05b0e000 r--p 00000000 08:04 12847330 /home/nadim/nadim/devel/repositories/perl_modules/P6-Data-Dump-Tree/lib/.precomp/144BF9F3B6429DD8176CC4E9795A0372370FB9A6.1502282226.01473/3D/3D41A0AFE24130F51FFBCEF6AFE961DDA37F6783 | |
7fdd05b0e000-7fdd05b1f000 r--p 00000000 08:04 16781222 /home/nadim/nadim/devel/repositories/perl_modules/P6-Data-Dump-Tree/lib/.precomp/144BF9F3B6429DD8176CC4E9795A0372370FB9A6.1502282226.01473/60/600A505E725F18E88B88BD0CFAE8777E8D484F71 | |
7fdd05b1f000-7fdd05b21000 r--p 00000000 08:04 18351951 /home/nadim/nadim/devel/repositories/perl_modules/P6-Data-Dump-Tree/lib/.precomp/144BF9F3B6429DD8176CC4E9795A0372370FB9A6.1502282226.01473/8E/8EA5DB2ECF282549078F71D65126461FB7A64E62 | |
7fdd05b21000-7fdd05b29000 r-xp 00000000 00:00 0 | |
7fdd05b29000-7fdd05b31000 r--p 00000000 08:04 16779111 /home/nadim/nadim/devel/repositories/rakudo/install/share/perl6/precomp/144BF9F3B6429DD8176CC4E9795A0372370FB9A6.1502282226.01473/AA/AAC61C0EC6F88780427830443A057030CAA33846 | |
7fdd05b31000-7fdd05b58000 r--p 00000000 08:04 16779270 /home/nadim/nadim/devel/repositories/perl_modules/P6-Data-Dump-Tree/lib/.precomp/144BF9F3B6429DD8176CC4E9795A0372370FB9A6.1502282226.01473/05/0507286D7ECBC11693B1A14D908EFEBDBB1B6923 | |
7fdd05b58000-7fdd05b62000 r--p 00000000 08:04 16778766 /home/nadim/nadim/devel/repositories/perl_modules/P6-Data-Dump-Tree/lib/.precomp/144BF9F3B6429DD8176CC4E9795A0372370FB9A6.1502282226.01473/11/11991BA0029646A8355C826E70969F37E1C76A91 | |
7fdd05b62000-7fdd05b69000 r--p 00000000 08:04 16778762 /home/nadim/nadim/devel/repositories/perl_modules/P6-Data-Dump-Tree/lib/.precomp/144BF9F3B6429DD8176CC4E9795A0372370FB9A6.1502282226.01473/5B/5B65E98943E302FD16C3F9497BEAC3C9129A7D12 | |
7fdd05b69000-7fdd05ba0000 r-xp 00000000 00:00 0 | |
7fdd05ba0000-7fdd05ba7000 r-xp 00000000 08:04 14420701 /home/nadim/nadim/devel/repositories/rakudo/install/share/perl6/runtime/dynext/libperl6_ops_moar.so | |
7fdd05ba7000-7fdd05da6000 ---p 00007000 08:04 14420701 /home/nadim/nadim/devel/repositories/rakudo/install/share/perl6/runtime/dynext/libperl6_ops_moar.so | |
7fdd05da6000-7fdd05da7000 r--p 00006000 08:04 14420701 /home/nadim/nadim/devel/repositories/rakudo/install/share/perl6/runtime/dynext/libperl6_ops_moar.so | |
7fdd05da7000-7fdd05da8000 rw-p 00007000 08:04 14420701 /home/nadim/nadim/devel/repositories/rakudo/install/share/perl6/runtime/dynext/libperl6_ops_moar.so | |
7fdd05da8000-7fdd05dce000 r--p 00000000 08:04 14420686 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/Perl6/Optimizer.moarvm | |
7fdd05dce000-7fdd05dd3000 r--p 00000000 08:04 14420688 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/Perl6/Compiler.moarvm | |
7fdd05dd3000-7fdd05e56000 rw-p 00000000 00:00 0 | |
7fdd05e56000-7fdd05ea2000 r--p 00000000 08:04 14420682 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/Perl6/World.moarvm | |
7fdd05ea2000-7fdd05eb2000 r--p 00000000 08:04 14420684 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/Perl6/Ops.moarvm | |
7fdd05eb2000-7fdd05ec7000 r--p 00000000 08:04 14420687 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/Perl6/Pod.moarvm | |
7fdd05ec7000-7fdd05fae000 r--p 00000000 08:04 14420685 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/Perl6/Actions.moarvm | |
7fdd05fae000-7fdd05fe8000 r--p 00000000 08:04 14420640 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/NQPP5QRegex.moarvm | |
7fdd05fe8000-7fdd06388000 r--p 00000000 08:04 14420683 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/Perl6/Grammar.moarvm | |
7fdd06388000-7fdd063f9000 r--p 00000000 08:04 14420637 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/QAST.moarvm | |
7fdd063f9000-7fdd063fa000 ---p 00000000 00:00 0 | |
7fdd063fa000-7fdd06bfa000 rwxp 00000000 00:00 0 | |
7fdd06ebe000-7fdd06ed4000 r-xp 00000000 08:04 13631768 /lib/x86_64-linux-gnu/libgcc_s.so.1 | |
7fdd06ed4000-7fdd070d3000 ---p 00016000 08:04 13631768 /lib/x86_64-linux-gnu/libgcc_s.so.1 | |
7fdd070d3000-7fdd070d4000 r--p 00015000 08:04 13631768 /lib/x86_64-linux-gnu/libgcc_s.so.1 | |
7fdd070d4000-7fdd070d5000 rw-p 00016000 08:04 13631768 /lib/x86_64-linux-gnu/libgcc_s.so.1 | |
7fdd070f9000-7fdd070fa000 rw-p 00000000 00:00 0 | |
7fdd070fa000-7fdd0710b000 r--p 00000000 08:04 16780009 /home/nadim/nadim/devel/repositories/perl_modules/P6-Data-Dump-Tree/lib/.precomp/144BF9F3B6429DD8176CC4E9795A0372370FB9A6.1502282226.01473/92/925FEA9C8148300097989ED1F4491922AF09473F | |
7fdd0710b000-7fdd0711b000 r--p 00000000 08:04 16779108 /home/nadim/nadim/devel/repositories/rakudo/install/share/perl6/precomp/144BF9F3B6429DD8176CC4E9795A0372370FB9A6.1502282226.01473/5D/5DD1D8B49C838828E13504545C427D3D157E56EC | |
7fdd0711b000-7fdd0727f000 r-xp 00000000 00:00 0 | |
7fdd0727f000-7fdd0728b000 r--p 00000000 08:04 18352112 /home/nadim/.perl6/precomp/144BF9F3B6429DD8176CC4E9795A0372370FB9A6.1502282226.01473/96/9635A0F39B634ECB1D4A3EB252E37C50A1A16D29 | |
7fdd0728b000-7fdd073fc000 r-xp 00000000 00:00 0 | |
7fdd073fc000-7fdd073ff000 r-xp 00000000 08:04 13631697 /lib/x86_64-linux-gnu/libdl-2.24.so | |
7fdd073ff000-7fdd075fe000 ---p 00003000 08:04 13631697 /lib/x86_64-linux-gnu/libdl-2.24.so | |
7fdd075fe000-7fdd075ff000 r--p 00002000 08:04 13631697 /lib/x86_64-linux-gnu/libdl-2.24.so | |
7fdd075ff000-7fdd07600000 rw-p 00003000 08:04 13631697 /lib/x86_64-linux-gnu/libdl-2.24.so | |
7fdd07600000-7fdd07607000 r-xp 00000000 08:04 13631711 /lib/x86_64-linux-gnu/librt-2.24.so | |
7fdd07607000-7fdd07806000 ---p 00007000 08:04 13631711 /lib/x86_64-linux-gnu/librt-2.24.so | |
7fdd07806000-7fdd07807000 r--p 00006000 08:04 13631711 /lib/x86_64-linux-gnu/librt-2.24.so | |
7fdd07807000-7fdd07808000 rw-p 00007000 08:04 13631711 /lib/x86_64-linux-gnu/librt-2.24.so | |
7fdd07808000-7fdd07820000 r-xp 00000000 08:04 13631709 /lib/x86_64-linux-gnu/libpthread-2.24.so | |
7fdd07820000-7fdd07a20000 ---p 00018000 08:04 13631709 /lib/x86_64-linux-gnu/libpthread-2.24.so | |
7fdd07a20000-7fdd07a21000 r--p 00018000 08:04 13631709 /lib/x86_64-linux-gnu/libpthread-2.24.so | |
7fdd07a21000-7fdd07a22000 rw-p 00019000 08:04 13631709 /lib/x86_64-linux-gnu/libpthread-2.24.so | |
7fdd07a22000-7fdd07a26000 rw-p 00000000 00:00 0 | |
7fdd07a26000-7fdd07b2e000 r-xp 00000000 08:04 13631698 /lib/x86_64-linux-gnu/libm-2.24.so | |
7fdd07b2e000-7fdd07d2d000 ---p 00108000 08:04 13631698 /lib/x86_64-linux-gnu/libm-2.24.so | |
7fdd07d2d000-7fdd07d2e000 r--p 00107000 08:04 13631698 /lib/x86_64-linux-gnu/libm-2.24.so | |
7fdd07d2e000-7fdd07d2f000 rw-p 00108000 08:04 13631698 /lib/x86_64-linux-gnu/libm-2.24.so | |
7fdd07d2f000-7fdd07eed000 r-xp 00000000 08:04 13631692 /lib/x86_64-linux-gnu/libc-2.24.so | |
7fdd07eed000-7fdd080ec000 ---p 001be000 08:04 13631692 /lib/x86_64-linux-gnu/libc-2.24.so | |
7fdd080ec000-7fdd080f0000 r--p 001bd000 08:04 13631692 /lib/x86_64-linux-gnu/libc-2.24.so | |
7fdd080f0000-7fdd080f2000 rw-p 001c1000 08:04 13631692 /lib/x86_64-linux-gnu/libc-2.24.so | |
7fdd080f2000-7fdd080f6000 rw-p 00000000 00:00 0 | |
7fdd080f6000-7fdd085bd000 r-xp 00000000 08:04 14419156 /home/nadim/nadim/devel/repositories/rakudo/install/lib/libmoar.so | |
7fdd085bd000-7fdd087bd000 ---p 004c7000 08:04 14419156 /home/nadim/nadim/devel/repositories/rakudo/install/lib/libmoar.so | |
7fdd087bd000-7fdd0886b000 r--p 004c7000 08:04 14419156 /home/nadim/nadim/devel/repositories/rakudo/install/lib/libmoar.so | |
7fdd0886b000-7fdd0887d000 rw-p 00575000 08:04 14419156 /home/nadim/nadim/devel/repositories/rakudo/install/lib/libmoar.so | |
7fdd0887d000-7fdd0887e000 rw-p 00000000 00:00 0 | |
7fdd0887e000-7fdd088a3000 r-xp 00000000 08:04 13631629 /lib/x86_64-linux-gnu/ld-2.24.so | |
7fdd088a3000-7fdd088a9000 r--p 00000000 08:04 14420681 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/Perl6/ModuleLoader.moarvm | |
7fdd088a9000-7fdd088c5000 r--p 00000000 08:04 14420635 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/MASTOps.moarvm | |
7fdd088c5000-7fdd088d1000 r--p 00000000 08:04 14420636 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/MASTNodes.moarvm | |
7fdd088d1000-7fdd0892b000 r--p 00000000 08:04 14420634 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/NQPHLL.moarvm | |
7fdd0892b000-7fdd08944000 r--p 00000000 08:04 14420632 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/QASTNode.moarvm | |
7fdd08944000-7fdd0896d000 r--p 00000000 08:04 14420633 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/QRegex.moarvm | |
7fdd0896d000-7fdd089cf000 r--p 00000000 08:04 14420638 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/NQPP6QRegex.moarvm | |
7fdd089cf000-7fdd089e3000 r--p 00000000 08:04 14420629 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/nqpmo.moarvm | |
7fdd089e3000-7fdd089f3000 r--p 00000000 08:04 14420631 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/NQPCORE.setting.moarvm | |
7fdd089f3000-7fdd089f6000 r--p 00000000 08:04 14420630 /home/nadim/nadim/devel/repositories/rakudo/install/share/nqp/lib/ModuleLoader.moarvm | |
7fdd089f6000-7fdd08a7c000 rw-p 00000000 00:00 0 | |
7fdd08a7c000-7fdd08a7f000 r--p 00000000 08:04 14420698 /home/nadim/nadim/devel/repositories/rakudo/install/share/perl6/runtime/perl6.moarvm | |
7fdd08a7f000-7fdd08aa3000 rw-p 00000000 00:00 0 | |
7fdd08aa3000-7fdd08aa4000 r--p 00025000 08:04 13631629 /lib/x86_64-linux-gnu/ld-2.24.so | |
7fdd08aa4000-7fdd08aa5000 rw-p 00026000 08:04 13631629 /lib/x86_64-linux-gnu/ld-2.24.so | |
7fdd08aa5000-7fdd08aa6000 rw-p 00000000 00:00 0 | |
7ffcb1b6a000-7ffcb1b8a000 rwxp 00000000 00:00 0 [stack] | |
7ffcb1b8a000-7ffcb1b8c000 rw-p 00000000 00:00 0 | |
7ffcb1bc6000-7ffcb1bc8000 r--p 00000000 00:00 0 [vvar] | |
7ffcb1bc8000-7ffcb1bca000 r-xp 00000000 00:00 0 [vdso] | |
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] | |
Aborted (core dumped) | |
Reducing the amount of promises changed nothing | |
----------------------------------------------- | |
It still sometimes work and sometimes not. | |
207 ~/4/P6-Data-Dump-Tree p6 time_threads.pl | |
time: 0.247054 s | |
.Promise+{x[Str]} (Planned) | |
[12] @0 | |
0 = .Promise (Planned) 5 = .Promise (Planned) 10 = .Promise (Kept) | |
1 = .Promise (Planned) 6 = .Promise (Planned) 11 = .Promise (Planned) | |
2 = .Promise (Planned) 7 = .Promise (Planned) | |
3 = .Promise (Planned) 8 = .Promise (Planned) | |
4 = .Promise (Planned) 9 = .Promise (Planned) | |
time: 0.455136 s | |
total time 0.7086660 s | |
207 ~/4/P6-Data-Dump-Tree p6 time_threads.pl | |
time: 0.24793827 s | |
.Promise+{x[Str]} (Planned) | |
Unhandled exception in code scheduled on thread 10 | |
Type check failed in binding to parameter 'value'; expected Any but got NQPMu (?) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment