Maybe almost there, I have to switch over to on-demand iteration instead of precomputation

This commit is contained in:
Joachim 2018-08-26 23:11:09 +02:00
parent e0bd2fb01b
commit 28545f3c59
10 changed files with 1055 additions and 14 deletions

628
hs_err_pid28135.log Normal file
View File

@ -0,0 +1,628 @@
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 214958080 bytes for committing reserved memory.
# Possible reasons:
# The system is out of physical RAM or swap space
# In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
# Out of Memory Error (os_linux.cpp:2640), pid=28135, tid=0x00007f36d482c700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_171-b11) (build 1.8.0_171-b11)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.171-b11 mixed mode linux-amd64 compressed oops)
# Core dump written. Default location: /home/joachim/Documents/workspaces/idea/crubecross/core or core.28135
#
--------------- T H R E A D ---------------
Current thread (0x00007f36d0141000): VMThread [stack: 0x00007f36d472d000,0x00007f36d482d000] [id=28147]
Stack: [0x00007f36d472d000,0x00007f36d482d000], sp=0x00007f36d482b1c0, free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xacfffa] VMError::report_and_die()+0x2ba
V [libjvm.so+0x5005cb] report_vm_out_of_memory(char const*, int, unsigned long, VMErrorType, char const*)+0x8b
V [libjvm.so+0x92dd93] os::Linux::commit_memory_impl(char*, unsigned long, bool)+0x123
V [libjvm.so+0x92dfb9] os::pd_commit_memory(char*, unsigned long, unsigned long, bool)+0x29
V [libjvm.so+0x92527a] os::commit_memory(char*, unsigned long, unsigned long, bool)+0x2a
V [libjvm.so+0x99b223] PSVirtualSpace::expand_by(unsigned long)+0x53
V [libjvm.so+0x98bae0] PSOldGen::expand(unsigned long)+0x170
V [libjvm.so+0x98bceb] PSOldGen::resize(unsigned long)+0x1cb
V [libjvm.so+0x9939f1] PSParallelCompact::invoke_no_policy(bool)+0x991
V [libjvm.so+0x99934d] PSScavenge::invoke()+0x1ad
V [libjvm.so+0x94fcb0] ParallelScavengeHeap::failed_mem_allocate(unsigned long)+0x70
V [libjvm.so+0xad1a77] VM_ParallelGCFailedAllocation::doit()+0x97
V [libjvm.so+0xad9595] VM_Operation::evaluate()+0x55
V [libjvm.so+0xad795a] VMThread::evaluate_operation(VM_Operation*)+0xba
V [libjvm.so+0xad7cde] VMThread::loop()+0x1ce
V [libjvm.so+0xad8150] VMThread::run()+0x70
V [libjvm.so+0x92e0f8] java_start(Thread*)+0x108
VM_Operation (0x00007f36d7dc3e90): ParallelGCFailedAllocation, mode: safepoint, requested by thread 0x00007f36d000c800
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x00007f36d0223800 JavaThread "Service Thread" daemon [_thread_blocked, id=28164, stack(0x00007f36bcb94000,0x00007f36bcc95000)]
0x00007f36d021e800 JavaThread "C1 CompilerThread2" daemon [_thread_blocked, id=28163, stack(0x00007f36bcc96000,0x00007f36bcd96000)]
0x00007f36d021c800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=28162, stack(0x00007f36bcfae000,0x00007f36bd0ae000)]
0x00007f36d021a800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=28161, stack(0x00007f36bd0af000,0x00007f36bd1af000)]
0x00007f36d0219000 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=28160, stack(0x00007f36bd1af000,0x00007f36bd2b0000)]
0x00007f36d0180800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=28152, stack(0x00007f36d4144000,0x00007f36d4245000)]
0x00007f36d014d000 JavaThread "Finalizer" daemon [_thread_blocked, id=28151, stack(0x00007f36d452a000,0x00007f36d462b000)]
0x00007f36d0148800 JavaThread "Reference Handler" daemon [_thread_blocked, id=28150, stack(0x00007f36d462b000,0x00007f36d472c000)]
0x00007f36d000c800 JavaThread "main" [_thread_blocked, id=28137, stack(0x00007f36d7cc6000,0x00007f36d7dc6000)]
Other Threads:
=>0x00007f36d0141000 VMThread [stack: 0x00007f36d472d000,0x00007f36d482d000] [id=28147]
0x00007f36d0228800 WatcherThread [stack: 0x00007f36bca94000,0x00007f36bcb94000] [id=28165]
VM state:at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
[0x00007f36d0005a70] ExpandHeap_lock - owner thread: 0x00007f36d0141000
[0x00007f36d0009a00] Threads_lock - owner thread: 0x00007f36d0141000
[0x00007f36d0009f00] Heap_lock - owner thread: 0x00007f36d000c800
Heap:
PSYoungGen total 437248K, used 47533K [0x00000000d7200000, 0x0000000100000000, 0x0000000100000000)
eden space 356352K, 0% used [0x00000000d7200000,0x00000000d7200000,0x00000000ece00000)
from space 80896K, 58% used [0x00000000fb100000,0x00000000fdf6b610,0x0000000100000000)
to space 156672K, 0% used [0x00000000ece00000,0x00000000ece00000,0x00000000f6700000)
ParOldGen total 323584K, used 323479K [0x0000000085600000, 0x0000000099200000, 0x00000000d7200000)
object space 323584K, 99% used [0x0000000085600000,0x00000000991e5db8,0x0000000099200000)
Metaspace used 4615K, capacity 5656K, committed 5888K, reserved 1056768K
class space used 422K, capacity 456K, committed 512K, reserved 1048576K
Card table byte_map: [0x00007f36d6cc4000,0x00007f36d709a000] byte_map_base: 0x00007f36d6899000
Marking Bits: (ParMarkBitMap*) 0x00007f36d8f1b280
Begin Bits: [0x00007f36bd2b0000, 0x00007f36bf158000)
End Bits: [0x00007f36bf158000, 0x00007f36c1000000)
Polling page: 0x00007f36d937f000
CodeCache: size=245760Kb used=1983Kb max_used=1983Kb free=243776Kb
bounds [0x00007f36c1000000, 0x00007f36c1270000, 0x00007f36d0000000]
total_blobs=555 nmethods=281 adapters=189
compilation: enabled
Compilation events (10 events):
Event: 1.810 Thread 0x00007f36d021c800 277 4 java.util.HashMap::hash (20 bytes)
Event: 1.811 Thread 0x00007f36d021e800 278 % 3 be.nielandt.CrossSolverBase::solveCrosses @ 67 (229 bytes)
Event: 1.811 Thread 0x00007f36d021c800 nmethod 277 0x00007f36c11c7a10 code [0x00007f36c11c7b60, 0x00007f36c11c7c18]
Event: 1.815 Thread 0x00007f36d021e800 nmethod 278% 0x00007f36c11e6310 code [0x00007f36c11e6780, 0x00007f36c11e9398]
Event: 1.818 Thread 0x00007f36d021a800 279 4 java.util.HashMap::containsKey (18 bytes)
Event: 1.824 Thread 0x00007f36d021a800 nmethod 279 0x00007f36c11df050 code [0x00007f36c11df1e0, 0x00007f36c11df648]
Event: 1.835 Thread 0x00007f36d021a800 280 % 4 be.nielandt.CrossSolverBase::solveCrosses @ 105 (229 bytes)
Event: 1.950 Thread 0x00007f36d021a800 nmethod 280% 0x00007f36c11edb10 code [0x00007f36c11eddc0, 0x00007f36c11eef90]
Event: 2.280 Thread 0x00007f36d021e800 281 3 be.nielandt.counter.CounterTiered::appendRandomClass (581 bytes)
Event: 2.286 Thread 0x00007f36d021e800 nmethod 281 0x00007f36c11f0450 code [0x00007f36c11f0b80, 0x00007f36c11f57c8]
GC Heap History (10 events):
Event: 3.776 GC heap after
Heap after GC invocations=12 (full 1):
PSYoungGen total 648704K, used 0K [0x00000000d7200000, 0x0000000100000000, 0x0000000100000000)
eden space 627712K, 0% used [0x00000000d7200000,0x00000000d7200000,0x00000000fd700000)
from space 20992K, 0% used [0x00000000fd700000,0x00000000fd700000,0x00000000feb80000)
to space 20992K, 0% used [0x00000000feb80000,0x00000000feb80000,0x0000000100000000)
ParOldGen total 151552K, used 69687K [0x0000000085600000, 0x000000008ea00000, 0x00000000d7200000)
object space 151552K, 45% used [0x0000000085600000,0x0000000089a0dd40,0x000000008ea00000)
Metaspace used 4615K, capacity 5656K, committed 5888K, reserved 1056768K
class space used 422K, capacity 456K, committed 512K, reserved 1048576K
}
Event: 4.295 GC heap before
{Heap before GC invocations=13 (full 1):
PSYoungGen total 648704K, used 627712K [0x00000000d7200000, 0x0000000100000000, 0x0000000100000000)
eden space 627712K, 100% used [0x00000000d7200000,0x00000000fd700000,0x00000000fd700000)
from space 20992K, 0% used [0x00000000fd700000,0x00000000fd700000,0x00000000feb80000)
to space 20992K, 0% used [0x00000000feb80000,0x00000000feb80000,0x0000000100000000)
ParOldGen total 151552K, used 69687K [0x0000000085600000, 0x000000008ea00000, 0x00000000d7200000)
object space 151552K, 45% used [0x0000000085600000,0x0000000089a0dd40,0x000000008ea00000)
Metaspace used 4615K, capacity 5656K, committed 5888K, reserved 1056768K
class space used 422K, capacity 456K, committed 512K, reserved 1048576K
Event: 4.607 GC heap after
Heap after GC invocations=13 (full 1):
PSYoungGen total 528896K, used 20990K [0x00000000d7200000, 0x0000000100000000, 0x0000000100000000)
eden space 507904K, 0% used [0x00000000d7200000,0x00000000d7200000,0x00000000f6200000)
from space 20992K, 99% used [0x00000000feb80000,0x00000000fffff8a8,0x0000000100000000)
to space 80896K, 0% used [0x00000000f6200000,0x00000000f6200000,0x00000000fb100000)
ParOldGen total 175104K, used 174316K [0x0000000085600000, 0x0000000090100000, 0x00000000d7200000)
object space 175104K, 99% used [0x0000000085600000,0x000000009003b030,0x0000000090100000)
Metaspace used 4615K, capacity 5656K, committed 5888K, reserved 1056768K
class space used 422K, capacity 456K, committed 512K, reserved 1048576K
}
Event: 4.607 GC heap before
{Heap before GC invocations=14 (full 2):
PSYoungGen total 528896K, used 20990K [0x00000000d7200000, 0x0000000100000000, 0x0000000100000000)
eden space 507904K, 0% used [0x00000000d7200000,0x00000000d7200000,0x00000000f6200000)
from space 20992K, 99% used [0x00000000feb80000,0x00000000fffff8a8,0x0000000100000000)
to space 80896K, 0% used [0x00000000f6200000,0x00000000f6200000,0x00000000fb100000)
ParOldGen total 175104K, used 174316K [0x0000000085600000, 0x0000000090100000, 0x00000000d7200000)
object space 175104K, 99% used [0x0000000085600000,0x000000009003b030,0x0000000090100000)
Metaspace used 4615K, capacity 5656K, committed 5888K, reserved 1056768K
class space used 422K, capacity 456K, committed 512K, reserved 1048576K
Event: 5.584 GC heap after
Heap after GC invocations=14 (full 2):
PSYoungGen total 528896K, used 12779K [0x00000000d7200000, 0x0000000100000000, 0x0000000100000000)
eden space 507904K, 0% used [0x00000000d7200000,0x00000000d7200000,0x00000000f6200000)
from space 20992K, 60% used [0x00000000feb80000,0x00000000ff7fada8,0x0000000100000000)
to space 80896K, 0% used [0x00000000f6200000,0x00000000f6200000,0x00000000fb100000)
ParOldGen total 323584K, used 174870K [0x0000000085600000, 0x0000000099200000, 0x00000000d7200000)
object space 323584K, 54% used [0x0000000085600000,0x00000000900c5b60,0x0000000099200000)
Metaspace used 4615K, capacity 5656K, committed 5888K, reserved 1056768K
class space used 422K, capacity 456K, committed 512K, reserved 1048576K
}
Event: 5.853 GC heap before
{Heap before GC invocations=15 (full 2):
PSYoungGen total 528896K, used 520683K [0x00000000d7200000, 0x0000000100000000, 0x0000000100000000)
eden space 507904K, 100% used [0x00000000d7200000,0x00000000f6200000,0x00000000f6200000)
from space 20992K, 60% used [0x00000000feb80000,0x00000000ff7fada8,0x0000000100000000)
to space 80896K, 0% used [0x00000000f6200000,0x00000000f6200000,0x00000000fb100000)
ParOldGen total 323584K, used 174870K [0x0000000085600000, 0x0000000099200000, 0x00000000d7200000)
object space 323584K, 54% used [0x0000000085600000,0x00000000900c5b60,0x0000000099200000)
Metaspace used 4615K, capacity 5656K, committed 5888K, reserved 1056768K
class space used 422K, capacity 456K, committed 512K, reserved 1048576K
Event: 6.111 GC heap after
Heap after GC invocations=15 (full 2):
PSYoungGen total 588800K, used 80895K [0x00000000d7200000, 0x0000000100000000, 0x0000000100000000)
eden space 507904K, 0% used [0x00000000d7200000,0x00000000d7200000,0x00000000f6200000)
from space 80896K, 99% used [0x00000000f6200000,0x00000000fb0fff30,0x00000000fb100000)
to space 80896K, 0% used [0x00000000fb100000,0x00000000fb100000,0x0000000100000000)
ParOldGen total 323584K, used 225678K [0x0000000085600000, 0x0000000099200000, 0x00000000d7200000)
object space 323584K, 69% used [0x0000000085600000,0x0000000093263b60,0x0000000099200000)
Metaspace used 4615K, capacity 5656K, committed 5888K, reserved 1056768K
class space used 422K, capacity 456K, committed 512K, reserved 1048576K
}
Event: 6.374 GC heap before
{Heap before GC invocations=16 (full 2):
PSYoungGen total 588800K, used 588799K [0x00000000d7200000, 0x0000000100000000, 0x0000000100000000)
eden space 507904K, 100% used [0x00000000d7200000,0x00000000f6200000,0x00000000f6200000)
from space 80896K, 99% used [0x00000000f6200000,0x00000000fb0fff30,0x00000000fb100000)
to space 80896K, 0% used [0x00000000fb100000,0x00000000fb100000,0x0000000100000000)
ParOldGen total 323584K, used 225678K [0x0000000085600000, 0x0000000099200000, 0x00000000d7200000)
object space 323584K, 69% used [0x0000000085600000,0x0000000093263b60,0x0000000099200000)
Metaspace used 4615K, capacity 5656K, committed 5888K, reserved 1056768K
class space used 422K, capacity 456K, committed 512K, reserved 1048576K
Event: 6.624 GC heap after
Heap after GC invocations=16 (full 2):
PSYoungGen total 437248K, used 80883K [0x00000000d7200000, 0x0000000100000000, 0x0000000100000000)
eden space 356352K, 0% used [0x00000000d7200000,0x00000000d7200000,0x00000000ece00000)
from space 80896K, 99% used [0x00000000fb100000,0x00000000ffffcd18,0x0000000100000000)
to space 156672K, 0% used [0x00000000ece00000,0x00000000ece00000,0x00000000f6700000)
ParOldGen total 323584K, used 314855K [0x0000000085600000, 0x0000000099200000, 0x00000000d7200000)
object space 323584K, 97% used [0x0000000085600000,0x0000000098979c28,0x0000000099200000)
Metaspace used 4615K, capacity 5656K, committed 5888K, reserved 1056768K
class space used 422K, capacity 456K, committed 512K, reserved 1048576K
}
Event: 6.624 GC heap before
{Heap before GC invocations=17 (full 3):
PSYoungGen total 437248K, used 80883K [0x00000000d7200000, 0x0000000100000000, 0x0000000100000000)
eden space 356352K, 0% used [0x00000000d7200000,0x00000000d7200000,0x00000000ece00000)
from space 80896K, 99% used [0x00000000fb100000,0x00000000ffffcd18,0x0000000100000000)
to space 156672K, 0% used [0x00000000ece00000,0x00000000ece00000,0x00000000f6700000)
ParOldGen total 323584K, used 314855K [0x0000000085600000, 0x0000000099200000, 0x00000000d7200000)
object space 323584K, 97% used [0x0000000085600000,0x0000000098979c28,0x0000000099200000)
Metaspace used 4615K, capacity 5656K, committed 5888K, reserved 1056768K
class space used 422K, capacity 456K, committed 512K, reserved 1048576K
Deoptimization events (10 events):
Event: 0.449 Thread 0x00007f36d000c800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00007f36c11903b0 method=be.nielandt.EdgeModel.crossSolved(I)Z @ 543
Event: 0.683 Thread 0x00007f36d000c800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00007f36c11c072c method=be.nielandt.counter.CounterTiered.fillIn(ILjava/util/List;[Ljava/lang/Integer;)Ljava/util/List; @ 538
Event: 0.683 Thread 0x00007f36d000c800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00007f36c11c072c method=be.nielandt.counter.CounterTiered.fillIn(ILjava/util/List;[Ljava/lang/Integer;)Ljava/util/List; @ 538
Event: 0.683 Thread 0x00007f36d000c800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00007f36c11c072c method=be.nielandt.counter.CounterTiered.fillIn(ILjava/util/List;[Ljava/lang/Integer;)Ljava/util/List; @ 538
Event: 0.683 Thread 0x00007f36d000c800 Uncommon trap: reason=class_check action=maybe_recompile pc=0x00007f36c11c072c method=be.nielandt.counter.CounterTiered.fillIn(ILjava/util/List;[Ljava/lang/Integer;)Ljava/util/List; @ 538
Event: 1.189 Thread 0x00007f36d000c800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00007f36c1191548 method=be.nielandt.EdgeModel.crossSolved(I)Z @ 675
Event: 1.604 Thread 0x00007f36d000c800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00007f36c11ce858 method=be.nielandt.EdgeModel.crossSolved(I)Z @ 442
Event: 1.792 Thread 0x00007f36d000c800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00007f36c11b9110 method=be.nielandt.CrossSolverBase.solveCrosses(Lbe/nielandt/EdgeModel;)Ljava/util/Map; @ 154
Event: 1.809 Thread 0x00007f36d000c800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00007f36c118f954 method=java.util.HashMap.containsKey(Ljava/lang/Object;)Z @ 9
Event: 1.810 Thread 0x00007f36d000c800 Uncommon trap: reason=unstable_if action=reinterpret pc=0x00007f36c11e0154 method=java.util.HashMap.containsKey(Ljava/lang/Object;)Z @ 9
Classes redefined (0 events):
No events
Internal exceptions (2 events):
Event: 0.047 Thread 0x00007f36d000c800 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.defineClass(Ljava/lang/String;[BII)Ljava/lang/Class; name or signature does not match> (0x00000000d7207cb0) thrown at [/HUDSON/workspace/8-2-build-linux-amd64/jdk8u171/10807/hotspot/src/sh
Event: 0.047 Thread 0x00007f36d000c800 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.prefetchRead(Ljava/lang/Object;J)V name or signature does not match> (0x00000000d7207f98) thrown at [/HUDSON/workspace/8-2-build-linux-amd64/jdk8u171/10807/hotspot/src/share/vm/prims/jni.c
Events (10 events):
Event: 2.192 Executing VM operation: ParallelGCFailedAllocation done
Event: 2.621 Executing VM operation: ParallelGCFailedAllocation
Event: 3.776 Executing VM operation: ParallelGCFailedAllocation done
Event: 4.166 Executing VM operation: EnableBiasedLocking
Event: 4.172 Executing VM operation: EnableBiasedLocking done
Event: 4.295 Executing VM operation: ParallelGCFailedAllocation
Event: 5.584 Executing VM operation: ParallelGCFailedAllocation done
Event: 5.853 Executing VM operation: ParallelGCFailedAllocation
Event: 6.111 Executing VM operation: ParallelGCFailedAllocation done
Event: 6.374 Executing VM operation: ParallelGCFailedAllocation
Dynamic libraries:
00400000-00401000 r-xp 00000000 00:15 1373915 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/bin/java
00600000-00601000 rw-p 00000000 00:15 1373915 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/bin/java
01505000-01526000 rw-p 00000000 00:00 0 [heap]
85600000-99200000 rw-p 00000000 00:00 0
a5f00000-d7200000 ---p 00000000 00:00 0
d7200000-100000000 rw-p 00000000 00:00 0
100000000-100080000 rw-p 00000000 00:00 0
100080000-140000000 ---p 00000000 00:00 0
7f3680000000-7f3680021000 rw-p 00000000 00:00 0
7f3680021000-7f3684000000 ---p 00000000 00:00 0
7f3688000000-7f368827a000 rw-p 00000000 00:00 0
7f368827a000-7f368c000000 ---p 00000000 00:00 0
7f368c000000-7f368c021000 rw-p 00000000 00:00 0
7f368c021000-7f3690000000 ---p 00000000 00:00 0
7f3690000000-7f36908a7000 rw-p 00000000 00:00 0
7f36908a7000-7f3694000000 ---p 00000000 00:00 0
7f3694000000-7f36948e7000 rw-p 00000000 00:00 0
7f36948e7000-7f3698000000 ---p 00000000 00:00 0
7f3698000000-7f3698021000 rw-p 00000000 00:00 0
7f3698021000-7f369c000000 ---p 00000000 00:00 0
7f369c000000-7f369c04a000 rw-p 00000000 00:00 0
7f369c04a000-7f36a0000000 ---p 00000000 00:00 0
7f36a0000000-7f36a0021000 rw-p 00000000 00:00 0
7f36a0021000-7f36a4000000 ---p 00000000 00:00 0
7f36a4000000-7f36a4021000 rw-p 00000000 00:00 0
7f36a4021000-7f36a8000000 ---p 00000000 00:00 0
7f36a8000000-7f36a89d8000 rw-p 00000000 00:00 0
7f36a89d8000-7f36ac000000 ---p 00000000 00:00 0
7f36ac000000-7f36ac29a000 rw-p 00000000 00:00 0
7f36ac29a000-7f36b0000000 ---p 00000000 00:00 0
7f36b0000000-7f36b0021000 rw-p 00000000 00:00 0
7f36b0021000-7f36b4000000 ---p 00000000 00:00 0
7f36b4000000-7f36b4021000 rw-p 00000000 00:00 0
7f36b4021000-7f36b8000000 ---p 00000000 00:00 0
7f36b8000000-7f36b8021000 rw-p 00000000 00:00 0
7f36b8021000-7f36bc000000 ---p 00000000 00:00 0
7f36bca93000-7f36bca94000 ---p 00000000 00:00 0
7f36bca94000-7f36bcb94000 rw-p 00000000 00:00 0
7f36bcb94000-7f36bcb97000 ---p 00000000 00:00 0
7f36bcb97000-7f36bcc95000 rw-p 00000000 00:00 0
7f36bcc95000-7f36bcc96000 ---p 00000000 00:00 0
7f36bcc96000-7f36bcc99000 ---p 00000000 00:00 0
7f36bcc99000-7f36bcd96000 rw-p 00000000 00:00 0
7f36bcd96000-7f36bcdac000 r-xp 00000000 00:15 1375668 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libnet.so
7f36bcdac000-7f36bcfac000 ---p 00016000 00:15 1375668 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libnet.so
7f36bcfac000-7f36bcfad000 rw-p 00016000 00:15 1375668 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libnet.so
7f36bcfad000-7f36bcfae000 ---p 00000000 00:00 0
7f36bcfae000-7f36bcfb1000 ---p 00000000 00:00 0
7f36bcfb1000-7f36bd0ae000 rw-p 00000000 00:00 0
7f36bd0ae000-7f36bd0af000 ---p 00000000 00:00 0
7f36bd0af000-7f36bd0b2000 ---p 00000000 00:00 0
7f36bd0b2000-7f36bd1af000 rw-p 00000000 00:00 0
7f36bd1af000-7f36bd1b2000 ---p 00000000 00:00 0
7f36bd1b2000-7f36c1000000 rw-p 00000000 00:00 0
7f36c1000000-7f36c1270000 rwxp 00000000 00:00 0
7f36c1270000-7f36d0000000 ---p 00000000 00:00 0
7f36d0000000-7f36d054b000 rw-p 00000000 00:00 0
7f36d054b000-7f36d4000000 ---p 00000000 00:00 0
7f36d40df000-7f36d40e1000 r--s 0001a000 00:15 323413 /opt/intellij-idea-ultimate-edition/lib/idea_rt.jar
7f36d40e1000-7f36d40e3000 r--s 00003000 00:15 1717238 /home/joachim/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar
7f36d40e3000-7f36d40e9000 r--s 00015000 00:15 2108645 /home/joachim/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.61/kotlin-stdlib-common-1.2.61.jar
7f36d40e9000-7f36d40f9000 r--s 000db000 00:15 2108625 /home/joachim/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.2.61/kotlin-stdlib-1.2.61.jar
7f36d40f9000-7f36d410c000 r--s 00345000 00:15 1375490 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/resources.jar
7f36d410c000-7f36d411f000 r--s 000d6000 00:15 1375394 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/plugin.jar
7f36d411f000-7f36d4124000 r--s 0009d000 00:15 1375509 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/jsse.jar
7f36d4124000-7f36d4129000 r--s 00084000 00:15 1375369 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/jfr.jar
7f36d4129000-7f36d4144000 r--s 0020c000 00:15 1375370 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/deploy.jar
7f36d4144000-7f36d4147000 ---p 00000000 00:00 0
7f36d4147000-7f36d4245000 rw-p 00000000 00:00 0
7f36d4245000-7f36d452a000 r--p 00000000 00:15 2148554 /usr/lib/locale/locale-archive
7f36d452a000-7f36d452d000 ---p 00000000 00:00 0
7f36d452d000-7f36d462b000 rw-p 00000000 00:00 0
7f36d462b000-7f36d462e000 ---p 00000000 00:00 0
7f36d462e000-7f36d472c000 rw-p 00000000 00:00 0
7f36d472c000-7f36d472d000 ---p 00000000 00:00 0
7f36d472d000-7f36d578b000 rw-p 00000000 00:00 0
7f36d578b000-7f36d5965000 r--s 03d68000 00:15 1375452 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/rt.jar
7f36d5965000-7f36d5f76000 rw-p 00000000 00:00 0
7f36d5f76000-7f36d6236000 ---p 00000000 00:00 0
7f36d6236000-7f36d6632000 rw-p 00000000 00:00 0
7f36d6632000-7f36d6633000 ---p 00000000 00:00 0
7f36d6633000-7f36d6733000 rw-p 00000000 00:00 0
7f36d6733000-7f36d6734000 ---p 00000000 00:00 0
7f36d6734000-7f36d6834000 rw-p 00000000 00:00 0
7f36d6834000-7f36d6835000 ---p 00000000 00:00 0
7f36d6835000-7f36d6935000 rw-p 00000000 00:00 0
7f36d6935000-7f36d6936000 ---p 00000000 00:00 0
7f36d6936000-7f36d6ad4000 rw-p 00000000 00:00 0
7f36d6ad4000-7f36d6cc4000 ---p 00000000 00:00 0
7f36d6cc4000-7f36d6d62000 rw-p 00000000 00:00 0
7f36d6d62000-7f36d6f52000 ---p 00000000 00:00 0
7f36d6f52000-7f36d7099000 rw-p 00000000 00:00 0
7f36d7099000-7f36d70a4000 rw-p 00000000 00:00 0
7f36d70a4000-7f36d745a000 ---p 00000000 00:00 0
7f36d745a000-7f36d7475000 r-xp 00000000 00:15 1375664 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libzip.so
7f36d7475000-7f36d7675000 ---p 0001b000 00:15 1375664 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libzip.so
7f36d7675000-7f36d7676000 rw-p 0001b000 00:15 1375664 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libzip.so
7f36d7676000-7f36d7680000 r-xp 00000000 00:15 1375673 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libinstrument.so
7f36d7680000-7f36d787f000 ---p 0000a000 00:15 1375673 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libinstrument.so
7f36d787f000-7f36d7880000 rw-p 00009000 00:15 1375673 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libinstrument.so
7f36d7880000-7f36d78ab000 r-xp 00000000 00:15 1375658 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libjava.so
7f36d78ab000-7f36d7aaa000 ---p 0002b000 00:15 1375658 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libjava.so
7f36d7aaa000-7f36d7aac000 rw-p 0002a000 00:15 1375658 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libjava.so
7f36d7aac000-7f36d7ab9000 r-xp 00000000 00:15 1375663 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libverify.so
7f36d7ab9000-7f36d7cb9000 ---p 0000d000 00:15 1375663 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libverify.so
7f36d7cb9000-7f36d7cbb000 rw-p 0000d000 00:15 1375663 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/libverify.so
7f36d7cbb000-7f36d7cbd000 r--p 00000000 00:15 2147897 /usr/lib/librt-2.28.so
7f36d7cbd000-7f36d7cc1000 r-xp 00002000 00:15 2147897 /usr/lib/librt-2.28.so
7f36d7cc1000-7f36d7cc3000 r--p 00006000 00:15 2147897 /usr/lib/librt-2.28.so
7f36d7cc3000-7f36d7cc4000 r--p 00007000 00:15 2147897 /usr/lib/librt-2.28.so
7f36d7cc4000-7f36d7cc5000 rw-p 00008000 00:15 2147897 /usr/lib/librt-2.28.so
7f36d7cc5000-7f36d7cc6000 ---p 00000000 00:00 0
7f36d7cc6000-7f36d7cc9000 ---p 00000000 00:00 0
7f36d7cc9000-7f36d7dc6000 rw-p 00000000 00:00 0
7f36d7dc6000-7f36d7dd3000 r--p 00000000 00:15 2147860 /usr/lib/libm-2.28.so
7f36d7dd3000-7f36d7e74000 r-xp 0000d000 00:15 2147860 /usr/lib/libm-2.28.so
7f36d7e74000-7f36d7f49000 r--p 000ae000 00:15 2147860 /usr/lib/libm-2.28.so
7f36d7f49000-7f36d7f4a000 r--p 00182000 00:15 2147860 /usr/lib/libm-2.28.so
7f36d7f4a000-7f36d7f4b000 rw-p 00183000 00:15 2147860 /usr/lib/libm-2.28.so
7f36d7f4b000-7f36d8c24000 r-xp 00000000 00:15 1375639 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/server/libjvm.so
7f36d8c24000-7f36d8e23000 ---p 00cd9000 00:15 1375639 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/server/libjvm.so
7f36d8e23000-7f36d8efd000 rw-p 00cd8000 00:15 1375639 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/amd64/server/libjvm.so
7f36d8efd000-7f36d8f4a000 rw-p 00000000 00:00 0
7f36d8f4a000-7f36d8f6c000 r--p 00000000 00:15 2147845 /usr/lib/libc-2.28.so
7f36d8f6c000-7f36d90b7000 r-xp 00022000 00:15 2147845 /usr/lib/libc-2.28.so
7f36d90b7000-7f36d9103000 r--p 0016d000 00:15 2147845 /usr/lib/libc-2.28.so
7f36d9103000-7f36d9104000 ---p 001b9000 00:15 2147845 /usr/lib/libc-2.28.so
7f36d9104000-7f36d9108000 r--p 001b9000 00:15 2147845 /usr/lib/libc-2.28.so
7f36d9108000-7f36d910a000 rw-p 001bd000 00:15 2147845 /usr/lib/libc-2.28.so
7f36d910a000-7f36d910e000 rw-p 00000000 00:00 0
7f36d910e000-7f36d910f000 r--p 00000000 00:15 2147854 /usr/lib/libdl-2.28.so
7f36d910f000-7f36d9110000 r-xp 00001000 00:15 2147854 /usr/lib/libdl-2.28.so
7f36d9110000-7f36d9111000 r--p 00002000 00:15 2147854 /usr/lib/libdl-2.28.so
7f36d9111000-7f36d9112000 r--p 00002000 00:15 2147854 /usr/lib/libdl-2.28.so
7f36d9112000-7f36d9113000 rw-p 00003000 00:15 2147854 /usr/lib/libdl-2.28.so
7f36d9113000-7f36d9129000 r-xp 00000000 00:15 1375277 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/lib/amd64/jli/libjli.so
7f36d9129000-7f36d9328000 ---p 00016000 00:15 1375277 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/lib/amd64/jli/libjli.so
7f36d9328000-7f36d9329000 rw-p 00015000 00:15 1375277 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/lib/amd64/jli/libjli.so
7f36d9329000-7f36d932f000 r--p 00000000 00:15 2147889 /usr/lib/libpthread-2.28.so
7f36d932f000-7f36d933e000 r-xp 00006000 00:15 2147889 /usr/lib/libpthread-2.28.so
7f36d933e000-7f36d9344000 r--p 00015000 00:15 2147889 /usr/lib/libpthread-2.28.so
7f36d9344000-7f36d9345000 r--p 0001a000 00:15 2147889 /usr/lib/libpthread-2.28.so
7f36d9345000-7f36d9346000 rw-p 0001b000 00:15 2147889 /usr/lib/libpthread-2.28.so
7f36d9346000-7f36d934c000 rw-p 00000000 00:00 0
7f36d934d000-7f36d934e000 r--s 00000000 00:15 1375376 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/management-agent.jar
7f36d934e000-7f36d9350000 r--s 00007000 00:15 1375686 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/jfxswt.jar
7f36d9350000-7f36d9353000 r--s 0001a000 00:15 1375684 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/jce.jar
7f36d9353000-7f36d935c000 r--s 0006d000 00:15 1375379 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/javaws.jar
7f36d935c000-7f36d9361000 r--s 002f9000 00:15 1375450 /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/charsets.jar
7f36d9361000-7f36d9369000 rw-s 00000000 00:2d 1594683 /tmp/hsperfdata_joachim/28135
7f36d9369000-7f36d936c000 r--p 00000000 00:15 2147882 /usr/lib/libnss_files-2.28.so
7f36d936c000-7f36d9373000 r-xp 00003000 00:15 2147882 /usr/lib/libnss_files-2.28.so
7f36d9373000-7f36d9376000 r--p 0000a000 00:15 2147882 /usr/lib/libnss_files-2.28.so
7f36d9376000-7f36d9377000 r--p 0000c000 00:15 2147882 /usr/lib/libnss_files-2.28.so
7f36d9377000-7f36d9378000 rw-p 0000d000 00:15 2147882 /usr/lib/libnss_files-2.28.so
7f36d9378000-7f36d937f000 rw-p 00000000 00:00 0
7f36d937f000-7f36d9380000 ---p 00000000 00:00 0
7f36d9380000-7f36d9382000 r--p 00000000 00:15 2147834 /usr/lib/ld-2.28.so
7f36d9382000-7f36d93a1000 r-xp 00002000 00:15 2147834 /usr/lib/ld-2.28.so
7f36d93a1000-7f36d93a9000 r--p 00021000 00:15 2147834 /usr/lib/ld-2.28.so
7f36d93a9000-7f36d93aa000 r--p 00028000 00:15 2147834 /usr/lib/ld-2.28.so
7f36d93aa000-7f36d93ab000 rw-p 00029000 00:15 2147834 /usr/lib/ld-2.28.so
7f36d93ab000-7f36d93ac000 rw-p 00000000 00:00 0
7ffeb7f11000-7ffeb7f32000 rw-p 00000000 00:00 0 [stack]
7ffeb7f4f000-7ffeb7f52000 r--p 00000000 00:00 0 [vvar]
7ffeb7f52000-7ffeb7f54000 r-xp 00000000 00:00 0 [vdso]
VM Arguments:
jvm_args: -javaagent:/opt/intellij-idea-ultimate-edition/lib/idea_rt.jar=33383:/opt/intellij-idea-ultimate-edition/bin -Dfile.encoding=UTF-8
java_command: be.nielandt.CrossSolverKt
java_class_path (initial): /home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/charsets.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/deploy.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/ext/cldrdata.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/ext/dnsns.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/ext/jaccess.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/ext/jfxrt.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/ext/localedata.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/ext/nashorn.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/ext/sunec.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/ext/sunjce_provider.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/ext/sunpkcs11.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/ext/zipfs.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/javaws.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/jce.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/jfr.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/jfxswt.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/jsse.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/management-agent.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/plugin.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/resources.jar:/home/joachim/.sdkman/candidates/java/8.0.171-oracle/jre/lib/rt.jar:/home/joachim/Documents/workspaces/idea/crubecross/target/classes:/home/joachim/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.2.61/kotlin-stdlib-1.2.61.jar:/home/joachim/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.2.61/kotlin-stdlib-common-1.2.61.jar:/home/joachim/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar:/opt/intellij-idea-ultimate-edition/lib/idea_rt
Launcher Type: SUN_STANDARD
Environment Variables:
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
SHELL=/bin/bash
DISPLAY=:0
Signal Handlers:
SIGSEGV: [libjvm.so+0xad0890], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGBUS: [libjvm.so+0xad0890], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGFPE: [libjvm.so+0x928640], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGPIPE: [libjvm.so+0x928640], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.so+0x928640], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libjvm.so+0x928640], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR2: [libjvm.so+0x929ea0], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: [libjvm.so+0x92b2a0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGINT: [libjvm.so+0x92b2a0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGTERM: [libjvm.so+0x92b2a0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGQUIT: [libjvm.so+0x92b2a0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
--------------- S Y S T E M ---------------
OS:NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
ID_LIKE=archlinux
ANSI_COLOR="0;36"
HOME_URL="https://www.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
uname:Linux 4.16.8-1-ARCH #1 SMP PREEMPT Wed May 9 11:25:02 UTC 2018 x86_64
libc:glibc 2.28 NPTL 2.28
rlimit: STACK 8192k, CORE infinity, NPROC 31319, NOFILE 4096, AS infinity
load average:2.97 1.16 0.84
/proc/meminfo:
MemTotal: 8029856 kB
MemFree: 144480 kB
MemAvailable: 99380 kB
Buffers: 12 kB
Cached: 173012 kB
SwapCached: 0 kB
Active: 7407900 kB
Inactive: 119516 kB
Active(anon): 7369440 kB
Inactive(anon): 35120 kB
Active(file): 38460 kB
Inactive(file): 84396 kB
Unevictable: 48 kB
Mlocked: 48 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 4288 kB
Writeback: 136 kB
AnonPages: 7354636 kB
Mapped: 106172 kB
Shmem: 49972 kB
Slab: 140472 kB
SReclaimable: 57844 kB
SUnreclaim: 82628 kB
KernelStack: 15312 kB
PageTables: 65144 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 4014928 kB
Committed_AS: 13987672 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 6144 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 2478460 kB
DirectMap2M: 5769216 kB
CPU:total 4 (initial active 4) (2 cores per cpu, 2 threads per core) family 6 model 37 stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, aes, clmul, ht, tsc, tscinvbit
/proc/cpuinfo:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i7 CPU M 640 @ 2.80GHz
stepping : 5
microcode : 0x3
cpu MHz : 1962.099
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt aes lahf_lm pti tpr_shadow vnmi flexpriority ept vpid dtherm ida arat
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 5588.73
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i7 CPU M 640 @ 2.80GHz
stepping : 5
microcode : 0x3
cpu MHz : 1906.000
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 2
apicid : 4
initial apicid : 4
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt aes lahf_lm pti tpr_shadow vnmi flexpriority ept vpid dtherm ida arat
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 5588.73
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i7 CPU M 640 @ 2.80GHz
stepping : 5
microcode : 0x3
cpu MHz : 1529.816
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt aes lahf_lm pti tpr_shadow vnmi flexpriority ept vpid dtherm ida arat
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 5588.73
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i7 CPU M 640 @ 2.80GHz
stepping : 5
microcode : 0x3
cpu MHz : 2350.350
cache size : 4096 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 2
apicid : 5
initial apicid : 5
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt aes lahf_lm pti tpr_shadow vnmi flexpriority ept vpid dtherm ida arat
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 5588.73
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Memory: 4k page, physical 8029856k(144480k free), swap 0k(0k free)
vm_info: Java HotSpot(TM) 64-Bit Server VM (25.171-b11) for linux-amd64 JRE (1.8.0_171-b11), built on Mar 28 2018 17:07:08 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
time: Sun Aug 26 22:41:23 2018
elapsed time: 12 seconds (0d 0h 0m 12s)

View File

@ -75,12 +75,12 @@ fun main(args: Array<String>) {
val usedModel = EdgeModel(moves) val usedModel = EdgeModel(moves)
println(usedModel) println(usedModel)
// val baseSolve = CrossSolverBase().solveCrossesTimed(scrambledModel) // val baseSolve = CrossSolverBase().solveCrossesTimed(usedModel)
// CrossSolver.printResults(baseSolve) // CrossSolver.printResults(baseSolve)
val upgradedSolve = CrossSolverUpgraded().solveCrossesTimed(usedModel) val upgradedSolve = CrossSolverUpgraded().solveCrossesTimed(usedModel)
CrossSolver.printResults(upgradedSolve) CrossSolver.printResults(upgradedSolve)
//
val upgradedSolveSkip = CrossSolverUpgradedSkip().solveCrossesTimed(usedModel) val upgradedSolveSkip = CrossSolverUpgradedSkip().solveCrossesTimed(usedModel)
CrossSolver.printResults(upgradedSolveSkip) CrossSolver.printResults(upgradedSolveSkip)

View File

@ -1,6 +1,7 @@
package be.nielandt package be.nielandt
import be.nielandt.counter.CounterBasic import be.nielandt.counter.CounterBasic
import be.nielandt.counter.CounterTieredFactory
class CrossSolverBase : CrossSolver() { class CrossSolverBase : CrossSolver() {
/** /**
@ -12,7 +13,7 @@ class CrossSolverBase : CrossSolver() {
for (moveCount in 1..8) { for (moveCount in 1..8) {
// build a counter of moveCount big // build a counter of moveCount big
println("allCrossMoveCount basic doing $moveCount") println("allCrossMoveCount basic doing $moveCount")
val counter = CounterBasic(moveCount) val counter = CounterTieredFactory.create(moveCount)
// count up, each state of the counter corresponds to a combination of moves // count up, each state of the counter corresponds to a combination of moves
do { do {

View File

@ -1,5 +1,6 @@
package be.nielandt package be.nielandt
import be.nielandt.counter.CounterBuffer
import be.nielandt.counter.CounterSkip import be.nielandt.counter.CounterSkip
/** /**

View File

@ -54,6 +54,10 @@ fun decodeMove(i: Int): String {
} }
} }
fun classOf(move: Int): Int {
return (move%6) / 2
}
fun parseMoves(s: String): List<Int> { fun parseMoves(s: String): List<Int> {
return s.split(" ", ",", ";").filter { it?.length > 0 }.map { parseMove(it) }.toList() return s.split(" ", ",", ";").filter { it?.length > 0 }.map { parseMove(it) }.toList()
} }

View File

@ -1,5 +1,9 @@
package be.nielandt.counter package be.nielandt.counter
import be.nielandt.decodeMove
import java.time.Duration
import java.time.Instant
/** /**
* Counter for X digits of a given base. * Counter for X digits of a given base.
*/ */
@ -14,7 +18,7 @@ open abstract class Counter(size: Int, val base: Int = 18) {
* The last (highest significance) index that overflowed and has been changed in the counter. Could be null, if it never overflowed. * The last (highest significance) index that overflowed and has been changed in the counter. Could be null, if it never overflowed.
* Start with saying that everything changed. * Start with saying that everything changed.
*/ */
var lastModifiedIndex: Int = 0 var lastModifiedIndex: Int = 0
/** /**
* Increase the counter one step. True if it succeeded and a new value is there, false if we've reached the end. * Increase the counter one step. True if it succeeded and a new value is there, false if we've reached the end.
@ -40,9 +44,31 @@ open abstract class Counter(size: Int, val base: Int = 18) {
/** /**
* Have we reached the maximum value? * Have we reached the maximum value?
*/ */
fun atMax(): Boolean { open fun atMax(): Boolean {
return counter.all { return counter.any { it >= base } || counter.all {
it == this.base - 1 it == this.base - 1
} }
} }
fun toStringMove(): String {
return counter.joinToString(", ") { decodeMove(it) }
}
}
fun main(args: Array<String>) {
val size = 7
// make a counter and see how many iterations it did
testCounter(CounterBasic(size))
testCounter(CounterSkip(size))
testCounter(CounterBuffer(size))
}
private fun testCounter(c: Counter) {
var l: Long = 0
val now = Instant.now()
while (c.increase()) {
l++
}
val seconds = Duration.between(now, Instant.now()).seconds
println("${c.javaClass} l = ${l.toDouble()/1_000_000}m ${seconds}s")
} }

View File

@ -1,6 +1,6 @@
package be.nielandt.counter package be.nielandt.counter
import java.util.* import be.nielandt.classOf
/** /**
* Counter for X digits of a given base. Skips situations where faces are the same. * Counter for X digits of a given base. Skips situations where faces are the same.
@ -28,11 +28,36 @@ class CounterBasic(size: Int) : Counter(size, 18) {
} }
return true return true
} }
}
fun main(args: Array<String>) { fun isValid(): Boolean {
val counterSkip = CounterSkip(4) return !hasSeries() && !hasConsecutiveFaces()
while (counterSkip.increase()) {
println("counterSkip.counter = ${Arrays.toString(counterSkip.counter)}")
} }
private fun hasConsecutiveFaces(): Boolean {
for(i in 1 until counter.size) {
if(counter[i]%6 == counter[i-1]%6)
return true
}
return false
}
private fun hasSeries(): Boolean {
var currentClass = classOf(counter.last())
var length = 1
for(i in 1 until counter.size) {
if(classOf(counter[i])==currentClass) {
length++
} else {
// we hit the end, if the length exceeds 3, return the last index that matched the series
if(length>=3) {
return true
}
length = 1
currentClass = classOf(counter[i])
}
}
return false
}
} }

View File

@ -0,0 +1,149 @@
package be.nielandt.counter
import be.nielandt.classOf
/**
* Counter for X digits of a given base. Skips situations where faces are the same.
*/
class CounterBuffer(size: Int) : Counter(size, 18) {
val buffer = mutableListOf<Array<Int>>()
init {
// initialise the buffer of valid counters
val counterBasic = CounterBasic(size)
do {
if (counterBasic.isValid()) {
buffer.add(counterBasic.counter)
}
} while (counterBasic.increase())
println("Init of counter buffer, ${buffer.size} valid combos")
}
// /**
// * Increase the counter.
// *
// * @return true if the increase happened, false if we hit the ceiling.
// */
// override fun increase(): Boolean {
// var lmi = lastModifiedIndex
// var last = super.increase()
// lmi = min(lastModifiedIndex, lmi)
// // are we having an invalid situation? this would be two consecutive moves on the same face
// while (
// (containsConsecutiveSameFaceMoves() && !atMax()) ||
// (this.counter?.size > 1 && !atMax() && containsPalindrome())) {
// last = super.increase()
// lmi = min(lastModifiedIndex, lmi)
// }
// // we have to set the lastmodified index to the lowest point that it got to... otherwise we might be skipping some cases
// this.lastModifiedIndex = lmi
// return last
// }
override fun increase(): Boolean {
var increasing = true
// while we're increasing, start from scratch (from back to front)
while (increasing) {
// do old school counter increase, with overflow
for (i in this.counter.size - 1 downTo 0) {
// increase the current digit by 1
this.counter[i]++
// keep track of the last modified index!
this.lastModifiedIndex = i
// if we've hit the maximum value on the first digit, return false
if (this.counter[i] == base && i == 0)
return false
// have we overflowed?
if (this.counter[i] == base) {
this.counter[i] = 0
} else {
// we didn't overflow, so we have increase and we can stop the regular increase
break
}
}
// old school increment has completed... can we speed up the process somehow?
val lastSeriesStart = findLastSeries()
if (lastSeriesStart != -1) {
// floor the rest of the counter with sane values, starting from lastSeriesStart+2 (chop off the third value)
floorCounterWithSaneValues(lastSeriesStart + 2)
} else {
// didn't do anything crazy, stop the increase
increasing = false
}
}
return !atMax()
}
/**
* If you have X X A B C D X X you can potentially
*/
private fun floorCounterWithSaneValues(firstIndexToChange: Int) {
// the class of the item to change
val currentClass = classOf(counter[firstIndexToChange])
// each item
for (i in firstIndexToChange until counter.size) {
// this value is the lowest valid move available.
// 1. cannot lengthen a series,
// 2. cannot be the same face as the previous value
}
}
/**
* Find the last series in the counter, if it's there. -1 if not found, index of the start of the series if found.
*/
private fun findLastSeries(): Int {
var currentClass = classOf(counter.last())
var length = 1
for (i in counter.size - 2 downTo 0) {
if (classOf(counter[i]) == currentClass) {
length++
} else {
// we hit the end, if the length exceeds 3, return the last index that matched the series
if (length >= 3) {
return i + 1
}
length = 1
currentClass = classOf(counter[i])
}
}
// we processed everything, perhaps there's a series waiting, starting at index 0?
if (length >= 3)
return 0
// nothing found
return -1
}
private fun goBackAndFindClassSeries(startIndex: Int): Boolean {
// if we don't have 3+ elements before startindex, just ignore this step
if (startIndex < 2)
return false
val theClass = classOf(this.counter[startIndex])
val c1 = classOf(this.counter[startIndex - 1])
val c2 = classOf(this.counter[startIndex - 2])
return theClass == c1 && c1 == c2
}
/**
* Are there two moves in the current counter / chain that act on the same face? This would be F+F2 for example.
*/
private fun containsConsecutiveSameFaceMoves(): Boolean {
for (i in 1 until this.counter.size) {
// perhaps is a speedup
if (this.counter[i] % 6 == this.counter[i - 1] % 6)
return true
}
return false
}
}
fun main(args: Array<String>) {
val counterSkip = CounterBuffer(7)
println(counterSkip)
}

View File

@ -36,7 +36,7 @@ class CounterSkip(size: Int) : Counter(size, 18) {
this.counter[i]++ this.counter[i]++
// if we've hit the maximum value on the first digit, return false // if we've hit the maximum value on the first digit, return false
if(this.counter[i]==base && i == 0) if (this.counter[i] == base && i == 0)
return false return false
this.lastModifiedIndex = i this.lastModifiedIndex = i

View File

@ -0,0 +1,207 @@
package be.nielandt.counter
import be.nielandt.decodeMove
/**
* Try a multi-tier counter.
* 1) tier1 : axes / move classes (FB/UD/RL) -> three classes, but multiple sizes (1 or 2) possible
* 2) tier2: each block of class (22, 11, 2, 11, 0, ...) needs to be expanded into the full range of related moves
*/
class CounterTiered : Counter {
private val moveIterator: Iterator<Array<Int>>
override fun increase(): Boolean {
if (!this.moveIterator.hasNext())
return false
this.counter = this.moveIterator.next()
return true
}
constructor(size: Int) : super(size, 18) {
this.moveIterator = moveIterator().iterator()
this.increase()
}
override fun atMax(): Boolean {
return !this.moveIterator.hasNext()
}
private class MoveIterator(val classes: List<List<Int>>) : Iterator<Array<Int>> {
var currentClassIndex = 0
lateinit var currentMoves: Iterator<Array<Int>>
init {
// set up the first class
doClass(currentClassIndex)
}
private fun doClass(index: Int) {
val fillIn = fillIn(0, classes[index], Array(classes.size) { 0 })
currentMoves = fillIn.toList().iterator()
}
override fun next(): Array<Int> {
val next = currentMoves.next()
if (!currentMoves.hasNext()) {
nextClass()
}
return next
}
private fun nextClass() {
if (currentClassIndex < classes.size) {
currentClassIndex++
doClass(currentClassIndex)
}
}
override fun hasNext(): Boolean {
return currentClassIndex < classes.size && currentMoves.hasNext()
}
}
fun moveIterator(): Iterator<Array<Int>> {
return MoveIterator(classIterator()).iterator()
}
/**
* These are the classes (FB/UD/RL), correctly configured (no illegal combinations here)
*/
fun classIterator(): List<List<Int>> {
val classes = appendRandomClass(this.counter.size, listOf())
return classes
}
/**
* Helper function for classIterator()
*/
private fun appendRandomClass(size: Int, base: List<Int>): List<List<Int>> {
val result = mutableListOf<List<Int>>()
when {
base.size < size - 1 -> // add all classes, but don't repeat a group already there
(0..2).filter { if (base.isNotEmpty()) it != base.last() else true }
.forEach { theClass ->
// and both amounts, 1+2
(1..2).forEach { amount ->
val l = base.toMutableList()
for (i in 1..amount) {
l.add(theClass)
}
result.addAll(appendRandomClass(size, l))
}
}
base.size == size -> {
// we're done here
result.add(base)
}
base.size == size - 1 -> // the base is not empty, only add class that is not at the end of the base list
(0..2).filter { if (base.isEmpty()) true else it != base.last() }.forEach { theClass ->
val l = base.toMutableList()
l.add(theClass)
result.add(l)
}
}
return result
}
}
class CounterTieredFactory {
companion object {
fun create(size: Int): CounterTiered {
return CounterTiered(size)
}
}
}
fun main(args: Array<String>) {
var count = 0
CounterTieredFactory.create(4).classIterator().forEach {
println("it = ${it}")
count++
}
println("count = ${count}")
// CounterTieredFactory.create(7).moveIterator().forEach {
// println("Arrays.tostring(it) = ${Arrays.toString(it)} ${it.map { decodeMove(it) }.toList()}")
// count++
// }
// println("count = ${count}")
}
/**
* Expand the class ints into the full range of moves.
*
* class 0: 0,1,6,7,12,13
* class 1: 2,3,8,9,14,15
*
const val F = 0
const val B = 1
const val U = 2
const val D = 3
const val L = 4
const val R = 5
const val F_ = 6
const val B_ = 7
const val U_ = 8
const val D_ = 9
const val L_ = 10
const val R_ = 11
const val F2 = 12
const val B2 = 13
const val U2 = 14
const val D2 = 15
const val L2 = 16
const val R2 = 17
*/
fun fillIn(index: Int, classes: List<Int>, moveList: Array<Int>): List<Array<Int>> {
val result = mutableListOf<Array<Int>>()
// if the movelist is complete, finish it
if (index == classes.size) {
return listOf(moveList)
}
// if index == 0, all possible moves are here
if (index == 0 || classes[index] != classes[index - 1]) {
(0..1).forEach { plus ->
val move = (classes[index] * 2) + plus
(0..12 step 6).forEach { extra ->
val decodeMove = decodeMove(move + extra)
val copyOf = moveList.copyOf()
copyOf[index] = move + extra
result.addAll(fillIn(index + 1, classes, copyOf))
}
}
}
// if we're doing a repeat of the same class
else if (classes[index] == classes[index - 1]) {
// we're considering exactly the same class as the move before... watch it! can't add a move on the same face
// what's the face of the previous one?
val face = moveList[index - 1] % 6
// now set the new move to be anything but a move of that face
val newFace = if (face % 2 == 0) {
// the other face should be the uneven one -> add one to the values
face + 1
} else {
// subtract one from the values
face - 1
}
// now add the three possible moves that remain to us
(0..12 step 6).map { it + newFace }.forEach { move ->
val copyOf = moveList.copyOf()
copyOf[index] = move
result.addAll(fillIn(index + 1, classes, copyOf))
}
} else {
throw IllegalStateException()
}
return result
}