Last active
August 2, 2017 10:18
-
-
Save dogbert17/fc516b360ef998c03ca63498b635dae4 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
use v6; | |
sub bigpackids(int @ids) { | |
my $ret = 0; | |
my $c = 0; | |
while $c++ < +@ids { | |
$ret = $ret +| (1 +< (@ids[$c] - 1)); | |
} | |
return $ret; | |
} | |
my int @a = ((^256).roll + 1) xx 256; | |
say "Starting: " ~ my $instant = now; | |
bigpackids(@a) xx 10_000; | |
say "Ran bigpackids 10,000 times (sequential): {now - $instant}"; | |
$instant = now; | |
await do for ^3 { | |
start { | |
say "started in thread $_"; | |
bigpackids(@a) xx 3_333; | |
say "finished in thread $_"; | |
} | |
} | |
say "Ran bigpackids 10,000 times (parallel): {now - $instant}"; | |
# callgrind MoarVM master 99332f234c | |
dogbert@dogbert-VirtualBox ~/repos/rakudo $ callgrind_annotate | |
Reading data from 'callgrind.out.21843'... | |
-------------------------------------------------------------------------------- | |
Profile data file 'callgrind.out.21843' (creator: callgrind-3.10.1) | |
-------------------------------------------------------------------------------- | |
I1 cache: | |
D1 cache: | |
LL cache: | |
Timerange: Basic block 0 - 23097135428 | |
Trigger: Program termination | |
Profiled target: /home/dogbert/repos/rakudo/install/bin/moar --execname=./perl6-callgrind-m --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=. /home/dogbert/repos/rakudo/perl6.moarvm --nqp-lib=blib /home/dogbert/perf.pl6 (PID 21843, part 1) | |
Events recorded: Ir | |
Events shown: Ir | |
Event sort order: Ir | |
Thresholds: 99 | |
Include dirs: | |
User annotated: | |
Auto-annotation: off | |
-------------------------------------------------------------------------------- | |
Ir | |
-------------------------------------------------------------------------------- | |
117,341,243,063 PROGRAM TOTALS | |
-------------------------------------------------------------------------------- | |
Ir file:function | |
-------------------------------------------------------------------------------- | |
21,907,331,249 nqp/MoarVM/src/core/interp.c:MVM_interp_run [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
6,031,033,892 /build/eglibc-0jBZkF/eglibc-2.19/malloc/malloc.c:_int_malloc [/lib/i386-linux-gnu/libc-2.19.so] | |
5,515,564,026 nqp/MoarVM/src/6model/reprs/MVMMultiCache.c:MVM_multi_cache_find_callsite_args [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
4,059,258,939 nqp/MoarVM/3rdparty/libtommath/bn_mp_mul_2d.c:mp_mul_2d [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
3,725,883,442 /build/eglibc-0jBZkF/eglibc-2.19/string/../sysdeps/i386/i686/multiarch/memset-sse2.S:__memset_sse2 [/lib/i386-linux-gnu/libc-2.19.so] | |
3,386,110,940 nqp/MoarVM/src/spesh/arg_guard.c:MVM_spesh_arg_guard_run [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
3,227,443,519 /build/eglibc-0jBZkF/eglibc-2.19/malloc/malloc.c:_int_free [/lib/i386-linux-gnu/libc-2.19.so] | |
3,077,629,885 nqp/MoarVM/src/core/frame.c:MVM_frame_invoke [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
2,985,706,380 ???:__x86.get_pc_thunk.bx [/home/dogbert/repos/rakudo/dynext/libperl6_ops_moar.so] | |
2,710,080,948 nqp/MoarVM/src/core/frame.c:MVM_frame_try_return [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
2,389,351,414 nqp/MoarVM/src/core/frame.c:allocate_frame [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
2,037,377,053 nqp/MoarVM/src/core/fixedsizealloc.c:MVM_fixed_size_alloc [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,972,800,304 nqp/MoarVM/src/6model/sc.c:MVM_sc_get_object [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,877,378,430 nqp/MoarVM/src/core/fixedsizealloc.c:MVM_fixed_size_free [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,802,339,525 nqp/MoarVM/src/gc/collect.c:MVM_gc_collect_free_nursery_uncopied [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,765,982,622 nqp/MoarVM/src/6model/reprs/P6opaque.c:gc_free [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,663,856,368 nqp/MoarVM/src/6model/reprs/P6opaque.c:initialize [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,586,551,920 nqp/MoarVM/src/6model/reprs/P6opaque.c:get_boxed_ref [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,531,892,616 /build/eglibc-0jBZkF/eglibc-2.19/malloc/malloc.c:malloc [/lib/i386-linux-gnu/libc-2.19.so] | |
1,486,312,199 nqp/MoarVM/src/core/frame.c:MVM_frame_find_invokee_multi_ok [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,479,290,812 nqp/MoarVM/src/6model/reprconv.c:MVM_repr_alloc_init [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,450,237,316 nqp/MoarVM/src/gc/allocation.c:MVM_gc_allocate_object [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,448,842,586 /build/eglibc-0jBZkF/eglibc-2.19/malloc/malloc.c:free [/lib/i386-linux-gnu/libc-2.19.so] | |
1,437,763,596 nqp/MoarVM/src/6model/sc.c:MVM_sc_get_sc_object [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,394,867,635 nqp/MoarVM/src/gc/allocation.c:MVM_gc_allocate_nursery [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,193,262,378 nqp/MoarVM/src/core/fixedsizealloc.c:MVM_fixed_size_alloc_zeroed [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
1,128,108,240 nqp/MoarVM/src/core/args.c:MVM_args_proc_init [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
876,566,097 nqp/MoarVM/src/core/args.c:MVM_args_set_result_obj [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
863,165,918 nqp/MoarVM/3rdparty/libtommath/bn_mp_init.c:mp_init [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
831,241,918 nqp/MoarVM/3rdparty/libtommath/bn_mp_clear.c:mp_clear [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
776,550,178 nqp/MoarVM/src/6model/reprconv.c:MVM_repr_box_int [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
767,714,501 nqp/MoarVM/src/6model/6model.c:MVM_6model_istype [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
766,716,054 nqp/MoarVM/src/6model/reprs/P6opaque.c:set_int [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
737,682,006 nqp/MoarVM/src/6model/reprs/VMArray.c:at_pos [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
724,749,458 src/vm/moar/ops/container.c:rakudo_scalar_store [/home/dogbert/repos/rakudo/dynext/libperl6_ops_moar.so] | |
723,387,958 nqp/MoarVM/src/core/frame.c:MVM_frame_find_invokee [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
717,548,708 nqp/MoarVM/src/6model/reprs/P6opaque.c:allocate [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
704,348,236 nqp/MoarVM/3rdparty/libtommath/bn_mp_zero.c:mp_zero [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
697,113,545 nqp/MoarVM/3rdparty/libtommath/bn_mp_copy.c:mp_copy [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
688,787,068 nqp/MoarVM/3rdparty/libtommath/bn_mp_set_long.c:mp_set_long [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
672,400,212 /build/eglibc-0jBZkF/eglibc-2.19/string/../sysdeps/i386/i686/multiarch/strcat.S:0x00128c6b [/lib/i386-linux-gnu/libc-2.19.so] | |
660,600,358 nqp/MoarVM/src/6model/containers.c:native_ref_fetch [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
639,324,274 nqp/MoarVM/3rdparty/libtommath/bn_mp_clamp.c:mp_clamp [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
629,447,832 nqp/MoarVM/src/6model/reprs/MVMCode.c:invoke_handler [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
595,371,859 nqp/MoarVM/src/core/args.c:MVM_args_proc_cleanup [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
576,296,235 nqp/MoarVM/src/spesh/log.h:MVM_interp_run | |
557,912,103 nqp/MoarVM/src/math/bigintops.c:MVM_bigint_shl [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
549,313,929 nqp/MoarVM/src/gc/allocation.c:MVM_gc_allocate_zeroed [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
548,274,613 nqp/MoarVM/src/core/intcache.c:MVM_intcache_get [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
546,512,671 nqp/MoarVM/src/math/bigintops.c:MVM_bigint_or [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
543,554,069 nqp/MoarVM/src/6model/reprs/P6bigint.c:gc_cleanup [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
517,432,587 nqp/MoarVM/src/core/args.c:MVM_args_get_pos_obj [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
513,535,986 /build/eglibc-0jBZkF/eglibc-2.19/malloc/malloc.c:malloc_consolidate [/lib/i386-linux-gnu/libc-2.19.so] | |
502,005,213 nqp/MoarVM/src/gc/roots.h:MVM_gc_allocate_object | |
492,883,328 nqp/MoarVM/src/6model/reprs/P6opaque.c:get_int [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
471,825,288 nqp/MoarVM/src/6model/reprs/P6bigint.c:set_int [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
453,987,567 nqp/MoarVM/src/math/bigintops.c:MVM_bigint_add [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
452,169,373 nqp/MoarVM/src/math/bigintops.c:MVM_bigint_sub [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
427,632,841 nqp/MoarVM/src/gc/allocation.h:MVM_gc_allocate_zeroed | |
415,888,473 nqp/MoarVM/src/6model/reprconv.c:MVM_repr_set_int [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
401,907,000 /build/eglibc-0jBZkF/eglibc-2.19/string/../sysdeps/i386/i686/multiarch/memcpy-ssse3.S:__memcpy_ssse3 [/lib/i386-linux-gnu/libc-2.19.so] | |
399,422,224 nqp/MoarVM/src/6model/containers.c:native_ref_fetch_i [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
399,372,896 nqp/MoarVM/src/6model/reprconv.c:MVM_repr_at_pos_i [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
375,072,311 nqp/MoarVM/src/math/bigintops.c:MVM_bigint_cmp [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
357,942,102 nqp/MoarVM/3rdparty/libtommath/bn_mp_or.c:mp_or [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
356,602,482 nqp/MoarVM/src/gc/roots.h:MVM_repr_alloc_init | |
342,102,612 nqp/MoarVM/src/6model/reprs/P6opaque.c:copy_to [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
312,557,439 nqp/MoarVM/src/6model/sc.h:MVM_sc_get_sc_object | |
309,383,892 src/vm/moar/ops/container.c:rakudo_scalar_can_store [/home/dogbert/repos/rakudo/dynext/libperl6_ops_moar.so] | |
284,110,090 /usr/include/i386-linux-gnu/bits/string3.h:MVM_fixed_size_alloc_zeroed | |
277,247,000 nqp/MoarVM/src/6model/reprs/P6bigint.c:get_int [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
276,466,176 nqp/MoarVM/src/6model/reprs/NativeRef.c:MVM_nativeref_read_positional_i [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
268,636,278 nqp/MoarVM/src/6model/reprs/P6opaque.h:gc_free | |
254,401,399 src/vm/moar/ops/container.c:rakudo_scalar_fetch [/home/dogbert/repos/rakudo/dynext/libperl6_ops_moar.so] | |
233,220,137 nqp/MoarVM/src/core/frame.c:MVM_frame_vivify_lexical [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
225,366,666 nqp/MoarVM/src/core/hll.c:MVM_hll_map [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
225,268,736 nqp/MoarVM/src/math/bigintops.c:two_complement_bitop [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
218,016,640 nqp/MoarVM/src/jit/compile.h:MVM_frame_try_return | |
217,175,864 nqp/MoarVM/3rdparty/libtommath/bn_mp_lshd.c:mp_lshd [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
206,329,776 nqp/MoarVM/src/6model/reprs/MVMNull.h:MVM_multi_cache_find_callsite_args | |
204,828,560 nqp/MoarVM/3rdparty/libtommath/bn_mp_init_size.c:mp_init_size [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
198,318,990 nqp/MoarVM/src/6model/reprs/P6opaque.h:get_boxed_ref | |
191,793,866 nqp/MoarVM/src/6model/reprconv.c:MVM_repr_clone [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
191,414,876 nqp/MoarVM/src/core/args.c:MVM_args_checkarity [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
189,430,528 nqp/MoarVM/src/6model/reprs/NativeRef.c:MVM_nativeref_pos_i [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
179,455,808 nqp/MoarVM/src/core/callstack.c:MVM_callstack_region_prev [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
168,099,819 nqp/MoarVM/src/gc/wb.h:MVM_gc_allocate_object | |
158,511,676 nqp/MoarVM/src/6model/reprs/P6opaque.h:initialize | |
155,012,084 nqp/MoarVM/src/6model/reprs/MVMNull.h:MVM_frame_find_invokee | |
154,790,210 nqp/MoarVM/src/6model/reprs/MVMNull.h:MVM_frame_find_invokee_multi_ok | |
154,711,737 nqp/MoarVM/src/core/frame.c:MVM_frame_destroy [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
153,612,038 nqp/MoarVM/3rdparty/libtommath/bn_mp_init_copy.c:mp_init_copy [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
148,492,702 nqp/MoarVM/3rdparty/libtommath/bn_mp_exch.c:mp_exch [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
138,787,290 src/vm/moar/ops/perl6_ops.c:p6box_i [/home/dogbert/repos/rakudo/dynext/libperl6_ops_moar.so] | |
135,063,267 nqp/MoarVM/src/6model/reprs/MVMNull.h:MVM_interp_run | |
134,502,640 nqp/MoarVM/src/core/alloc.h:gc_free | |
132,568,956 nqp/MoarVM/src/6model/reprs/P6opaque.h:MVM_frame_find_invokee_multi_ok | |
129,175,380 nqp/MoarVM/src/6model/reprs/P6opaque.h:MVM_frame_find_invokee | |
118,802,250 nqp/MoarVM/src/6model/reprs/P6bigint.c:initialize [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
118,422,054 nqp/MoarVM/src/gc/roots.h:MVM_frame_invoke | |
118,300,615 nqp/MoarVM/src/6model/reprconv.c:MVM_repr_get_int [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
112,636,678 nqp/MoarVM/src/core/frame.c:MVM_frame_context_wrapper [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
106,002,045 nqp/MoarVM/src/6model/reprs/MVMNull.h:MVM_6model_istype | |
103,133,278 nqp/MoarVM/src/6model/reprs/P6opaque.h:MVM_interp_run | |
102,404,340 nqp/MoarVM/src/6model/containers.c:MVM_6model_container_decont_i [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
98,229,240 nqp/MoarVM/src/gc/allocation.c:MVM_gc_allocate_frame [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
98,078,209 src/vm/moar/ops/perl6_ops.c:p6bool [/home/dogbert/repos/rakudo/dynext/libperl6_ops_moar.so] | |
88,121,506 nqp/MoarVM/src/gc/roots.h:MVM_repr_clone | |
81,915,904 nqp/MoarVM/src/gc/roots.h:MVM_bigint_or | |
80,080,465 nqp/MoarVM/src/core/hll.c:MVM_hll_current [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
78,637,544 nqp/MoarVM/src/6model/reprs/P6opaque.h:set_int | |
73,916,304 nqp/MoarVM/src/core/alloc.h:MVM_bigint_shl | |
67,551,843 nqp/MoarVM/src/strings/ops.c:MVM_string_equal [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
67,366,637 nqp/MoarVM/src/gc/roots.h:MVM_frame_vivify_lexical | |
62,731,353 nqp/MoarVM/src/core/callsite.h:MVM_args_proc_init | |
61,915,330 ???:0x00003e7a [/home/dogbert/repos/rakudo/dynext/libperl6_ops_moar.so] | |
61,680,588 src/vm/moar/ops/perl6_ops.c:get_mu [/home/dogbert/repos/rakudo/dynext/libperl6_ops_moar.so] | |
61,680,588 src/vm/moar/ops/perl6_ops.c:get_nil [/home/dogbert/repos/rakudo/dynext/libperl6_ops_moar.so] | |
58,392,532 nqp/MoarVM/src/core/frame.c:MVM_frame_find_lexical_by_name [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
53,656,385 nqp/MoarVM/src/6model/reprs/MVMNull.h:MVM_hll_map | |
51,402,024 ???:mp_set_long | |
46,207,812 nqp/MoarVM/src/6model/reprs/P6opaque.h:get_int | |
46,183,410 nqp/MoarVM/src/gc/roots.h:allocate_frame | |
46,078,641 nqp/MoarVM/src/gc/roots.h:MVM_frame_context_wrapper | |
46,077,696 nqp/MoarVM/src/gc/roots.h:MVM_bigint_shl | |
46,077,696 nqp/MoarVM/src/gc/roots.h:MVM_nativeref_pos_i | |
45,052,838 nqp/MoarVM/3rdparty/libatomic_ops/src/atomic_ops/sysdeps/gcc/generic-small.h:MVM_fixed_size_alloc | |
44,645,764 nqp/MoarVM/src/core/compunit.h:MVM_interp_run | |
43,068,544 nqp/MoarVM/src/6model/serialization.c:MVM_serialization_read_int [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
39,068,963 nqp/MoarVM/src/core/validation.c:MVM_validate_static_frame [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
39,060,754 nqp/MoarVM/src/strings/ops.c:MVM_string_substrings_equal_nocheck [/home/dogbert/repos/rakudo/install/lib/libmoar.so] | |
38,867,928 nqp/MoarVM/src/core/alloc.h:gc_cleanup |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment