-
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
-
hycno.
-
sech1calling functions from dynamically loaded modules can be slower
-
sech1They can use intermediate JMP instructions, like DLL import tables in Windows do
-
kworkhmmm so xmrig for example is statically linked binary in their site ?
-
sech1but once you called a function in a DLL, the speed of the function itself is the same
-
sech1We're talking about <0.1% difference when it comes to mining
-
kworkmhmh that makes sense
-
hycall references to global symbols go thru an indirect table
-
hycthat's a quirk of the way dynamic linking was designed, which allows other symbols to be interposed at any time.
-
sech1it only makes a difference if you're calling DLL functions thousands of times every second
-
sech1then static linking can speed up things
-
kworkstrings xmrig | grep GCC
-
kworkbuilt on Jul 3 2023 with GCC
-
kworkGCC: (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
-
kworkwouldn't modern gcc improve smt ?
-
sech1RandomX is 99% assembly code, there's nothing for compiler to do there
-
sech1Except for transating it to machine code