Created
April 3, 2024 19:00
-
-
Save davispuh/cff8099120b80c9aa69c775e2e89e181 to your computer and use it in GitHub Desktop.
D lang gc_query() bottleneck
This file contains hidden or 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
Thread 10 (Thread 0x7790d18006c0 (LWP 145629) "prog"): | |
#0 0x00007790db99f335 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7790d17fa010, rem=0x7790d17fa020) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48 | |
#1 0x00007790db9aa3e7 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 | |
#2 0x0000631608891a8c in core.thread.osthread.Thread.sleep(core.time.Duration) () | |
#3 0x00006316088b87f0 in core.internal.spinlock.SpinLock.yield(ulong) shared () | |
#4 0x00006316088b879a in core.internal.spinlock.SpinLock.lock() shared () | |
#5 0x00006316088c4343 in core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), core.internal.gc.impl.conservative.gc.mallocTime, core.internal.gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) () | |
#6 0x00006316088bbe26 in core.internal.gc.impl.conservative.gc.ConservativeGC.qalloc(ulong, uint, scope const(TypeInfo)) () | |
#7 0x000063160887690f in gc_qalloc () | |
#8 0x0000631608894192 in rt.lifetime.__arrayAlloc(ulong, ref core.memory.BlkInfo_, scope const(TypeInfo), const(TypeInfo)) () | |
#9 0x000063160887c696 in _d_arrayappendcTX () | |
#10 0x0000631608833419 in core.internal.array.appending._d_arrayappendcTX!(char[], char)._d_arrayappendcTX(scope return ref char[], ulong) () | |
#11 0x0000631608855be7 in core.internal.array.appending._d_arrayappendT!(char[], char)._d_arrayappendT(scope return ref char[], scope char[]) () | |
Thread 9 (Thread 0x7790d34006c0 (LWP 145628) "prog"): | |
#0 0x00007790db99f335 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7790d33f8bb0, rem=0x7790d33f8bc0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48 | |
#1 0x00007790db9aa3e7 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 | |
#2 0x0000631608891a8c in core.thread.osthread.Thread.sleep(core.time.Duration) () | |
#3 0x00006316088b87f0 in core.internal.spinlock.SpinLock.yield(ulong) shared () | |
#4 0x00006316088b879a in core.internal.spinlock.SpinLock.lock() shared () | |
#5 0x00006316088c4aef in core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.queryNoSync(void*), core.internal.gc.impl.conservative.gc.otherTime, core.internal.gc.impl.conservative.gc.numOthers, void*).runLocked(ref void*) () | |
#6 0x00006316088bcd4f in core.internal.gc.impl.conservative.gc.ConservativeGC.query(void*) () | |
#7 0x000063160888de84 in gc_query () | |
#8 0x000063160887bf61 in _d_arrayappendcTX () | |
Thread 8 (Thread 0x7790d3e006c0 (LWP 145627) "prog"): | |
#0 0x00007790db99f335 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7790d3dfa0e0, rem=0x7790d3dfa0f0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48 | |
#1 0x00007790db9aa3e7 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 | |
#2 0x0000631608891a8c in core.thread.osthread.Thread.sleep(core.time.Duration) () | |
#3 0x00006316088b87f0 in core.internal.spinlock.SpinLock.yield(ulong) shared () | |
#4 0x00006316088b879a in core.internal.spinlock.SpinLock.lock() shared () | |
#5 0x00006316088c4aef in core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.queryNoSync(void*), core.internal.gc.impl.conservative.gc.otherTime, core.internal.gc.impl.conservative.gc.numOthers, void*).runLocked(ref void*) () | |
#6 0x00006316088bcd4f in core.internal.gc.impl.conservative.gc.ConservativeGC.query(void*) () | |
#7 0x000063160888de84 in gc_query () | |
#8 0x000063160887bf61 in _d_arrayappendcTX () | |
#9 0x0000631608833419 in core.internal.array.appending._d_arrayappendcTX!(char[], char)._d_arrayappendcTX(scope return ref char[], ulong) () | |
#10 0x0000631608855be7 in core.internal.array.appending._d_arrayappendT!(char[], char)._d_arrayappendT(scope return ref char[], scope char[]) () | |
Thread 7 (Thread 0x7790d8e006c0 (LWP 145626) "prog"): | |
#0 0x00007790db99f335 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7790d8df8bb0, rem=0x7790d8df8bc0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48 | |
#1 0x00007790db9aa3e7 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 | |
#2 0x0000631608891a8c in core.thread.osthread.Thread.sleep(core.time.Duration) () | |
#3 0x00006316088b87f0 in core.internal.spinlock.SpinLock.yield(ulong) shared () | |
#4 0x00006316088b879a in core.internal.spinlock.SpinLock.lock() shared () | |
#5 0x00006316088c4aef in core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.queryNoSync(void*), core.internal.gc.impl.conservative.gc.otherTime, core.internal.gc.impl.conservative.gc.numOthers, void*).runLocked(ref void*) () | |
#6 0x00006316088bcd4f in core.internal.gc.impl.conservative.gc.ConservativeGC.query(void*) () | |
#7 0x000063160888de84 in gc_query () | |
#8 0x000063160887bf61 in _d_arrayappendcTX () | |
#9 0x0000631608833419 in core.internal.array.appending._d_arrayappendcTX!(char[], char)._d_arrayappendcTX(scope return ref char[], ulong) () | |
#10 0x0000631608855be7 in core.internal.array.appending._d_arrayappendT!(char[], char)._d_arrayappendT(scope return ref char[], scope char[]) () | |
Thread 6 (Thread 0x7790d98006c0 (LWP 145625) "prog"): | |
#0 0x00007790db99f335 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7790d97fa0e0, rem=0x7790d97fa0f0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48 | |
#1 0x00007790db9aa3e7 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 | |
#2 0x0000631608891a8c in core.thread.osthread.Thread.sleep(core.time.Duration) () | |
#3 0x00006316088b87f0 in core.internal.spinlock.SpinLock.yield(ulong) shared () | |
#4 0x00006316088b879a in core.internal.spinlock.SpinLock.lock() shared () | |
#5 0x00006316088c4aef in core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.queryNoSync(void*), core.internal.gc.impl.conservative.gc.otherTime, core.internal.gc.impl.conservative.gc.numOthers, void*).runLocked(ref void*) () | |
#6 0x00006316088bcd4f in core.internal.gc.impl.conservative.gc.ConservativeGC.query(void*) () | |
#7 0x000063160888de84 in gc_query () | |
#8 0x000063160887bf61 in _d_arrayappendcTX () | |
#9 0x0000631608833419 in core.internal.array.appending._d_arrayappendcTX!(char[], char)._d_arrayappendcTX(scope return ref char[], ulong) () | |
#10 0x0000631608855be7 in core.internal.array.appending._d_arrayappendT!(char[], char)._d_arrayappendT(scope return ref char[], scope char[]) () | |
Thread 5 (Thread 0x7790da2006c0 (LWP 145624) "prog"): | |
#0 0x00007790db99f335 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7790da1ee970, rem=0x7790da1ee980) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48 | |
#1 0x00007790db9aa3e7 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 | |
#2 0x0000631608891a8c in core.thread.osthread.Thread.sleep(core.time.Duration) () | |
#3 0x00006316088b87f0 in core.internal.spinlock.SpinLock.yield(ulong) shared () | |
#4 0x00006316088b879a in core.internal.spinlock.SpinLock.lock() shared () | |
#5 0x00006316088c4aef in core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.queryNoSync(void*), core.internal.gc.impl.conservative.gc.otherTime, core.internal.gc.impl.conservative.gc.numOthers, void*).runLocked(ref void*) () | |
#6 0x00006316088bcd4f in core.internal.gc.impl.conservative.gc.ConservativeGC.query(void*) () | |
#7 0x000063160888de84 in gc_query () | |
#8 0x000063160887bf61 in _d_arrayappendcTX () | |
#9 0x0000631608833419 in core.internal.array.appending._d_arrayappendcTX!(char[], char)._d_arrayappendcTX(scope return ref char[], ulong) () | |
#10 0x0000631608855be7 in core.internal.array.appending._d_arrayappendT!(char[], char)._d_arrayappendT(scope return ref char[], scope char[]) () | |
Thread 4 (Thread 0x7790d22006c0 (LWP 145623) "prog"): | |
#0 0x00007790db99f335 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7790d21f8bb0, rem=0x7790d21f8bc0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48 | |
#1 0x00007790db9aa3e7 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 | |
#2 0x0000631608891a8c in core.thread.osthread.Thread.sleep(core.time.Duration) () | |
#3 0x00006316088b87f0 in core.internal.spinlock.SpinLock.yield(ulong) shared () | |
#4 0x00006316088b879a in core.internal.spinlock.SpinLock.lock() shared () | |
#5 0x00006316088c4aef in core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.queryNoSync(void*), core.internal.gc.impl.conservative.gc.otherTime, core.internal.gc.impl.conservative.gc.numOthers, void*).runLocked(ref void*) () | |
#6 0x00006316088bcd4f in core.internal.gc.impl.conservative.gc.ConservativeGC.query(void*) () | |
#7 0x000063160888de84 in gc_query () | |
#8 0x000063160887bf61 in _d_arrayappendcTX () | |
#9 0x0000631608833419 in core.internal.array.appending._d_arrayappendcTX!(char[], char)._d_arrayappendcTX(scope return ref char[], ulong) () | |
#10 0x0000631608855be7 in core.internal.array.appending._d_arrayappendT!(char[], char)._d_arrayappendT(scope return ref char[], scope char[]) () | |
Thread 3 (Thread 0x7790dac006c0 (LWP 145622) "prog"): | |
#0 0x00007790db99f335 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7790dabf8ae0, rem=0x7790dabf8af0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48 | |
#1 0x00007790db9aa3e7 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 | |
#2 0x0000631608891a8c in core.thread.osthread.Thread.sleep(core.time.Duration) () | |
#3 0x00006316088b87f0 in core.internal.spinlock.SpinLock.yield(ulong) shared () | |
#4 0x00006316088b879a in core.internal.spinlock.SpinLock.lock() shared () | |
#5 0x00006316088c4343 in core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), core.internal.gc.impl.conservative.gc.mallocTime, core.internal.gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) () | |
#6 0x00006316088bbe26 in core.internal.gc.impl.conservative.gc.ConservativeGC.qalloc(ulong, uint, scope const(TypeInfo)) () | |
#7 0x000063160887690f in gc_qalloc () | |
#8 0x0000631608894192 in rt.lifetime.__arrayAlloc(ulong, ref core.memory.BlkInfo_, scope const(TypeInfo), const(TypeInfo)) () | |
#9 0x000063160887c696 in _d_arrayappendcTX () | |
#10 0x0000631608833419 in core.internal.array.appending._d_arrayappendcTX!(char[], char)._d_arrayappendcTX(scope return ref char[], ulong) () | |
#11 0x0000631608855be7 in core.internal.array.appending._d_arrayappendT!(char[], char)._d_arrayappendT(scope return ref char[], scope char[]) () | |
Thread 2 (Thread 0x7790db6006c0 (LWP 145621) "prog"): | |
#0 0x00006316088be45a in core.internal.gc.impl.conservative.gc.Gcx.smallAlloc(ulong, ref ulong, uint, const(TypeInfo)) () | |
#1 0x00006316088c437d in core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.mallocNoSync(ulong, uint, ref ulong, const(TypeInfo)), core.internal.gc.impl.conservative.gc.mallocTime, core.internal.gc.impl.conservative.gc.numMallocs, ulong, uint, ulong, const(TypeInfo)).runLocked(ref ulong, ref uint, ref ulong, ref const(TypeInfo)) () | |
#2 0x00006316088bbe26 in core.internal.gc.impl.conservative.gc.ConservativeGC.qalloc(ulong, uint, scope const(TypeInfo)) () | |
#3 0x000063160887690f in gc_qalloc () | |
#4 0x0000631608894192 in rt.lifetime.__arrayAlloc(ulong, ref core.memory.BlkInfo_, scope const(TypeInfo), const(TypeInfo)) () | |
#5 0x000063160887c696 in _d_arrayappendcTX () | |
#6 0x0000631608833419 in core.internal.array.appending._d_arrayappendcTX!(char[], char)._d_arrayappendcTX(scope return ref char[], ulong) () | |
#7 0x0000631608855be7 in core.internal.array.appending._d_arrayappendT!(char[], char)._d_arrayappendT(scope return ref char[], scope char[]) () | |
Thread 1 (Thread 0x7790db8c89c0 (LWP 145620) "prog"): | |
#0 0x00007790db99f335 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7ffd1e9eedb0, rem=0x7ffd1e9eedc0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48 | |
#1 0x00007790db9aa3e7 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25 | |
#2 0x0000631608891a8c in core.thread.osthread.Thread.sleep(core.time.Duration) () | |
#3 0x00006316088b87f0 in core.internal.spinlock.SpinLock.yield(ulong) shared () | |
#4 0x00006316088b879a in core.internal.spinlock.SpinLock.lock() shared () | |
#5 0x00006316088c4aef in core.internal.gc.impl.conservative.gc.ConservativeGC.runLocked!(core.internal.gc.impl.conservative.gc.ConservativeGC.queryNoSync(void*), core.internal.gc.impl.conservative.gc.otherTime, core.internal.gc.impl.conservative.gc.numOthers, void*).runLocked(ref void*) () | |
#6 0x00006316088bcd4f in core.internal.gc.impl.conservative.gc.ConservativeGC.query(void*) () | |
#7 0x000063160888de84 in gc_query () | |
#8 0x000063160887bf61 in _d_arrayappendcTX () | |
#9 0x0000631608833419 in core.internal.array.appending._d_arrayappendcTX!(char[], char)._d_arrayappendcTX(scope return ref char[], ulong) () | |
#10 0x0000631608855be7 in core.internal.array.appending._d_arrayappendT!(char[], char)._d_arrayappendT(scope return ref char[], scope char[]) () |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment