9 ms·
I'm surprised the "humans don't notice 100 ms" argument is even made. That's trivially debunkable with a simple blind A/B test at the command line using `sleep
by colanderman 9y ago
I'm surprised the "humans don't notice 100 ms" argument is even made. That's trivially debunkable with a simple blind A/B test at the command line using `sleep 0.1` with and without `sleep` aliased to `true`. To my eyes, the delay is obvious at 100 ms, noticeable at 50 ms, barely perceptible at 20 ms, and unnoticeable at 10 ms.
Not to mention that 100 ms is musically a 16th note at 150 bpm. Being off by a 16th note even at that speed is – especially for percussive instruments – obvious.
On the other hand, if you told me to strike a key less than 100 ms after some visual stimuli, I'm sure I couldn't do it – that's what "reaction time" is.
- AmVess 9y agoYes, and something like a touch interface is very obvious, too. Look at this video on Youtube from Microsoft Applied Sciences Group: High Performance Touch. https://www.youtube.com/watch?v=vOvQCPLkPt4 https://www.youtube.com/watch?v=vOvQCPLkPt4 You can plainly see that 100ms is an eternity. While keyboards aren't the same thing, but high latency is noticeable. I had to change a keyboard because of the near eternity of when I pressed a key and when it registered on the screen. The difference between the old and the new is quite stark.
- clebio 9y agoYou realize this video (or a version of it) is linked in the article itself, yeah?
- gregmac 9y agoHm, neat. I notice about the same result -- 0.1 is quite obvious. If you want to blind A/B test yourself, run this: DELAY='0.1'; VALUES=(0 0); VALUES[$((RANDOM % 2))]=$DELAY; alias test_a="sleep ${VALUES[0]}"; alias test_b="sleep ${VALUES[1]}" Adjust DELAY as you want, and then use test_a and test_b and see if you can guess which is which, then run alias to see for sure.
- mistercow 9y agoI was suspicious that there might be some artifacts of terminal updating that are amplifying the effect in that test, so I whipped up a little graphical test: https://jsfiddle.net/zs8bncxj/1/ https://jsfiddle.net/zs8bncxj/1/ I can still get it right pretty much 100% of the time, but the difference does feel a lot more subtle than what I was seeing in iTerm. (If you change the delay, you need to hit randomize to make it take.) Edit: Also we should keep in mind that we're not testing the latency we set in either test. We're testing that delay plus the delay from I/O. So 100ms might be indistinguishable. But by the time we pile everything on, we're getting closer to 200. The result is the same as far as UI design is concerned; don't assume that you can get away with 100ms; most of that leeway has already been wasted by the OS and hardware.
- throwawayReply 9y agoAdding step="0.01" to the input allows stepping down in 10ms increments. Personally I can distinguish every time at 0.06. I find it difficult to believe the rest of the hardware loop has 40ms latency, it would be difficult for smooth rendering to occur if it did. I suspect that part of this is 'training' yourself but also what the researchers meant. They may very well have meant that above 100ms is jarring and noticed as a delay but below 100ms is not seen as a delay rather than truly being unable to notice in an A/B test. I suspect this test would be more difficult if it sometimes did A/A and B/B.
- mistercow 9y ago>I find it difficult to believe the rest of the hardware loop has 40ms latency, it would be difficult for smooth rendering to occur if it did. Why would I/O latency have any effect on the smoothness of rendering? Are you sure you aren't thinking of throughput? Remember: TFA just told us that many keyboards on their own add more than 40ms of latency. I definitely wouldn't have guessed that, so I'm very reluctant to entertain any certainty about the rest of the system having low latency.
- tomxor 9y agoneat, 100ms is blatantly obvious, I can't imagine anyone not discerning that one. I can get down to 24ms but no less... the weird thing is that 24ms is still completely obvious to me (clearly shorter but obvious in comparison to no delay), with a single test I can see which variable has the delay every time, but 1ms less and I can't... which makes me suspect it's being quantised due to any of the various things in between sleep and the output, display, driver, X, terminal emulator, CPU etc. With that it's actually possible that my 24ms is larger than 24ms and is also being quantised to a larger duration (but not larger than 100 for sure). It would be interesting to be able to test with some dedicated hardware.
- Risord 9y agoBtw your display can be the next bottle neck on 10ms scale if typical 60hz was used.
- azernik 9y agoAnother point is that, even if a bit of latency isn't noticeable (say, 20 ms), when added to other sources of latency it can make things noticeably worse. EDIT: Which the original author said better than me: > Another problem with this line of reasoning is that the full pipeline from keypress to screen update is quite long and if you say that it’s always fine to add 10ms here and 10ms there, you end up with a much larger amount of bloat through the entire pipeline, which is how we got where we are today, where can buy a system with the CPU that gives you the fastest single-threaded performance money can buy and get 6x the latency of a machine from the 70s.
- stebalien 9y agoThis rule comes from UX design user studies. However, the actual rule is that people perceive an event happening within 100ms as "instantaneous". Or, in other words, two events happening within 100ms of each other won't feel like distinct events. This doesn't mean that users won't notice the delay and it doesn't even mean users won't be frustrated by it, it's just a matter of human perception of distinct events in time. Unfortunately, programmers/UX designers have a tendency to generalize this rule and use it to excuse slow user interfaces.
- tomxor 9y agoI rarely use transitions larger than 100ms in UX, I doubt i'm abnormal in not seeing the result as instantaneous (compared to no transition). On the other hand this certainly is not normal UX design, I am very irritated at how common excessively long transitions are used on the web... to the point that I actually have to wait for things to finish animating before I can interact with them, it feels so 90's like i'm supposed to be impressed with the transition rather than the transition to simply convey the introduction of something and then to get the hell out of the way (like it should).
- everheardofc 9y agoIt's about the attention span. If the animation or action happens within 100ms then it's percieved as very fast and has almost no negative effect on attention. If the action takes 1 second then it is merely percieved as fast but very noticeable. If an action takes more than roughly 3 seconds it's percieved as slow and you might lose the attention of your user. Just because you are below the threshold of 100ms doesn't mean that reducing it more isn't beneficial. It's just that you have alread captured the full attention of your users.
- xbkingx 9y agoThe more obvious example is to watch a video encoded at 10 frames per second followed by a 30 fps video. Does it look different? If yes, something's wrong with the statement There are plenty of examples on YouTube if anyone's interested.
- mrob 9y agoThat's not a fair comparison, because we can distinguish very high frame rates (eg. 1000fps vs 3000fps) by watching how the perceived image changes in reaction to eye movement. Consider an LED strobing at 100Hz. This is above the flicker fusion threshold, so with motionless eyes it will appear steady, but if you flick your eyes from side to side you will see multiple images (phantom array effect). This is limited to some extent by saccadic masking, but never perfectly, and saccadic masking strength varies from person to person. Similarly, limited frame rate makes it impossible to keep the image at exactly the same place on the retina during smooth pursuit eye tracking, causing perceived blur that wouldn't be seen with a real life moving object. Seeing a difference with 1000fps video doesn't mean we have 1ms temporal resolution perception, it just means some test signals allow conversion of temporal information to spatial information by eye movement. It doesn't generalize to arbitrary visual events. To investigate keyboard latency sensitivity properly there's no substitute for ABX testing of actual keyboards.
- tomxor 9y agoeven the difference between 30 and 60 is pretty clear to most, I find watching movies at 60fps reeeally weird, it feels too real... I never actively look for the video framerate before, i just notice it, it's that obvious.
- mort96 9y agoI, on the other hand, having grown up with mostly playing games at 60 FPS (the PS2 ran the games I played at 60 FPS, back when console games prioritized gameplay over looking pretty in screenshots), and have moved on the 144 FPS on PC, find the 24 FPS used in cinemas to feel agonizingly choppy. Especially when there’s a big sweeping paniramic shot. It sometimes takes me out of the experience. I really liked the 48 FPS when watching the hobbit movies.
- DINKDINK 9y ago>Not to mention that 100 ms is musically a 16th note at 150 bpm. Being off by a 16th note even at that speed is – especially for percussive instruments – obvious. There's a difference in constant, but consistent lag (delay) and variation of lag variance(lag)>0. If one note is a 16th note off that is lag variance.
- pdkl95 9y ago> strike a key less than 100 ms after some visual stimuli, I'm sure I couldn't do it The video game "Super Hexagon"[1] is a surprisingly interesting demonstration of this limitation, and how the mind tries to workaround the problem. The higher difficulties ("hexagonest"[2]) seem impossible at first. In the easier levels you can react, but now the time it takes to see the scree, parse the simple graphics, recognize that you need to turn left to avo##CRASH##...##GAME OVER##, You quickly learn that if you think about the game, you are guaranteed to fail due to insufficient reaction time. Winning requires a mental state possible related to meditation: don't think, let the muscle memory do it's job (maybe from a faster path limited to the spinal-chord and brain-stem?). [1] https://www.youtube.com/watch?v=UrPXBSh4mqU https://www.youtube.com/watch?v=UrPXBSh4mqU [2] I finally got a winning 62.09s a few days ago, after many months starting at a high score of 58.57
- djsumdog 9y agoThat game ate way too much of my life.
- BoppreH 9y agoThis is also clear on rhythm games like Stepmania. Here's a random video from a keyboard user: https://youtu.be/TWiMnENdcyY?t=56 https://youtu.be/TWiMnENdcyY?t=56 At this speed the player is reacting (and hitting with correct timing) about ten notes (arrows) per second. This is possible by memorizing and reacting to group patterns instead of individual notes, but more importantly, reacting unconsciously. A player can play at this level without conscious attention, even while holding a conversation, or while focusing at different parts of the screen, or spaced out. It feels like the fingers play by themselves. This is so automatic that the player may have little feedback on how well they are doing. They may think they are making blunders and about to lose, while "the fingers" have correctly hit every note so far. Definitely feels like a faster neural path was built.
- LaikaF 9y agoWhen I used to play Stepmania and DDR a bunch that was entirely what ended up happening. You started processing chunks of the arrows, and mapping them to various foot/finger movements. At a certain point though people just straight up memorize the whole song though.
- mrob 9y agoIf you're trying this, note that libvte based terminals are capped at roughly 40fps, which adds serious jitter to the delay. xterm doesn't have this problem.
- tammer 9y agoFor more on this I highly recommend Jimena Canales' "A Tenth of a Second: A History"[1] [1]: http://www.press.uchicago.edu/Misc/Chicago/093185.html
- crispyambulance 9y agoThe other thing to consider is how is latency perceived when actually TYPING in real life. My guess is that the difference between the shortest latency and the longest latency hardly matters for the purpose of a human putting words on a screen. There's so many other cognitive activities going on that I can't imagine someone would notice unless they're specifically looking for it and nothing else. Really, does anyone complain about this stuff? even world-class touch typists? Of course there is some threshold of latency when it starts to become noticeable/disconcerting for some fraction of people and probably quite a lot more when half of all typists start to notice. Anyone can definitely feel this on terminals connected to very remote machines. This is an interesting topic and am glad that Mr Luu is looking into it. The measurements described are absolutely a valuable first step towards understanding what latency really means for human factors in typing (first, what is the f-ing latency). I expect the folks at Logitech and other places have significant proprietary research on this stuff, but maybe not?
- majewsky 9y ago> Really, does anyone complain about this stuff? I can see how high latency is acceptable if you're only putting in new characters, but as soon as I have to fix a typo or anything more complex, I get really mad really fast if the latency is anything beyond (ballpark estimate) 250 ms.
- drivebyops 9y agoPeople have made AB input lag tolerance game here https://forums.blurbusters.com/viewtopic.php?f=10&t=1134&sid=cedb83c74de21e3db1dae9cd2c674ddb https://forums.blurbusters.com/viewtopic.php?f=10&t=1134&sid... Some people in that thread are tolerant to 10ms...
- WalterSear 9y agoI can very quickly tell the difference between 10ms and 5ms, when playing a musical instrument.
- mrb 9y ago«Being off by a 16th note even at that speed is – especially for percussive instruments – obvious.» So was he rushing or dragging?
- lightedman 9y ago"To my eyes, the delay is obvious at 100 ms, noticeable at 50 ms, barely perceptible at 20 ms, and unnoticeable at 10 ms." That's how it goes with my ears when recording as well. Most "Live feedback" mechanisms for guitar programs (heck even computer-made guitar hardware) have about 50ms of latency, which is quite disconcerting when you're doing something heavily timing-based. 10ms is almost imperceptible to me (sounds more like the tiniest slightest reverb delay) and 5ms might as well be realtime as far as I'm concerned. An example, in Windows 10, I could go to the built-in mixer, turn on the "Listen to this device" and play with my guitar plugged right into the computer, and you're looking at about 100 ms or so of latency. Completely unacceptable when you're listening to a metronome to keep on time. Alternatively, I can go to the Realtek HD Audio Manager in the taskbar (because I installed the actual RealTek driver package instead of relying upon the Windows drivers) and un-mute the line in, and even with an amp and mixer board in-line before the computer, the feedback is essentially instantaneous, which allows for pre-baked instant reaction times (eg muscle memory) to work and record in time with the metronome (or backing track.)
- Kadin 9y agoThis is why I'll never buy a DAC that doesn't have a headphone monitor output on the front panel! The performance of low-latency audio has gotten worse over time, not better, at least on the Mac. (It was better under OS 9 than anytime since, I think.) Another fun test you can do, if you have an analog mixer, is to run some input signal into the mixer, then to the PC, and then from the PC back out, and monitor both the original input and the signal from the PC at the same time. OS-supplied drivers typically make it sound like you're in the Grand Canyon. But even with very expensive low-latency gear, you can still tell if you put one signal into the left headphone channel and another into the right. If there's actually zero latency, you'll perceive the sounds as coming from directly in front of (some people perceive as directly behind) you. It'll sound just like mono. Any latency, given the same volume level, will be perceptible as a difference in "location" of the sound. My unscientific experiments suggest that you can perceive down to about 1ms latency quite clearly this way across most of the audible range. The minimum is frequency dependent (as you'd expect) with lower frequencies being less sensitive. Presumably the human brain has evolved to be extremely good at arrival time comparisons (maybe even doing some sort of phase-difference stuff) as a way of triangulating the origin point of sounds. There are doubtless other specialized ways in which the brain is equally sensitive, so the 100ms rule of thumb seems pretty naive to me. 100ms might hold true for the "main loop" of the human brain at the level of conscious thought, perhaps.
- axaxs 9y agoAbsolutely. In a past life I was a hardcore Quake 1 gamer...which, ahead of its time, had a way to adjust 'ping' for fairness. Any thing above 15 or 20 was noticeable...at 100 it was awful.
- snvzz 9y ago>On the other hand, if you told me to strike a key less than 100 ms after some visual stimuli If it was audio cue, I'd point you to "Love Live School Idol Festival", a rhythm game which "perfect" judgement window is some 32ms. Decent players will get perfect most of the time.
- vehementi 9y agoRhythm games allow for anticipation which is not reaction
- stinos 9y agoWhile you're factually correct about the musical stuff, note that the auditory system is not at all the same as the visual system, the latter being slower in processing information (i.e. full time for light entering retina to information being ready to do something with in the brain). Also resulting in reaction times for auditory stimuli being faster than for visual stimuli. So you can't just use one system to debunk a fairly general statement made about something visual related. Even though it's still false, but for other reasons.
- pygy_ 9y agoI mostly agree with you except for this bit: > Not to mention that 100 ms is musically a 16th note at 150 bpm. Being off by a 16th note even at that speed is – especially for percussive instruments – obvious. The auditory system is especially good at processing serial data, and it has a better timing resolution than the visual one. People with visual-auditory synesthesia are much better at tracking patterns in flashes of light for example (because the hear the flashes).
- dharma1 9y agoYou're pretty much spot on. Latency for instance when playing software synths is very noticeable above 20ms
- unicornporn 9y agoBut that could be 200 ms? 100 from your keyboard and 100 from sleep.
- drderidder 9y agoAs a pianist, latency of 20ms makes an electronic keyboard instrument unplayable for me. I wasted lots of time messing around with different drivers for soft synths trying to get below that number. 100 ms is a lot. In audio, a 8ms delay has an effect you can clearly hear, and can be used to "widen" tracks or simulate stereo from mono sound sources, since 8ms corresponds roughly to the amount of time it takes a sound wave to travel from one side or your head to the other.