I just earned the Active Directory Red Team Specialist certificate from @cyberwarfarelab!
I started taking it when I was attending a conference and got impressed by the knowledge I could acquire. Recommended. Next cert: CRT-ID?
@wh0crypt@TrisH0x2A@Hassan_Abedi I agree with Linus, but I still wonder why browsers are written in C++. Even a new one like Ladybird started with C++, and now it's moving toward Rust
@Iberia aprecio la iniciativa y tal, pero no me sirve que los vuelos alternativos que me déis sean para un día antes del vuelo previsto, tendría que pagar por el cambio de billete de tren :S pensé que por lo menos me daríais una opción el mismo día, muy mal, haciendo overbooking
the cost of a virtual call was never the vtable lookup. that's just a pointer load, and modern CPUs are very good at loads.
what actually matters is the indirect branch that comes after it. the CPU wants to know where execution goes next so it can keep speculating ahead. When the branch predictor gets that target right, a virtual call is often surprisingly cheap.
the trouble starts when the same call site sees many different targets. prediction becomes harder, mispredictions increase, and the CPU has to throw away speculative work and start again.
that's why a monomorphic virtual call site can be almost free while a megamorphic one can become expensive.
virtual calls are slow was always an incomplete explanation.
the real question is how predictable the call target is.