($model.keys (-) $current.keys, $current.keys (-) $model.keys, $current.keys (&) $model.keys)
timing 5m59s
http://www.harmonyware.com/files/profile-1409260876.63832.html
=============================================================
my @mk = $model.keys;
my @ck = $current.keys;
(@mk (-) @ck, @ck (-) @mk, @ck (&) @mk)
timing 4m56s
http://www.harmonyware.com/files/profile-1409261597.16634.html
=============================================================
my $mk = $model.keys.Set;
my $ck = $current.keys.Set;
($mk (-) $ck, $ck (-) $mk, $ck (&) $mk)
timing 4m14s
http://www.harmonyware.com/files/profile-1409263995.02766.html
=============================================================
my $model-only = [];
my $current-only = [];
my $both = [];
for $model.keys -> $m {
if $current{$m}:exists {
$both.push($m);
} else {
$model-only.push($m);
}
}
for $current.keys -> $c {
unless $model{$c}:exists {
$current-only.push($c);
}
}
($model-only, $current-only, $both);
timing 3m59
http://www.harmonyware.com/files/profile-1409262234.48596.html
timing (with jit) 3m50s
http://www.harmonyware.com/files/profile-1409278389.53893.html
(etc, same as last above)
timing (jit) 3m40s
http://www.harmonyware.com/files/profile-1409279343.36436.html