3 ms·
> There are zero GC pauses. Unless you claim that a C++ alloc/feee call is “garbage collection”. Alloc/free can introduce arbitrary pauses last I checked, so y
by naasking 4y ago
> There are zero GC pauses. Unless you claim that a C++ alloc/feee call is “garbage collection”.
Alloc/free can introduce arbitrary pauses last I checked, so yes, there are pauses. Any time doing book keeping for resources rather than running your code counts as GC time.
- MaxBarraclough 4y ago> Any time doing book keeping for resources rather than running your code counts as GC time. Perhaps a nitpick: memory management time, yes, but not GC time. alloc/free is manual memory management, not garbage collection.
- naasking 4y agoIf you're using alloc/free in your GC, which is what was being implied, then that counts as GC time.
- aaaaaaaaaaab 4y agoOn any OS which is not hard realtime, there could be arbitrary pauses with any syscall. This is just nitpicking.
- dento 4y agoNitpicking: arbitrary pauses can occur even without syscalls, when the OS preempts the program. More nitpicking: on x86-64, SMI interrupts can cause arbitrary pauses even without any software control involved. Hard realtime on x86-64 is not possible.
- staticassertion 4y agoMore nitpicking: Your computer might turn off, cosmic rays might blow fuck up your RAM/CPU, Capital G God could reach down and pause the system, there's a universal quantum pause every 5.391247 × 10^-44 so that the universe can reboot, etc etc etc Orrrrr, GC pause just means pauses caused by the GC as part of its implementation's work to manage memory.
- naasking 4y agoThis is not nitpicking. The OP was implying they were using alloc/free in their GC. Those calls can be doing all sorts of book keeping behind the scenes, including cascading destructor calls which could free a chain of objects the size of live memory. Suffice it to say, that would pause.