So, Bitcoin block consists of some static (magic number, version, previous hash...) and dynamic (timestamp, Merkle Root, transaction count and transactions) elements. What I don't understand is if we update active parts, wouldn't we start guessing nonce from the beginning every time and also calculating the new merkle root would be time-consuming for each transaction? I understand that since PoW is memoryless it doesn't effect much if it is updated every seconds or with every transaction but it may be slower to compute new hashes and root. I'm sorry if I'm wrong but, if miners freeze the block at certain time would they have an advantage. I searched a lot, but couldn't find an article or video of what really happens during mining in slo-mo.
Miners do optimize the block construction process internally.
Unfortunately they do not share this information with the community, so we don't know what methods they use, how they choose TX's and how they distribute work to pool participants.
Both mining machines and mining software the big miners use are secret. Modern ASIC machines' hardware are closed source and so is their firmware and operating system.
This is unfortunate considering that Satoshi gave us Bitcoin source code, which is absolutely revolutionary, for free.