9 ms·
Interface performance is one of the strangest problems to have in this age of crazy processing power but it is extremely common. Some of the delay is just plai
by makecheck 10y ago
Interface performance is one of the strangest problems to have in this age of crazy processing power but it is extremely common.
Some of the delay is just plain silly and avoidable, like having long and synchronous opening animations in response to an action, which only serve to waste the user’s time. (Oh how I love being on a web site like AT&T and watching their JavaScript poorly zoom open a blank box from the center of the page for 2 whole seconds, when I KNOW they could just show me the damned page already.)
In other cases, the source of the slowdown is less clear. Is a physical device just not delivering its signals any sooner?
I’ve played games where you have to walk to a very precise spot, hit a button, and wait literally one whole second before ANY response is visible onscreen or in audio. (And if it turns out you didn’t really take the action you thought you did, you have to walk in circles to try a slightly different spot, and wait again). Why should that ever be the case? How can a super-fast console not immediately display something or play some sound to show that you took the action?
- andrewstuart2 10y agoAs far as the less-clear cases, this is basically CAP theorem, with some physics thrown in for good measure. In some sense there is always a partition of some length between two points, thanks to the speed of light: the theoretical limit of information propagation through space. So in the presence of this delay "partition," you have three choices, really, and the choice you make depends on the application. A) You can choose to be available and responsive. Show the user feedback immediately and never concern yourself with global state. Technically, I'd call this an illegal choice because you must have some sort of state to even be executing code. Unless you simply don't write the code, in which case your job is easy! B) You can choose to be immediately available and eventually consistent. You calculate the response quickly with the assumptions you have most available (local memory, disk), all while transmitting events and waiting for the further-away less-available state to become available. This is the way many online games that need quick feedback to be fun are done. [1] Unfortunately, this is also the source of the lag jumps that you see. You're always running with [partition-size in ms] outdated global state, so the assumptions you made when calculating outcomes are going to be incorrect. This is why your headshot might turn into a total miss when the player jumps five feet to his right and, oh yeah, you also died. 3) Don't react to events until the global state has been updated. This means a full round-trip plus processing remotely and locally before that click event performs the action it is supposed to. This can be anything from a crappy experience (I shot into the ground, why should I wait), all the way to the only sensible choice (if integrity is highly important, say in transactions and avoiding double-spend). Really, it's so much more than this too. On top of availability vs consistency you have to account for some trust model (the game client says it was a headshot, but how do I know I can trust the client) and information security (confidentiality, availability, integrity). So TL;DR there are lots of very hard problems in distributed systems and sometimes people just default to one stance or the other to balance their cognitive load or for any number of reasons (ranging from legit to ridiculous). Sometimes they default to consistency. That's probably the case for your button-click example. [1] https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking https://developer.valvesoftware.com/wiki/Source_Multiplayer_...
- squeaky-clean 10y agoI've never connected this to the CAP theorem, it's a good way of looking at it. I see it as 2 different questions, "Did the computer hear me" and "Does the computer have a response for me.". Most people only make an effort to answer the latter for the user, it indirectly answers the first question anyways. But you can easily answer the first by quickly doing some sort of update, such as a progress indicator, animating a button staying depressed, etc. You don't have to mess with your real model until you get a response (or an error), but then you also don't leave the user confused for 12 seconds while your app loads search results or whatever. Obviously it doesn't work in every situation. In most video games you want your actions to affect the gameworld immediately, even if the server doesn't know about it yet. However, for most applications just adding fast indicators that the client is aware of your actions (and staying off the UI thread) will make it feel more responsive.
- k__ 10y agoI think B is the way to go. Most apps aren't as competitive as CS:GO.
- pjc50 10y ago> Why should that ever be the case? You can solve any problem by adding more software and layers of abstraction, except the problem of too much software. That's the state we're in now. The BBC micro could have a word processor in ROM that would boot almost instantly and responded to keypresses immediately. This was because the software was written in assembler and had to fit in a small ROM. The choice of using a TV system running (say) Android and a web browser means that, although the software is slightly easier to write and the processor is 100 times faster, it has to execute 10,000 times more machine instructions in order to render the UI. This is partly why people like Maciej campaign against multi-megabyte text pages. Another way is possible.
- knodi123 10y ago> like having long and synchronous opening animations in response to an action, which only serve to waste the user’s time. Oooooh, don't get me started on DVD menu screen navigation. What shambling, drooling idiot decided that it was critical for me to watch an unskippable spoiler-rich montage of scenes from the entire length of the movie before I can click "Play Film", followed by another unskippable montage afterward? Insanity.
- zaroth 10y agoThere's a great infographic showing the UX of playing a DVD vs playing a pirated video. Exactly this.
- choward 10y ago> like having long and synchronous opening animations in response to an action I love animations when they make the UI more understandable. I can't stand them when they are more than a couple hundred milliseconds though. I don't even think "synchronous" when I think of animations. That sounds terrible. If they are quick animations it doesn't seem as big of a deal as the long running ones though.
- makecheck 10y agoFor me the most insulting part is the inversion of priorities in these designs. The top priority of a UI designer SHOULD be to make the user as productive as possible, yet making me wait for something that is by definition not necessary (like an animation) is nonsensical. A related backward trend is this idea of pushing something in front of my face as a modal panel, with complete disregard for the fact that I was working on something and am now (a) distracted, (b) completely unable to continue doing what I chose to do, and (c) will have problems even after the modal goes away, taking extra time to figure out how to refocus on whatever I was originally trying to do before being interrupted.
- kluck 10y agoThat is even true for actions I triggered, for example: I click 4 icons on my desktop consecutively and thus 4 binaries start in the background. The order in which they appear is determined by their startup time: One pops up after another. BUT: whenever one is open and I am USING it, all the ones coming up should not pop up over the current one! This bad behaviour even happens in Windows 10 and many desktop environments. To UI designers: Have some consideration for the f user!
- StillBored 10y agoInput lag is a common complaint of mine, but absolutely _NOTHING_ comes close to the Sony BDP S300 https://esupport.sony.com/p/model-home.pl?mdl=BDPS300 https://esupport.sony.com/p/model-home.pl?mdl=BDPS300. Key-press response time can frequently be more than 30 seconds, depending on what the action is. Of course, you might say, that is because of bluray bloat on more recent disks, but I can assure you that its been that way from the day I purchased it. Sure some disks were better than others, but the multi minute boot-up, disk load times, player menu popup times, etc have been there since the beginning. I used to use it as a demo against my HD DVD player of why bluray wasn't ready for primtime ,and it was a 3rd generation bluray player.
- voltagex_ 10y agoGiven it's a BDP-series player, if you were interested you may be able to get a Linux shell of some kind on it and find out what's taking so long to run on it. There's a whole lot of Phillips and Sony players that are based off some ancient Mediatek SDK. Edit: Wow, that's old: Sigmatek, not Mediatek. A makefile in the GPL source suggests there's a similar Pioneer player somewhere, too.
- nom 10y agoThat reminds me: I have a Siemens washing machine, and the interface have a latency of >500 ms. How they fucked it up is way beyond me. It consists of nothing more than a rotary switch, four buttons and three 7-segment LED displays. I've played with the thought of disassembling the firmware just to see how they fucked this up this bad. I could never make something this unresponsive even if I tried. It's utterly fascinating and pisses me of every time I do the laundry.
- zaroth 10y agoWhy you can't just toss the clothes in, close the door and walk away is beyond me. Wish I could empty the whole 150oz of Tide into the machine and have it dispense over 96 loads too.
- lobster_johnson 10y agoI've thought this many times, and I suspect it's somewhat complicated, engineering-wise — but solvable. For one, detergent comes in at least three forms: Powder, liquid and those little plastic pouches. Powder would be pretty easy (but the dosage would be brand-specific) and liquid would be messy (flow rate would be a challenge). The easiest way would be if all machines could accept a "standard pellet" which gets loaded in some kind of completely fool-proof way so the machine cannot mechanically choke on them, ever, or accidentally add too few/many to a load. Same thing with dishwashers. As for why you can't just close the door and walk away: Setting the program is an important step in washing clothes. Modern machines do have a single "start" button.
- dkresge 10y agoGE has both under the name "SmartDispense". They use a peristaltic pump to dispense liquid detergent. I owned the dishwasher for a few years and enjoyed the convenience.
- glaberficken 10y agoIn 20 years, I've owned 3 washing machines. I dealt with maybe 3 or 4 malfunctions over those 20 years, and each of them required only buying some spare part and installing it, or cleaning something inside. Surely this kind of reliability is a good trade-off Vs having to pour some detergent for each wash?
- trafficlight 10y agoThe Coke touchscreen fountain machines. There should be zero animation. Just let me pour my drink.
- usaphp 10y agoEspecially the lag that you see on some brand new cars, only BMW and Audi seem to have lag free interface, but anything else that involves touch interface is just horrid! I've recently sat in my friend's brand new Honda SUV and the interface lag is just plain silly, for a car that costs $30,000+. Why is that?
- izym 10y agoVW's newer interfaces are also quite lag-free. But then again, it is the same concern as Audi, so I guess it makes sense.
- nodamage 10y agoSame with in-flight entertainment systems on planes. They always have terrible, slow interfaces.
- johnward 10y agoThis causes people to press harder in reaction and then they are bouncing the person in front of them's head. It's comical if it's not happening to you.
- JonRB 10y agoI recently took a flight with Virgin Atlantic and was actually pleasantly surprised. It still wasn't perfect, but it was by far the best I've seen from in-flight entertainment.
- richev 10y agoMostly I'd agree, but Emirates ICE system is pretty decent https://www.emirates.com/au/english/flying/inflight_entertainment/whats-on-ice-digital-widescreen.aspx https://www.emirates.com/au/english/flying/inflight_entertai...
- makecheck 10y agoI always want to turn it “off” because it’s too distracting, and the only way is to turn the Brightness down to off. It goes like this: BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, oh now it’s off. Then 5 minutes later, the airline starts its welcome mostly-advertising video which TURNS THE DAMNED THING BACK ON AT FULL BRIGHTNESS. Then it resumes DirecTV at which point I have to say: BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, wait, BrightnessDown, annnnnnnnd now it’s off.
- corysama 10y agoAt the hardware level, the author of BSNES recently wrote up an excellent rant on sources of latency in modern machines https://byuu.org/articles/latency/ https://byuu.org/articles/latency/ But, most of what you are talking about is software latency. At 1/30th of a second each, software pipelining systems seem cheap individually but pile up very quickly. Hit a button, read the button, react in AI, react in animation, react in physics, react in graphics, process in the GPU, process in the display device. These can easily add up to 5/30ths of a second with poorly planned software. In the middle of all that, the animation and audio has aesthetic requirements for smooth transitions that can insert a 1/2 second lag in the middle of that process. Now we're up to 20/30ths. Regarding animations: I've been in convos with managers requesting character animations to be "Smoother, but more poppy!" because of the conflicting needs of aesthetics and control latency. The best compromise I've found is to design a smooth transition, but have the underlying representation pop and the visuals skip immediately to mid-way through the animation.
- makecheck 10y agoI can see the it-adds-up argument but there are also plenty of techniques to deal with that. (Maybe it is an education issue for developers.) For instance, in a lot of cases, a human cannot reasonably observe a particular type of change on every frame so you can skip frames. What I mean is, suppose you have tasks A, B, C and D to perform “each frame”: you might be able to perform tasks A and B on odd-numbered frames and C and D on even-numbered frames, with the user no wiser, as long as the result seems fine. Another technique is to prioritize the start and finish but not in-between. Often, intermediate frames are relatively crappy from a “niceness” or even correctness standpoint, and nobody really notices because the frames go by quickly. As long as the end frame looks as nice as possible and everything is in exactly the right place, you can get away with a lot of short-cuts for the steps taken to get there.
- smallnamespace 10y ago> Another technique is to prioritize the start and finish but not in-between. The problem with techniques like these is that it's almost impossible to fully generalize them (e.g. in the case of intermediate frames, if some of them are really wrong then you get sudden clipping or jumpiness). So if your 'fast' technique only works for a certain set of parameters, then you have just introduced an implicit dependency into your system: things are fast enough while the app looks like X, but go a bit beyond that and it suddenly breaks.
- 1_2__3 10y agoCompanies don't make money off of performance.
- Domenic_S 10y agoThat's just patently false. One of many, many articles to the contrary: http://blog.gigaspaces.com/amazon-found-every-100ms-of-latency-cost-them-1-in-sales/ http://blog.gigaspaces.com/amazon-found-every-100ms-of-laten...
- goostavos 10y agoUh.. they've already _bought_ the car. What percentage of people will return a car due to a little lag when adjusting radio stations? e-commerce findings from a major retailer are, alas, not applicable to every domain
- wnevets 10y agoWell he did say Companies, not Auto Companies. There are a lot of companies that make money by having better performance.
- chris72205 10y agoSomeone may choose to not buy a car after test driving it and experiencing the laggy touchscreen...or after reading reviews by people who did already buy the car.
- teddyc 10y agoConsumer Reports has found that the functionality of the in-car entertainment system is the #1 indicator of customer satisfaction. You might not return the car, but you can bad mouth the system to anyone who will listen and purchase a different brand car next time.
- will_pseudonym 10y agoLack of performance is an attribute that would contribute to a potential consumer's attitude towards the whole car. It may not have as huge of an impact as it would for Amazon, but saying it has no effect is definitely wrong.