13:28:59 <kwork> <hyc> no dynamically loaded modules; dynamic linkage is a 5% overhead all on its own - isnt that just for load time, if its already in the memory it shouldnot make difference
13:29:39 <hyc> no.
13:29:45 <sech1> calling functions from dynamically loaded modules can be slower
13:30:03 <sech1> They can use intermediate JMP instructions, like DLL import tables in Windows do
13:30:26 <kwork> hmmm so xmrig for example is statically linked binary in their site ? 
13:30:31 <sech1> but once you called a function in a DLL, the speed of the function itself is the same
13:31:01 <sech1> We're talking about <0.1% difference when it comes to mining
13:31:15 <kwork> mhmh that makes sense
13:32:18 <hyc> all references to global symbols go thru an indirect table
13:33:16 <hyc> that's a quirk of the way dynamic linking was designed, which allows other symbols to be interposed at any time.
13:33:43 <sech1> it only makes a difference if you're calling DLL functions thousands of times every second
13:33:49 <sech1> then static linking can speed up things
13:40:08 <kwork> strings xmrig | grep GCC
13:40:08 <kwork> built on Jul  3 2023 with GCC
13:40:08 <kwork> GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
13:40:08 <kwork> wouldn't modern gcc improve smt ? 
13:51:45 <sech1> RandomX is 99% assembly code, there's nothing for compiler to do there
13:51:51 <sech1> Except for transating it to machine code