I just kind of figured we'd stop having UI lag by now. I work on a 24 core workstation with 64GB of RAM and things lag all the time. Not slow to complete, like jittery key entry and non-responses. Haven't we figured out thread prioritization by now? Can't we make sure something draws 60 times per second while things are going on in the background? My Android Studio build should be totally isolated from my inbox. I kn…
Almost all UI programing is single threaded. If the main thread is blocked for more than 10-16ms, then frames start dropping and the UI is unresponsive for that time.
Add locks and you add many more causes for the main thread to be blocked beyond pure computation.
I just kind of figured we'd stop having UI lag by now. I work on a 24 core workstation with 64GB of RAM and things lag all the time. Not slow to complete, like jittery key entry and non-responses. Haven't we figured out thread prioritization by now? Can't we make sure something draws 60 times per second while things are going on in the background? My Android Studio build should be totally isolated from my inbox. I kn…
More cores, more RAM, more cache, more concurrency will help create higher total throughput but usually also mean higher latency because of increased context switching, natural need for more resource locks, increased delay in searching/reading larger stores like cache & RAM, and, higher latency penalties when there are cache misses and/or applications that require write-through policies. Things like faster clocks (which is why we now have dynamic, turbo clocks, aka Intel Turbo Boost), lock-free schedulers, and O(1) (constant-time) schedulers. However, notice that we have few CPU SKUs that go above 4GHz or 5GHz? Why don't we have 10GHz, 25GHz or 50GHz CPUs? It's because silly things like heat, cross-talk, speed of light, and physics at nano scale get in the way. Higher clocks would improve latency. Also, applications can improve their latency if they're written to take advantage of multiple cores, their workloads are inherently parallel or mostly parallel, manage their own thread/process scheduling, and use lock-free work stealing schedulers. CPU OEMs have proven developers prefer the manage all this complexity AND also calculate their ILP (instruction level parallelism) for them. Intel's Itanium failed because it required explicitly declared ILP (from compiler and/or developer) which can be tricky especially when most CS literature/education materials, programming languages, software constrains itself to using simplistic single thread of execution mental/computer models.
That was a lot more interesting than the "man, bloatware" complaint I was expecting from the title.
He cant say 350MB for just one tab is bloatware while he is partially responsible for it. Sinclairs "It is difficult to get a man to understand something, when his salary depends upon his not understanding it!" comes to mind. Poor Bruce herding all those Google javascript cats.
Why do you say "he is partially responsible for it"?
Didn't BeOS get this right? I too wonder why UI threads are still so obnoxiously tied to... everything else. Put UI in the fast lane! (At least until some bug tries to make a bajillion calls a second) Then I remembered how much more complicated it is to write proper multithreaded GUI code :P
I remember Safari in the iPhone 3G would ALWAYS scroll even if it meant showing a checkerboard pattern while the page rendering caught up.
Gmail and Inbox both hang for me on my Chrome on Linux with almost no load. It's funny how tides turn. Initially Gmail was the king of performance.
I need 27 seconds on Firefox 52.9 ESR (Debian) and about 20,287 kbyte of data transferred in 148 requests just to reach an idle GMail tab. What is all this stuff even doing?
Mining your personal data for ad revenue. Or was this a trick question?
Interesting story in particular, but in general, performance and memory behave like any other resource that is plentiful: they get used up until things are slowish again. Like road space. Things get added on top of each other until the reduction in speed becomes visible. Because these days, unlike in the 90's, it's no help waiting for the next Pentium processor to come out this usually results in a heavy optimisation…
As someone who remembers those times, web apps have been a terrible movement. On the other hand I'm kind of happy that I can do almost everything the same between Linux and Windows, so it's not all bad.
Our IT department was running regular WMI scans of our computers
This seems like a big part of the problem.
While I recognise that IT departments at Google-sized companies do have some extra worries, I do feel that we’re gradually losing the “personal” from PC, and that seems pretty unfortunate.
So basically it is the problem with CFG (exploit protection) which is not ready for the cases when there are many allocations and freeing of excutable memory blocks.
Kinda; mainly that NtQueryVirtualMemory was super slow when scanning over CFG, which was bug fixed in the April 2018 Windows 10 update. It also uncovered a "bug" (performance weakness?) in v8 that they were able to fix so less CFG blocks were allocated. So kind of a win/win in the end, bugs fixed, world a slightly better place.
It didnt strike me as a bug, but a Windows brokeness workaround (windows doesnt release allocations).
I just kind of figured we'd stop having UI lag by now. I work on a 24 core workstation with 64GB of RAM and things lag all the time. Not slow to complete, like jittery key entry and non-responses. Haven't we figured out thread prioritization by now? Can't we make sure something draws 60 times per second while things are going on in the background? My Android Studio build should be totally isolated from my inbox. I kn…
This isn't meant to be an especially religious comment, but I regularly switch back and forth between OSX and Windows 10 and wanted to make mention of the differences. I also use Ubuntu fairly regularly but only over ssh so I'll discount it from this comparison. Both OSX and Windows 10 do suffer from UI lag but, in my experience, it is far worse on Windows 10 to the point where I have come to absolutely detest Window…
OSX capturing and buffering the password input on the login overlay is definitely nice, compared to windows 10 dropping inputs until it is ‘ready’ for the last 2 characters of my password.