Live data from Hacker News

Assembly Hall of Shame

github.com

31–40 of 110 posts

Re: Assembly Hall of Shame

#32
post #6

It’s crazy how computers still seem to get perceivably slow every few years, given how many instructions can be executed in 1ms. Shameful, even.. What’s that law called about programmers wasting all the compute on abstraction?

The new windows notepad is a disgrace

The new mspaint fucked, then unfucked, then refucked my decades-old muscle memory of Win+R mspaint Enter Ctrl+E 1 Tab 1 Enter Ctrl+V to open Paint, resize canvas to minimum, then paste from clipboard. When you press Ctrl+E now, the Units control is selected by default, for some completely asinine reason!!!

Re: Assembly Hall of Shame

#33
post #28
post #13

Earlier quoted context omitted.

I remember reading once somewhere: If some app responds in 10ms or less, it is INTERACTIVE . makes you think.

It is literally impossible to respond to input in 10ms on most platforms, for various reasons. The USB input lag of 12-30ms and the 60Hz refresh rate of most monitors being just the first two.

60Hz monitors definitely prevent it, but I'm pretty sure USB lag is far less than 12-30ms. My USB mouse can make a round-trip to a remote server faster than that.

Re: Assembly Hall of Shame

#35
It says in the rules

> Trapped/emulated/virtualized instructions may only time the trap, not the handler.

But I feel like that 12ms write to an ACPI IO port at current leaderboard position 8 is probably trapping to SMM and being handled there.

Re: Assembly Hall of Shame

#36

Very cool! Also, huh interesting. I’ve used rdtsc to measure cycle diffs but had no idea its execution takes that long. Is that common across architectures?

The cycle count for RDTSC is ~25 cycles on Skylake-era microarchitectures. The 49 number shown in the OP seems off.

Re: Assembly Hall of Shame

#37
post #28
post #13

Earlier quoted context omitted.

I remember reading once somewhere: If some app responds in 10ms or less, it is INTERACTIVE . makes you think.

It is literally impossible to respond to input in 10ms on most platforms, for various reasons. The USB input lag of 12-30ms and the 60Hz refresh rate of most monitors being just the first two.

I stand corrected.

I looked it up and it is .1 seconds (100ms)

The basic advice regarding response times has been about the same for thirty years [Miller 1968; Card et al. 1991]:

- 0.1 second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.

- 1.0 second is about the limit for the user's flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data.

- 10 seconds is about the limit for keeping the user's attention focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely to be highly variable, since users will then not know what to expect.

from Jakob Nielsen:

https://www.nngroup.com/articles/response-times-3-important-...

less readable but the original paper:

https://www.yusufarslan.net/sites/yusufarslan.net/files/uplo...

Re: Assembly Hall of Shame

#38
post #15

Related, and linked in the readme: https://github.com/xoreaxeaxeax/smiiiiiiiiiiiiiiii (using the slow instructions to break SMI)

I wish they would just explain it in normal terms instead of this nasty LLM "engaging blog post" style

Re: Assembly Hall of Shame

#40
post #37
post #28

Earlier quoted context omitted.

It is literally impossible to respond to input in 10ms on most platforms, for various reasons. The USB input lag of 12-30ms and the 60Hz refresh rate of most monitors being just the first two.

I stand corrected. I looked it up and it is .1 seconds (100ms) The basic advice regarding response times has been about the same for thirty years [Miller 1968; Card et al. 1991]: - 0.1 second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result. - 1.0 second is about the limit for the user's flow of thought…

That’s the prevailing statistic, but your original number isn’t that wrong either:

Humans can perceive much smaller latencies.

If you look at the Card & Miller reference, at least some humans can perceive differences in ~50ms vs 100ms latencies when typing (in my limited testing, it’s likely you can!). There’s some newer research I don’t have handy that I believe found error rates decreased and NSAT improved until around at least 30ms (if not 20ms).

On that note, humans can definitely distinguish 60hz vs 120hz reliably (about 8ms faster per frame).

Even faster: with a reference (eg when dragging on a touchscreen), humans can distinguish down to at least 1ms vs 10ms of latency: https://m.youtube.com/watch?v=vOvQCPLkPt4

And you can probably distinguish metronomes that are off by about 1-2ms. Much smaller for other things (like metronomes that slightly slower or faster than one another).

This is a special interest of mine XD

Post reply on HN