Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Last active August 2, 2017 10:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dogbert17/fc516b360ef998c03ca63498b635dae4 to your computer and use it in GitHub Desktop.
Save dogbert17/fc516b360ef998c03ca63498b635dae4 to your computer and use it in GitHub Desktop.
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