IIRC, signing (in java) is <300 microseconds (depends on hardware ofc) , so 1M accounts = 300 seconds, that's bit too much (network could be much further already...)
OFC, you could go with C implementation.
but 10_000 accounts should be doable.
You rely on
signing in NEM to decide who harvests the next block?
In Nxt only SHA256 is required to pick the forger among accounts when effective balance is known, this is why it's that fast.
No, the hit and target (it is called like in Nxt) requires only hashing. But as implemented the harvesting account is always generating a block (even when the node is not publishing the block) and that of course requires signing.