On Lichess (browser-based analysis), Stockfish reports close to 1 MN/s on my Redmi Note 14 Pro. However, when I run Stockfish locally via a Python program using the native executable, I only see around 600 kN/s.
What’s confusing is that despite the higher reported speed, Lichess takes about 2:30 to reach depth 30, while my local setup reaches depth 30 in about 53 seconds, even though it reports a lower N/s. Lichess also appears much more “active” in terms of frequent evaluation updates.
I suspect this has to do with how N/s is measured or displayed (instantaneous vs average), differences in search configuration (continuous search vs restarts, MultiPV, hash reuse), or overhead from the way the engine is driven (e.g., UI or I/O throttling). It also raises the question of whether “depth 30” is directly comparable across different frontends.
Has anyone looked into how Lichess reports Stockfish speed, or why a setup showing higher N/s can still take significantly longer to reach the same nominal depth?
I would rule that out first
In Lichess I think you can also choose different eval nets. There's a small one and a big one. That will affect N/s.
Have you compared how many threads each are using?
Furthermore, Lichess Stockfish is a WASM build while your local Stockfish is a native binary executable.
Many have already mentioned number of variations will significantly affect time to a certain depth.