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