Stuff in Druntime That Generates Garbage
A preview of revamped gchunt tool.
Always curious to see what kind of garbage trash druntime may generate.
Module | Artifact | Reason | Possible Fix(es) |
---|---|---|---|
src.core.demangle | append | operator ~= may cause GC allocation 1 | ??? |
src.core.demangle | decodeDmdString | operator ~= may cause GC allocation 1 2 | ??? |
src.core.demangle | doDemangle | setting 'length' may cause GC allocation 1 | ??? |
src.core.demangle | error | 'new' causes GC allocation 1 | ??? |
src.core.demangle | numToString | setting 'length' may cause GC allocation 1 | ??? |
src.core.demangle | parseValue | array literal may cause GC allocation 1 | ??? |
src.core.demangle | this | array literal may cause GC allocation; | ??? |
src.core.exception | onAssertError | 'new' causes GC allocation 1 | ??? |
src.core.exception | onAssertErrorMsg | 'new' causes GC allocation 1 | ??? |
src.core.exception | onFinalizeError | 'new' causes GC allocation 1 | ??? |
src.core.exception | onHiddenFuncError | 'new' causes GC allocation 1 | ??? |
src.core.exception | onRangeError | 'new' causes GC allocation 1 | ??? |
src.core.exception | onSwitchError | 'new' causes GC allocation 1 | ??? |
src.core.exception | onUnicodeError | 'new' causes GC allocation 1 | ??? |
src.core.exception | this | operator ~ may cause GC allocation 1 | ??? |
src.core.exception | toString | operator ~ may cause GC allocation 1 | ??? |
src.core.internal.traits | this | operator ~ may cause GC allocation; | ??? |
src.core.runtime | fixline | 'new' causes GC allocation 1 | ??? |
src.core.runtime | this | operator ~ may cause GC allocation 1 | ??? |
src.core.runtime | toString | operator ~= may cause GC allocation 1 2 | ??? |
src.core.sync.barrier | this | 'new' causes GC allocation 1 2 | ??? |
src.core.sync.condition | Condition.notify | 'new' causes GC allocation 1 | ??? |
src.core.sync.condition | Condition.wait | 'new' causes GC allocation 1 | ??? |
src.core.sync.condition | notifyAll | 'new' causes GC allocation 1 | ??? |
src.core.sync.condition | this | 'new' causes GC allocation 1 2 | ??? |
src.core.sync.mutex | lock_impl | 'new' causes GC allocation 1 | ??? |
src.core.sync.mutex | this | 'new' causes GC allocation 1 2 | ??? |
src.core.sync.mutex | unlock_impl | 'new' causes GC allocation 1 2 | ??? |
src.core.sync.rwmutex | this | 'new' causes GC allocation 1 2 3 4 5 6 7 8 | ??? |
src.core.sync.semaphore | Semaphore.wait | 'new' causes GC allocation 1 | ??? |
src.core.sync.semaphore | notify | 'new' causes GC allocation 1 | ??? |
src.core.sync.semaphore | this | 'new' causes GC allocation 1 2 | ??? |
src.core.sync.semaphore | tryWait | 'new' causes GC allocation 1 | ??? |
src.core.thread | Thread.priority | 'new' causes GC allocation 1 2 | ??? |
src.core.thread | Thread.thread_attachThis | indexing an associative array may cause GC allocation 1 2 | ??? |
src.core.thread | ThreadGroup.create | 'new' causes GC allocation 1 2 | ??? |
src.core.thread | getAll | 'new' causes GC allocation 1 | ??? |
src.core.thread | getStackBottom | 'new' causes GC allocation;
indexing an associative array may cause GC allocation 1 2 3 4 |
??? |
src.core.thread | join | 'new' causes GC allocation 1 2 | ??? |
src.core.thread | op | 'new' causes GC allocation 1 2 3 | ??? |
src.core.thread | run | 'new' causes GC allocation 1 | ??? |
src.core.thread | thread_attachThis | 'new' causes GC allocation 1 | ??? |
src.core.time | _toStringImpl | 'new' causes GC allocation; | ??? |
src.core.time | allAreMutableIntegralTypes._enforceValid | 'new' causes GC allocation; | ??? |
src.core.time | appListSep | operator ~= may cause GC allocation 1 | ??? |
src.core.time | appUnitVal | operator ~= may cause GC allocation 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ??? |
src.core.time | genSplitCall | operator ~= may cause GC allocation 1 2 | ??? |
src.core.time | numToString | operator ~ may cause GC allocation 1 | ??? |
src.core.time | test | operator ~ may cause GC allocation 1 | ??? |
src.core.time | this | operator ~ may cause GC allocation;
operator ~= may cause GC allocation 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
??? |
src.core.time | toString | operator ~ may cause GC allocation 1 | ??? |
src.core.time | unitsAreInDescendingOrder | array literal may cause GC allocation 1 | ??? |
src.etc.linux.memoryerror | sigsegvUserspaceProcess | 'new' causes GC allocation 1 | ??? |
src.etc.linux.memoryerror | this | 'new' causes GC allocation 1 | ??? |
src.gc.gc | removeRange | using closure causes GC allocation 1 | ??? |
src.gc.gc | removeRoot | using closure causes GC allocation 1 | ??? |
src.object_ | Object.opCmp | 'new' causes GC allocation 1 | ??? |
src.object_ | _dup | operator ~= may cause GC allocation 1 | ??? |
src.object_ | _xopCmp | 'new' causes GC allocation 1 | ??? |
src.object_ | _xopEquals | 'new' causes GC allocation 1 | ??? |
src.object_ | compare | operator ~ may cause GC allocation 1 | ??? |
src.object_ | swap | 'new' causes GC allocation 1 | ??? |
src.object_ | this | operator ~ may cause GC allocation; | ??? |
src.object_ | toString | operator ~ may cause GC allocation; | ??? |
src.rt.aaA | _d_assocarrayliteralTX | 'new' causes GC allocation 1 | ??? |
src.rt.aaA | aligntsize | 'new' causes GC allocation 1 2 | ??? |
src.rt.arraycast | _d_arraycast | 'new' causes GC allocation 1 | ??? |
src.rt.cover | _d_cover_register2 | 'new' causes GC allocation;
operator ~ may cause GC allocation; operator ~= may cause GC allocation 1 2 3 4 5 6 |
??? |
src.rt.cover | addExt | operator ~ may cause GC allocation;
operator ~= may cause GC allocation; setting 'length' may cause GC allocation 1 2 3 4 5 |
??? |
src.rt.cover | appendFN | operator ~= may cause GC allocation 1 | ??? |
src.rt.cover | baseName | operator ~= may cause GC allocation 1 | ??? |
src.rt.cover | expandTabs | setting 'length' may cause GC allocation 1 2 | ??? |
src.rt.cover | readFile | 'new' causes GC allocation; | ??? |
src.rt.cover | splitLines | operator ~= may cause GC allocation; | ??? |
src.rt.cover | this | 'new' causes GC allocation 1 2 | ??? |
src.rt.minfo | sort | operator ~= may cause GC allocation 1 2 | ??? |
src.rt.minfo | this | 'new' causes GC allocation; | ??? |
src.rt.util.array | _enforceNoOverlap | operator ~= may cause GC allocation 1 2 3 | ??? |
src.rt.util.array | _enforceSameLength | operator ~= may cause GC allocation 1 2 3 | ??? |
src.rt.util.array | this | 'new' causes GC allocation; | ??? |
src.rt.util.utf | this | operator ~= may cause GC allocation 1 2 | ??? |
src.rt.util.utf | toUTF16 | operator ~= may cause GC allocation; | ??? |
src.rt.util.utf | toUTF16z | operator ~= may cause GC allocation; | ??? |
src.rt.util.utf | toUTF32 | setting 'length' may cause GC allocation 1 2 | ??? |
src.rt.util.utf | toUTF8 | setting 'length' may cause GC allocation 1 2 | ??? |
src.rt.util.utf | toUTFindex | operator ~= may cause GC allocation; | ??? |