16 ms·
24-core CPU and I can’t type an email
- rocky1138 8y agoGreat article! The only thing I wish was explained a bit better was the 2 TiB CFG memory reservation. What's that for, again?
- brucedawson 8y agoBasically, one byte of CFG memory "controls access" to 64-bytes of executable memory - indicating which addresses are valid indirect branch targets. With appropriate compiler and OS support this can help stop some exploits. Unfortunately it quickly gets really complicated so a bit of hand waving is necessary.
- TickleSteve 8y agoCFG == function pointer checks prior to calling them. The sparse/virtual bit mask is an optimisation technique so the validation of the target address is quick.
- joering2 8y agoEvery other paragraph the ad box tries to run a full screen video with unmuted audio by default. I got headache some half way thru article and then gave up reading. From authors work, it doesnt seem this particular blogger needs my two cents from ads he runs to live a decent life. Its sad how the state of internet looks like these days ;(
- throwaway2048 8y agouse an adblocker
- brucedawson 8y agoUggh. I'll talk to wordpress. They were supposed to turn off the video ads. I agree, it is sad.
- pdimitar 8y agoYou are a serious author and your articles are of top quality. Don't you think you should invest some time and effort in self-publishing? (Read: run far away from WordPress.) I too hate side activities when I'm in the zone but you have to admit this situation can eat away at your audience. :(
- scrollaway 8y agoIf you hate ads, and you hate the state of the internet, run adblock. https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=en https://chrome.google.com/webstore/detail/ublock-origin/cjpa... Seriously. Adblock is the way you have to fight back, to change the economics of the internet. Install it, use it indiscriminately, and make sure you tell others to use it. My company makes a decent chunk of money from ads btw. Not because we can't make money another, better and cleaner way, but because it makes no sense to leave money off the table when the adblock rates are so low.
- ax0ar 8y agoThat's not an option for mobile though..
- abricot 8y agoIt is for Samsung and iOS users. Both have the option of installing adblockers.
- ReverseCold 8y agoand Android users willing to use Firefox
- cellularmitosis 8y agoOn iOS you have an even better option: the little “readability mode” button in Safari.
- O_H_E 8y agoFirefox have extensions on mobile, plus ads make websites heavier, and suck more bandwidth _____________________________ Says the person with +500 tabs on chrome android
- flukus 8y agoFor some reason firefox on android removed the ability to install on SD card. My cheap phone doesn't have the space to spare on the internal drive.
- Semiapies 8y agoThat was a lot more interesting than the "man, bloatware" complaint I was expecting from the title.
- rasz 8y agoHe 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.
- ndh2 8y agoWhy do you say "he is partially responsible for it"?
- stevenhuang 8y agoIt appears the author works on Chrome.
- jadavies 8y agoFTA: "I work on Chrome, on Windows, focused on performance. Investigating this hang was actually my job."
- emilsedgh 8y agoGmail 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.
- beefhash 8y agoI 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?
- brewrwe 8y agoI ended up going to Thunderbird for my main email addresses (work & personal), with Rainmail for quasi-disposable addresses on my various domains. Works much better than Gmail did towards the end of my years using Gmail.
- luc4sdreyer 8y agoI have to use Thunderbird for work and I wish it was 1% as good as Gmail. The search sucks, it's slow to receive mail, it crashes quite often. Either your Gmail is profoundly broken or you have a magic Thunderbird. In case the latter is true: do you have any tips to optimise Thunderbird?
- Grimm665 8y agoHave been running Thunderbird for G-Apps based work email for over a year (Fedora 26,27). Using the Provider for Google Calendar extension works well for integrating calendar into Thunderbird. Other than fighting with the calendar occasionally (sometimes needing to force a manual sync to see coworkers' events), Gmail in Thunderbird has been pretty smooth. I have not noticed slow search, slow mail receipt, or application crashes. In fact, the search is often too good, in that after running it it matches hundreds of more emails than I usually expect. I usually stick with the quick filter which is a bit less flexible, but generally returns more useful results. Another advantage, on Linux at least, is that if you copy your ~/.thunderbird folder to another machine, all accounts, GUI layouts, settings, search results, tabs, etc move over flawlessly. I think you just have to re-sign in for Google accounts on the new machine and you are good to go.
- emersonrsantos 8y ago“I work on Chrome, on Windows” ... chrome_child.dll (stack base) KernelBase.dll!VirtualAlloc ntoskrnl.exe!MiCommitVadCfgBits ntoskrnl.exe!MiPopulateCfgBitMap ntoskrnl.exe!ExAcquirePushLockExclusiveEx ntoskrnl.exe!KeWaitForSingleObject (stack leaf) So don’t use a proprietary kernel that performs poorly?
- brucedawson 8y agoI'm confused about your suggestion. I work on the Chrome web browser on the Windows platform. If we want to allocate memory we, ultimately, need to call VirtualAlloc. I could work on Chrome for Linux, but then this bug on Windows might never get found or fixed. I am satisfied with my choices, despite the occasional glitches.
- steffan 8y agoThanks for the fascinating and informative detective story, Bruce. (And the bugfix, of course)
- dsr_ 8y agoThey failed to distinguish between "I use the Chrome browser on Windows to get work done" and "I work at Google, making Chrome for Windows". Human languages, what are you going to do?
- brucedawson 8y agoGood point. How's this: I modify the source code of the Chrome browser in order to make the final PE files that are compiled from the aforementioned source code work more efficiently.
- ReverseCold 8y agoOr how about "I work at Google, making Chrome for Windows".
- dzdt 8y ago
- codedokode 8y agoSo 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.
- brucedawson 8y agoYes
- codedokode 8y agoMaybe it is better to disable CFG then. Because now it makes a memory leak.
- brucedawson 8y agoThat was considered (see the discussion in the bug) but the v8 fix will also fix the memory leak, while still retaining the security value in CFG
- Someone1234 8y agoKinda; 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.
- rasz 8y agoIt didnt strike me as a bug, but a Windows brokeness workaround (windows doesnt release allocations).
- masklinn 8y ago> It also uncovered a "bug" (performance weakness?) in v8 that they were able to fix so less CFG blocks were allocated. They implemented a freelist, it's a common workaround for problematic allocators, but has its own issues (https://www.tedunangst.com/flak/post/analysis-of-openssl-freelist-reuse https://www.tedunangst.com/flak/post/analysis-of-openssl-fre...)
- bonestamp2 8y agoSide note... not related to the same root cause, but related to a similar end user problem... I've been staying in a lot of hotels lately and using a lot of very slow internet connections (not by choice, that's just what is available) and I wish Chrome had some sort of "low bandwidth" mode where it would only allow requests from your current tab, or maybe current window (easily open a new window to control which tabs could use bandwidth). That would make a big difference for us road warriors and nearly everyone when they're on vacation.
- brucedawson 8y agoNot a bad idea. Feel free to file a bug/suggestion at crbug.com, and I'll try to suggest such a tweak myself. We already do throttle hidden tabs, but I don't think we throttle their bandwidth usage directly. It is tricky, unfortunately.
- deleted 8y ago[deleted]
- PhilippGille 8y agoVivaldi is based on Chrome and adds some poweruser features. For example you can hibernate tabs. In your case, right-click on the tab you want to use, select "hibernate background tabs", done. I think Chrome has a tab hibernation extension you could try as well.
- dijit 8y agoI was visiting the US for a conference recently (not defcon) and I bought a T-mobile tourist sim, great idea, cost me less than 1/3rd of what my normal sim would have cost; however they had a data cap at 2Gb before they aggressively throttled you. I was very conservative in my use (thank you hacker news for being data-light) but managed to reach the cap near the end of my stay; my girlfriend who has no concept of what is heavy and what isn’t reached the cap in less than 2 days - after which; mobile data was effectively useless for her. I can’t imagine what life is like for those who /live/ on data caps- I feel like most web developers don’t give a shit about how much resources they use, not just in terms of CPU/Memory (“lol, it’s 2018 buy a better pc!”) but also in terms of bandwidth; which is regularly out of user control.
- etatoby 8y ago> This is because Windows locks are, by design, not fair Get better OS; problem solved.
- brucedawson 8y agoWhat OS do you have in mind? Apparently OSX locks are fair, but the downside is that this may reduce throughput. Linux locks? I have no idea and would be interested to know. I suspect that occasionally fair locks would be ideal, but I don't know if they can be implemented efficiently.
- cormacrelf 8y agopthreads don't guarantee fairness. futexes, the underlying locking primitive on Linux and the driver of the glibc implementation, don't either. Futexes do support priority inheritance, so you can use process priority safely. You might drop priority after releasing a lock to ensure some other thread gets a go, and as long as you control the priority of the other contenders, that can work well. Basics of futexes are here, but nothing about PI or fairness: https://eli.thegreenplace.net/2018/basics-of-futexes/ https://eli.thegreenplace.net/2018/basics-of-futexes/
- brucedawson 8y agoIronically, priorities as a way of "giving control" to another thread only work if you have a shortage of CPU cores. On my 24-core workstation I can normally run all runnable threads, regardless of priority. The implications are non-obvious.
- kazinator 8y agoYes because if you have a shortage of cores, you have more threads that are blocked or in a run queue. When you have threads queued, that's when prioritizing works: you need a backlog of waiting threads in order to choose the "best" one to proceed. If threads have cores, the prioritizing loses value.
- 8y ago
- megamindbrian2 8y agoMalwarebytes and McAfee cause this. Something to do with updating policies.
- jkaplowitz 8y agoThose do cause a lot of problems in general, but this particular issue had a different root cause. He traces it all the way back from the symptoms in the article. Worth a read!
- rasz 8y agoActually the reason might be the same, those programs also scan allocated memory space of user programs.
- yason 8y agoInteresting 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 cycle in the underlying engine. For example Firefox has advertised a speed-up several times in the last 10 years, each coming from a focused effort to rewrite or optimise the JS engine, the rendering engine, or something else. Then things accumulate again, until things are too slow. Obviously the cycles aren't wasted as you can do things with a few lines of high-level script that would've taken months to implement in the "good old times". But this development inevitably creates bizarre flashbacks where, occasionally, you're doing something simple like typing text on today's monster machines and it takes a few seconds for the screen to catch up your typing. When I started programming, things were roughly and more or less instant. Typing was instant. There was a very short code path from handling the interrupt to updating screen. The computers reacted more like physical apparatus. Terminals at shops, warehouses, hospitals, with text-based programs to update data were pretty much instant too. Good clerks could bang their keyboard through multiple subscreens of their program in seconds, and you were checked in, goods reserved, or patient data updated. Later, when multitasking hit the mainstream, flipping between programs was instant. (Not on Windows, though.) Things like I/O took its time, of course, but at one point there was a peak moment where a software machine had nearly as low latencies as a physical machine. From those times things have mostly gone downhill. Yes, we have immense processing power and near endless fast memory and disk storage. You can switch between browser tabs 300MB each pretty fast but there is a constant, nagging sense of slowness present all the time. Maybe sometimes switching that tab or bringing up another program takes longer, surprisingly, or there is something simple that just doesn't happen right away. The feeling of instant responsiveness is broken into shards: you can still see a reflection of it if you happen to look at the right angle but mostly its crumbles are pointing elsewhere. Things like BeOS tried to reach back to that, with varying but acknowledgeable success. But real success in terms of popularity and market penetration seems to come from piling up stuff until things get too slow. So I doubt we never get back to the old world of instant response in spite of processing power keeps climbing up.
- 8y ago
- avip 8y agoOn a completely different matter... have just switched to Gmail new UI, and now my mac Mail keeps hanging on threaded emails while consuming very high CPU. Anyone else encountered this issue?
- reitanqild 8y agoWhat browser? For the last couple of years it seems I'll get some issues on some Google properties if I dare use a different browser than Chrome. For a while it was search results doing interval training on my CPU, while the page was supposedly idle. Last it got to the point where I started troubleshooting it was calendar that acted up. You'd think a company like Google had resources to verify the UI across at least the 3 or for biggest browsers across the three biggest desktop platforms, -but it doesn't seem like.
- close04 8y ago> You'd think a company like Google had resources to verify the UI across at least the 3 or for biggest browsers Should they ever want to do that. I think I've read multiple discussions in the past about how Google is optimizing exclusively for Chrome while hurting the performance and compatibility with any other browser. Which is why Chrome is now basically called the new IE6.
- DoctorOetker 8y agoI have also been noticing this for a while now... there was a hacker news recently about banks and other firms mining behavioral biometric data (cursor freezing, typing speed, phone angle, probably a load of other metrics likehow often you backspace and pause to reflect what you write or rewrite) for authentication purpouses... Perhaps google is doing this too?
- habosa 8y agoI 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 know this is a bit orthogonal to the article and that I'm certainly not well informed about Operating Systems these days, I'd love to get schooled in the comments.
- daeken 8y agoI have a similar workstation (though 12 core I think) and recently I've thought about just running entirely separate VMs, each with dedicated cores and RAM. I'm sick of random slowdowns like you mentioned.
- scns 8y agoI think qubes os could be a good fit for that workflow
- brucedawson 8y agoI'll go into more details in part two, but part of the problem would have reliably disappeared if I had been running a single-core CPU. Locks are hard.
- raattgift 8y ago> Locks are hard. Yes, especially when the OS does nothing to help a backing-off contender acquire a resource that is greedily dropped and contended by another thread. > I'll go into more details in part two Great! In anticipation of that, I have a couple questions: > but part of the problem would have reliably disappeared if I had been running a single-core CPU Single-core or single-thread? Does the atomic instruction switch to the other HyperThread generally? Do you see the same symptoms if you have a sufficient number of other unrelated CPU-intensive threads trying to run that the OS will want to deschedule the aggressive contender thread(s) from time to time? The ways to deal with this that come to mind are the aggressive contender thread(s) sleeping from time to time, or yielding in hopes the decision about waking up the thread recovers some fairness lost by the decision about which lock waiter win. Perhaps one could just put the lock's cache line on as equal a NUMA footing as it can (a flush, for instance) so the aggressive contender has a chance to lose a race. However, having to reason about cache coherency protocols (differing from vendor to vendor and even same-vendor model to model) seems like a huge headache that anyone would want to avoid if possible. Is a fix described in the long crbug discussion?
- dingo_bat 8y agoIf I'd been tasked with debugging that, I'd have given up halfway and gone on a vacation.
- the_cat_kittles 8y agodebugging tour de forces should be a genre unto themselves. this one is a classic
- deleted 8y ago[deleted]
- deleted 8y ago[deleted]
- _pmf_ 8y agoI'm using Sylpheed, the same e-mail program I used 16 years ago. I highly recommend it.
- reitanqild 8y ago> For some reason most people see either no symptoms or much milder symptoms than I do. This seems to be right for "most people". But there are definitely a few people who are annoyed by issues like this but aren't in a position to troubleshoot and report it. Even I, after helping people with computers since mid nineties I still can't troubleshoot like that. I'll fall back to latency checking and turning off services one by one, combined with a fair amount of experience + googling.
- gabrielcsapo 8y agoMo memory, mo problems.
- dasmoth 8y agoOur 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.
- ndh2 8y agoHi Bruce. This is a fantastic article, but I needed to read it twice to understand everything. Very dense in information, and sometimes the order of things make it hard to follow. Sometimes you tell us what you did (e. g. modified the virtual memory scanner) before telling us why (what CFG is, how it works), which was confusing. > It turns out that reproducing the slow scanning from the sampling data was quite easy. This was the first thing that went over my head. Going from one stack trace to reproducing it is quite the jump. Maybe add a sentence "The interesting part of this trace is NtQueryVirtualMemory, which is used to scan process memory." Might be obvious to you, but for me that trace was "just a bunch of Windows stuff" at first.
- scns 8y agoI notice this sometimes in books or tutorials, that stuff you need for code to run is implemented later.
- brucedawson 8y agoThanks for the feedback. The full investigation covered about two weeks and I was having trouble condensing the story into a single post. I appreciate having a particular problematic transition pointed out. Fixed.
- peterept 8y agoHave to give it to Apple for acknowledging the difficulty in writing responsive (as in no lockups) applications and designing multiple developer framework solutions to solve it (Grand Central Dispatch and NSOperationQueue). Both those are designed to enable developers to easily offload work to background threads and prioritise queued work for the user. No open-for-interpretation thread priorities, but named QoS priorities (User Interactive, User Initiated, Utility and Background). It makes much more sense for that abstraction. We just need more developers to make use of it.
- mort96 8y agoMaybe more developers would make use of it if it was open source, existed for other platforms, and available for languages people actually use on those other platforms.
- agumonkey 8y agoSuperb article. Call all your colleagues and make a book with all your stories :)
- Animats 8y agoSo why are we in this mess? Because there are still buffer overflows. Address space randomization is done because buffer overflows allow exploits. But rather than fixing the underlying problem, we now have complex schemes to spread programs over the entire 64 bit address space to make such exploits unreliable. Then, apparently Microsoft's Javascript JIT engine has enough problems with buffer overflows that each compiled program is in a different random part of the address space to try to prevent Javascript exploits.
- lazyjones 8y agoIsn‘t that a bit ignorant when nobody is forced to access their e-mail through a website running JIT-compiled JS in a browser with built-in OS features on a bloated, graphical UI of an OS with the burden of 25+ years of backwards compatibility? A fast client running on a lean OS would not exhibit these problems - and AFAIK gmail still supports IMAP. (I use Fastmail on MacOS&IOS/Safari and have no such issues either).
- tralarpa 8y agoWeb applications are the best example for Wirth's law. It's really mind-boggling if you think about it. None of the client-side components of a web application were originally designed for what they are used for today: 1. a programming language (Javascript) that turns into a nightmare if you try to write programs with more than a few thousand lines 2. a user interface that requires you to learn two additional declarative languages (HTML and CSS), both of them equally incomplete and crappy. 3. an API between 1 and 2 that is so lacking that you need an external library (e.g. jQuery) to reduce the amount of boilerplate code to a sane level. 4. a network protocol (HTTP) that was designed for static web pages with a few pictures and that has serious performance issues for anything more complex. 5. and finally, the whole thing implemented in a language (C or C++) that is fast but offers you plenty of opportunities to shoot yourself in the foot in obscur ways security-wise. Things are changing fortunately (HTTP/2, QUIC, Rust).
- dasmoth 8y agonobody is forced Pretty certain Google Apps administrators can disable IMAP and POP for their organizations.
- Animats 8y agoThis never happens with Thunderbird or K9 Mail.
- verbatim 8y agoActually, I run Thunderbird on Linux and have frequent issues with it pausing and hanging on me. (Among other issues related to it seemingly just having trouble handling large amounts of email -- but that's not important to dive into here.) Let's not act like other complex software isn't also likely to end up with similar issues.
- some_account 8y agoI'm running Manjaro Linux with Deepin Desktop on a Dual core 0.9Ghz CPU with 8 GB of memory. Boot speed from off to login is less than 5 seconds. From hibernate it's instant. My girlfriend brought similar desktop to work and people with windows couldn't believe the machine was that fast. It runs circles around their new windows laptops with tons of memory and cpu cores. Firefox loads in a second. Kingsoft office also loads in less than a second. I think it's time people start to understand what is out there now as options for their laptops. And in particular, deepin desktop is very fast and beautiful.
- sadamznintern 8y ago.9ghz in 2018!? What machine is this?
- bcaa7f3a8bbc 8y agoIntel Core-M? A SoC-like, high performance, low power mobile CPU. Performance per MHz ratio is high, allows reasonable performance with low clock frequency.
- some_account 8y agoYep it is. Also the computer don't have fans so it's dead quiet at all times. It's an Asus Zenbook ux305.
- zlynx 8y agoIt could be my 2017 Dell XPS 15. If I really want to extend battery life, forcing the CPU clock down to 800 MHz is a good idea.
- johnchristopher 8y agoIt has nothing to do with Linux though. This morning my ubuntu 18.04.1 running kde took 2 minutes to boot and then 3 minutes and a half to load the desktop. Then it'd hang on the menu when typing/searching for an application, I'd wait for the menu to disappear and then it'd work. shrug
- bcaa7f3a8bbc 8y agoIt seems many comments missed the point. The article is not about how bloated modern software is, how many useless features and programs are wasting CPU cycles for pointless jobs, etc. (Yes, modern software is bloated, for this reason, I'm using the MATE desktop on a minimum Gentoo installation, but this is not what the article is about.) It is describing how web browser, a piece of software with extremely high inherent complexity, interacts with the memory allocator of the operating system, another piece of software with high inherent complexity, combined with a rarely used feature from Gmail, can trigger complex and complicated interactions and cause major problems due to hidden bugs in various places. This type of apparent "simple" lockup requires "the most qualified people to diagnose". These problematic interactions are unavoidable by running fewer "gadgets" on the desktop environment, it can be triggered and cause lockups even if the system in question is otherwise good-performing. Installing a Linux desktop doesn't solve this type of problem (though this specific bug doesn't exist). The questions worth discussing are, why/how does it happen? how can we make these problems easier to diagnose? what kind of programming language design can help? what kind of operating system/browser architecture can help? how can we manage complexity, and the problems came with such complexity, what is its implications in software engineering, parallel programming? etc. From another perspective, bloated software is also an on-topic question worth talking about. But instead of the talking point of "useless programs wasting CPU cycles", or "install minimum Debian", we can ask questions like "do _ALL_ modern software/browser/OS have to be as complex as this?", "what road has led us towards this complexity nowadays?", "what encouraged people to make such decisions?", "can we return to a simpler software design, sometimes?" (e.g. a vendor machine near my home, trivially implementable in BusyBox, or even a microcontroller, are now coming with full Windows 7 or Ubuntu desktop! Even the advertising screens use Windows 8, and BSoD sometimes, despite all they need to do is just showing a picture. same thing for modern personal computers.), or even "is Web 2.0 a mistake?" (so we are here on Hacker News, one of the fastest website in the world!). These topics are also interesting to talk.
- tralarpa 8y ago> The questions worth discussing are Interesting that you ask how to diagnose and manage the complexity, but not how to avoid it. Do we really need a more or less complete OS+VM (aka web browser) running on top of another OS (Windows etc.) to read e-mails?
- monikagab 8y agoProporciona completa libertad en un entorno visual. El objetivo es ayudarte a crear páginas sin esfuerzo y rápidamente. http://es.exai.com/funciones/wysiwyg-editor http://es.exai.com/funciones/wysiwyg-editor
- ChuckMcM 8y agoHoly smokes! That is a freakin' awesome deep dive into a bug that has be irritating the crap out of me of late. My gmail window would just freeze for long periods of time, other windows were fine, and restarting the browser (Chrome) would fix it for a while. I had zero idea how I would figure out what it was doing, now I have a road map for looking at these kinds of things. Clearly some tools to play with there.
- rusk 8y agoFor me what’s unforgivable is not being able to bring up task manager ...
- jwilk 8y agoPrevious post: https://news.ycombinator.com/item?id=14733829 https://news.ycombinator.com/item?id=14733829
- vectorEQ 8y agoi love this article, it does show some of the bloat of modern operating systems etc. but really that bloat can be controlled and tamed. This kind of technical 'solution' to one problem which is causing other subtle issues, and eating away at our resources is a big issue though in a lot of modern systems. There are so many 'hidden' or sneaky mechanisms which can have bad effects on other programs if they aren't well understood.
- alkonaut 8y agoI don't mind so much when a single program that I'm using interactively has a pause, even though it's annoying as hell. What really bugs me is that regardless of how many cores I have, there is always one pegged by that annoying background service. If I start up windows, you can bet that windows update will first peg a core for a few minutes. Then the builtin windows antiviris takes over (perhaps because win update wrote some files, who knows), pegging a core for a few more minutes. Then my backup program service (iDrive in this case) pegs a core for a few more minutes. All of these programs I understand why they are running, but despite me setting "quiet hours" and "please backup only at night" etc, they seem to run for several minutes when I least want it. After all these programs are done (or, I have killed their processes and stopped their services more likely), some completely random apps and services seem to always take a core and peg it. SNMP (some network protocol service) often does it for hours on end. Killing it doesn't make anything obvious stop working - so I have no idea why it can use 100% cpu for hours on end. Explorer.exe (the desktop process) often goes into 100% cpu-mode. The "sound graph isolation" service is a common culprit. When doing normal desktop work, this is often barely noticable. But when I boot my windows machine, it's usually to play a game, immediately after startup. And despite having many cores to spare, if one core is pegged, the framerate is 20fps instead of 100fps. This is presumably not because of CPU starvation, but more likely because of competition for memory/cache/storage resources. I don't understand how all these services must use 100% CPU for minutes, on a fast cpu core, and why they must run ANY logic on startup, which is when the user is most likely to use his machine. Don't even read your app config on start of process. Sleep a few hours and THEN wait until the machine is idle and THEN do logic! Using power save modes is no better. When you take it out of sleep after 12 hours, the services are very eager to check for updates or antivirus or backup again, regardless of time. I wish windows could just let me use my machine for what I intend to - which is use ALL my cores for ONE foreground application, ONLY. I'd be happy to boot into a freaking "game mode" or "work mode" which is like safe mode and has ZERO crap running (no unnecessary services, no scheduled tasks can start and so on).
- madez 8y agoAnalytics about you and your machine won't get collected by themselves. Have you noticed this phenomenon with free software?
- KevanM 8y agoWait until this person puts a CD or DVD in the drive.
- titzer 8y agoJust wanted to say publicly: awesome job root-causing this, Bruce! Your dedication to the deep-dive is unparalleled.
- milankragujevic 8y agoI don't want to bash Windows 10, but it's seems interesting that for me, on a laptop with 4GB of RAM, Windows 10 is extremely laggy and stuttering and acting "dumb" (app loads an empty window then I have to wait for it to "Not responding" it's way to reality, then it loads fully and works). I know, I know, RAM is the problem, upgrade it blah blah get a new PC, etc. But Windows 8.1 works well enough, presumably Windows 7 would even better if it wanted to boot off of a UEFI bootloader... Ah, I literally am going to have to switch to some Linux distro if I want to continue using it when Win 8.1 support ends... :/
- brucedawson 8y agoPart two is here: https://randomascii.wordpress.com/2018/08/22/24-core-cpu-and-i-cant-type-an-email-part-two/ https://randomascii.wordpress.com/2018/08/22/24-core-cpu-and...