Stuff in Druntime That Generates Garbage

From D Wiki
Revision as of 02:57, 12 October 2014 by DmitryOlshansky (talk | contribs) (List druntime GC usage)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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;

setting 'length' may cause GC allocation 1 2 3

???
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;

operator ~= may cause GC allocation 1 2

???
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;

operator ~ may cause GC allocation 1 2 3 4

???
src.core.time allAreMutableIntegralTypes._enforceValid 'new' causes GC allocation;

operator ~ may cause GC allocation 1 2 3

???
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;

operator ~= may cause GC allocation 1 2 3 4

???
src.object_ toString operator ~ may cause GC allocation;

operator ~= may cause GC allocation 1 2 3 4 5 6 7 8 9 10 11

???
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;

setting 'length' may cause GC allocation 1 2

???
src.rt.cover splitLines operator ~= may cause GC allocation;

setting 'length' may cause GC allocation 1 2 3 4

???
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;

operator ~= may cause GC allocation 1 2

???
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;

operator ~= may cause GC allocation 1 2 3 4 5 6

???
src.rt.util.utf this operator ~= may cause GC allocation 1 2 ???
src.rt.util.utf toUTF16 operator ~= may cause GC allocation;

setting 'length' may cause GC allocation 1 2 3 4 5 6

???
src.rt.util.utf toUTF16z operator ~= may cause GC allocation;

setting 'length' may cause GC allocation 1 2

???
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;

setting 'length' may cause GC allocation 1 2 3 4 5 6

???