Top
Best
New

Posted by akyuu 12 hours ago

Windows 11's built-in Weather app wastes more than 1 GB of RAM(www.notebookcheck.net)
419 points | 349 comments
ndriscoll 11 hours ago|
My gaming PC that I built in January 2006 that IIRC I used to simultaneously run Battlefield 2, Trillian, Xfire, Thunderbird, and Winamp with a 1680x1050 monitor had 1 GB of total system RAM.
josephg 4 hours ago||
Some of us still know how to write software like that. And enjoy doing it.

I made a little conference schedule app a few weeks ago for a conference I was at. I used my own rust UI toolkit, which calls in to cocoa to make use of native UI components. The resulting binary is about 500kb and it uses a couple megs of ram while running. It looks and feels like a totally native iOS app. As far as the OS is concerned, it is.

Even 500kb feels too big for what it is. I’m rewriting the core at the moment, and I think it’ll be more efficient as a result. But I’m still pretty happy with it.

WarmWash 1 hour ago|||
AI writes code like that, but people get pretty upset hearing it.

The program that I use to manage my small business, basically a GUI wrapper on an sql DB is a total delight to use, because everything happens instantly. Even opening it is instantaneous.

Modern software is such a bloated mess that you kind of get used to a 20 second start-up and a .25-1 second delay on every action. Then you use something that isn't bloated junk and it feels like actual magic.

SirMaster 29 minutes ago||
What happens if you keep asking AI to rewrite it to use less and less resources?
bschwindHN 2 hours ago|||
Is your UI kit open source? I do think calling into the native OS toolkits is the way to go, when they exist.

I'm curious if you use winit for windowing, or something lower level that's just mac specific.

josephg 2 hours ago||
I ported the leptos rust web framework to run on native platforms. Currently it works on ios, macos and linux (GTK). Eventually want to also add support for windows and TUI as well. It uses taffy for layout - which gives you the same flexbox and grid layout engines that web browsers use. Components are all fully native for the platform, via their corresponding binding crates (objc, gtk4, etc).

UI library is here: https://github.com/josephg/leptos-native

And here's the schedule viewer app I made with it. It runs silky smooth on device: https://github.com/josephg/dweb-sched

The whole project is currently experimental & vibe coded. It's missing a lot of components, and it has bugs. I'm currently rewriting it by hand to do it properly.

iknowstuff 45 minutes ago||
SwiftUI’s diffing is such a mess that I wouldn’t be surprised if fine-grained reactivity of a toolkit binding UIKit like this worked better. Do you have decent support for long lists via UITableView yet? Edit: it seems so!
glouwbug 10 hours ago|||
Fun fact, one of the XFire cofounders won Carmack's Ferrari at a Quake Tourney:

https://en.wikipedia.org/wiki/Dennis_Fong#/media/File:John_C...

metadat 1 hour ago|||
I still miss Battlefield 2. There is really nothing like it today, not even close. The dynamics with squads and a commander and A+ physics and overall game balance remain unmatched for all FPS games.

Fortnite, PUBG, COD, all are disgraceful in comparison.

misswaterfairy 1 hour ago|||
Check out BF2Hub. The community isn't big, but you can generally find a server or three with real players in it (just look for players with a ping; 0 ping means a bot).
opello 1 hour ago||||
I miss the squad gameplay of Battlefield 2 too. It hasn't been replicated since, in my opinion, and subsequent Battlefield titles changed the classes and made the available loadout options too flexible to require specialized play.
NoPicklez 42 minutes ago|||
BF2 was great, BF3 was definitely better, not that there was anything at fault of BF2.

I disagree with Fortnite and PUBG, whilst PUBG is a little clunky it did usher in a completely new game style AND importantly introduced much better situational audio which other games didn't have.

to11mtm 4 hours ago|||
I remember within the last decade noting that minesweeper from the windows store took more space than a pretty damn healthy Win98SE install (with minesweeper)...
alexjplant 39 minutes ago|||
Before I built a gaming computer circa 2004 I daily drove my family's old beige box that had a 350Mhz Pentium II with 64MB of RAM and Windows 98. I remember running CDex (because ripping CDs was all the rage), Trillian, and ZDaemon all at the same time without a hiccup. What a time to be alive!
qingcharles 2 hours ago|||
I just set up a web server for a hobby project on a $10 Dell PC that has 2GB of RAM welded to the board. After booting Debian 13 it still has 1.6GB of free RAM.

In fact, that seems a lot. Back in ~1996 I was running one of the EFnet servers on a Compaq with 8MB of RAM.

dddw 4 hours ago|||
Trillian, good old days. Still remember my icq number
Melatonic 4 hours ago|||
Think about all the performance you could have gained by instead running Trillian and Winamp on an old Thinkpad next to you with even less ram
functionmouse 9 hours ago||
take me back
ColdStream 3 hours ago||
Haiku OS is trying.
GuB-42 7 hours ago||
Putting aside the fact that it is horribly bloated. Accurately measuring RAM usage is tricky, there are several measurements, and no "right" one.

It is clear from the article that what eats up so much RAM is not the weather app itself but the framework it runs on. There is a "Renderer", a "GPU Process",... eating most of it.

The thing that the task manager doesn't tell you is whether or not these are shared components. It may be that the 662 MB used by the "Renderer" is shared between many Windows components, so killing that Weather app may not reclaim as much space as you may hope, instead, it would require killing every user of the component, some may be core system apps.

In addition to the distinction between private and shared memory, there is also the distinction between actual RAM usage and and virtual memory. It is possible for a process to memory map a 100 GB file. If you look at the address space, it will take 100 GB more of virtual memory, even though it may be actually zero physical RAM, but it is not always zero either, the parts of the file that are currently accessed take up some space, which may later be reclaimed by the OS by committing the page to disk.

Even the most obvious "I do a big malloc()" kind of memory use is not that obvious, the OS can overcommit, put stuff into swap, use memory compression, etc... And it can do that even if the system is not overloaded, as to make more space for the disk cache for instance.

So seeing "1 GB" in the task manager is just a vague hint of how it may affect performance. And not all "task manager" tools give the same value for the same program (so Windows vs Mac may be misleading). "Process Explorer", a more advanced version of the Windows task manager can give a lot more details, with different values of memory usage depending on what you are looking at.

ack_complete 7 hours ago||
> The thing that the task manager doesn't tell you is whether or not these are shared components. It may be that the 662 MB used by the "Renderer" is shared between many Windows components, so killing that Weather app may not reclaim as much space as you may hope, instead, it would require killing every user of the component, some may be core system apps.

It is the other way around, shared memory causes Task Manager to _underestimate_ memory usage. Task Manager's default views report the process private working set, no shared memory included. This means that 662MB is the _minimum_ amount of memory commit that would be released by ending the process.

> the OS can overcommit

Windows does not allow overcommit by default. It may compress or optimize memory allocations to reduce the physical working set, but the kernel will start failing memory allocations once physical + swap is exhausted regardless.

stronglikedan 5 minutes ago|||
The weather app itself and the framework it runs on are the same thing when talking about resource usage.
calmingsolitude 7 hours ago|||
> It may be that the 662 MB used by the "Renderer" is shared between many Windows components

From the screenshot in the article, this is the memory usage of the Renderer process spawned by the Weather App. I find it very unlikely that some other app (say, the Copilot app) can then piggyback on Weather Renderer process. Do you have a source for this?

> killing that Weather app may not reclaim as much space

Closing the weather app on my PC does in fact kill all child processes and frees up around 1GB of committed RAM. Are you not seeing the same?

kasabali 5 hours ago|||
> It is clear from the article that what eats up so much RAM is not the weather app itself but the framework it runs on. There is a "Renderer", a "GPU Process",... eating most of it.

You say tomato we say tomahto

At the end of the day bloated app is a bloated app its consequences are the same.

waynesonfire 7 hours ago||
> the 662 MB used by the "Renderer" is shared between many Windows components

Fine, shutdown the weather and stock ticker apps.

SBArbeit 9 hours ago||
Easy workaround for this:

1. Install uBlock Origin in Edge.

2. Start Edge, browse to MSN Weather.

3. Click the "Add an Application" button in the address bar to get a Start Menu icon for the page.

4. Delete the in-box Weather app icon.

Now you get the same Weather app in about 130MB of RAM, with no ads. It's not as nice as a native app, of course, but it's 1000% better than the useless ads and MSN feed that you can't block from the built-in Weather icon.

(Also, go into Widget settings and turn off "Discover / Microsoft Start feed". Same crap, different surface. Get rid of it.)

gerdesj 3 hours ago||
"Now you get the same Weather app in about 130MB of RAM"

What a wonderful world we have created where the fix for a 1GB RAM guzzler reduces it to a mere 130MB.

Now I could start off with my old ZX80 or even my C64 (which is doing fine, thanks, and sports a USB "drive" next to its Quickshot II) but I think my first 80486 is a realistic comparison.

That ran at 25MHz, had a maths co-pro in it had 4MB RAM, a 20MB IDE HDD and I think the Orchid graphics card had 0.5MB RAM. The monitor was of course a 14" CRT VGA. OK so late 1980s!

However, that thing could run Win 3.1 and Word 2 and I think I managed to wedge a dodgy copy of Quark Express on it. I could play F117 and other games on it.

Oh well, lets see what this Linux box has on it:

/usr/bin/inxi - 1.4MB

    $ inxi -w Yeovil,UK
    Weather:
      Report: temperature: 16.05 C (61 F) conditions: scattered clouds
      Locale: Yeovil, UK current time: Mon 10 Aug 2026 01:16:05 BST
        Source: OpenWeatherMap.org
Obviously, I could install a Flatpak to do that instead and waste far more resources 8)
aniceperson 9 hours ago|||
1. install ublock origin on Firefox.

not even being annoying, edge is removing manifest v2 very soon, breaking proper ad blocks just like chrome

rstat1 9 hours ago||
[flagged]
Catloafdev 8 hours ago|||
This is a narrative that MS, Google etc want you to believe. They gutted it for ads. That's what's happening. There are workarounds now, that's what the existing ad block options are. They are heavily kneecapped.
rstat1 4 hours ago||
[flagged]
Catloafdev 3 hours ago||
No, but you failed to comprehend the section of my comment where I mentioned "workarounds [...] are what the existing ad blockers now use"
s3p 5 hours ago|||
MV3 is severely limited in what it can do. One example that blew my mind is that chrome happily renders webpages immediately after application launch, while extensions are still loading.

Firefox, in contrast, doesn't let the network request fire off to the page until every extension is ready. So chrome is essentially screwing over the user, letting ads/ blocked content load, and intentionally degrading their experience, to make things appear slightly faster.

taviso 3 hours ago|||
That's nothing to do with MV3 though, that was also true with MV2. The situation actually seems improved in MV3, because static (and dynamic, IIRC) DNR rules are initialized and enforced immediately, right?
charcircuit 35 minutes ago|||
>MV3 is severely limited in what it can do.

Yet, I never see ads since ad blockers still have enough power to block ads.

nophunphil 11 minutes ago||
“If I can’t see it, it must not be there”
charcircuit 6 minutes ago||
That's the point of an adblocker. Web pages have ads, but with the extension they aren't there.
fakwandi_priv 8 hours ago|||
> According to Windows Latest, the high memory consumption is due to the fact that Weather is not a fully native Windows application. Instead, it is essentially an MSN Weather web app built on Microsoft's WebView2 framework.

I wonder how this approach is having such an high reduction in memory usage compared to what’s stated in the article. I would assume both use the exact same WebView here.

The only explanation here that I can think of would be that the “Add an application” starts it under an existing Edge process which shares it’s memory instead of completely isolated.

Scharkenberg 6 hours ago|||
Yes, using an already-running Edge instance saves a bunch of memory. Also, this approach has the advantage of allowing all of your browser extensions to modify your Web-App experience. WebView2 doesn't relay Edge extensions.
smileybarry 4 hours ago|||
WebView2 has some memory optimizations across several WebView2 instances, so it should save memory once you have multiple WebView2 apps running.
VCFundedGenYer 2 hours ago|||
Reminder that all Chromium browsers are hostile to adblockers and are actively removing them.

Use Firefox with uBlock Origin, do not use Chrome, Chromium, Edge, Brave, Vivaldi, etc.

jaimex2 1 hour ago||
Doesn't Brave have an inbuilt ad blocker?
EasyMark 35 minutes ago||
it does, and works almost as well as ublock for most things, but isn't nearly as flexible.
dualvariable 5 hours ago|||
The weather app isn't a native app either:

> According to Windows Latest, the high memory consumption is due to the fact that Weather is not a fully native Windows application. Instead, it is essentially an MSN Weather web app built on Microsoft's WebView2 framework. Task Manager shows multiple Chromium-based subprocesses running simultaneously, which contributes to the unusually high RAM usage.

If you have Edge or Chrome open (or anything else that similarly uses Chromium) then the incremental increase in RAM usage from the Weather app is likely much smaller than the headline 1GB.

dimgl 4 hours ago|||
> Easy workaround for this

Wipe Windows from your machine. Use Arch Linux. Problem solved.

deathanatos 1 hour ago||
I too want to shout how it's the Year of the Linux Desktop but I've been fighting mate-clock-applet recently. It has a memory leak, somewhere, and it slowly consumes RAM.

Normally though it's ~65 MiB for both clock & weather.

Also mate-screenshot is leaking RAM/processes. About ~40 MiB leaked per screenshot.

These things do tend to get fixed over time, though.

dimgl 1 hour ago||
Been using Gnome on Arch, it's been unbelievably stable
theropost 7 hours ago|||
waiting for a quick simple straight forward tool on github that takes care of this... Anyone?
pamcake 5 hours ago||
https://github.com/pbatard/rufus/releases

or

https://unetbootin.github.io/#distros

christophilus 2 hours ago||
A better workaround is to install Linux. My entire operating system, which includes Niri window manager and Dank Linux running a weather app, among many other things takes less around 1 gig of ram.
anonymars 1 hour ago||
Yes, switching operating systems is a reasonable alternative to switching weather apps
d5lt5 6 minutes ago||
In Windows group there used to be a review where you had to tell the board why the module you try to merge into main branch moved the baseline up by 100KiB.
mrheosuper 2 hours ago||
As embedded guy, sometime i wonder what those web devs are doing. A simple app that consumes multiple magnitude more RAM than the entire system i usually working with(~1MB). I assume it just does some HTTP query and render it on the screen, why the heck 1GB of RAM ?
asdfman123 18 minutes ago||
There's a bunch of other requirements you need to meet and no one cares about RAM consumption. So you do it the most time efficient way, not the most memory efficient.

Before you scorn, doing it the opposite way, taking more to use less memory, makes you less promotable, not more.

WarmWash 1 hour ago||
Just the absolute laziest implementation
ed_mercer 4 hours ago||
They're pointing to macOS and saying it uses 5 times less RAM there, but is 230MB for a weather app really something to be proud off?
ColdStream 3 hours ago||
Here is an example of one built using Real Basic on Mac Os system 7+. Probably uses less than 1MB.

https://tinkerdifferent.com/threads/snazzy-weather-a-snazzie...

kalleboo 1 hour ago||
And what's funny was at the time, REALBasic apps were seen as "bloated"
im3w1l 2 hours ago||
The thing with ram is that once you can fit everything you want into the space you have available there is little benefit in optimizing further or getting more space. 1gig -> 230MB may be a large enough reduction that it goes from "too big" to "small enough".
zapzupnz 3 minutes ago||
2025 and 2026 have proven that to be vastly untrue. It was never true. If it was anything, it was rampant laziness.
cogman10 9 hours ago||
As time goes on, I become more and more convinced that OSes need some sort of OS level GC pool which all GCed languages play in rather than having the language runtime provide the GC.

A major part of why these sort of simple applications are taking gbs of memory is because the GC wants to simply grow as much as it can to avoid pauses/jank. There might be 10% of the memory which is actually live in that 1gb. But because it allocates fast enough, the extra headroom is needed.

Even if it isn't the case that the GC is universal, having a shared GC amongst runtimes would be a boon in general. If I have 3 JVMs running, I might give them all 1gb of memory even though really each of them only needs 200mb to get their job done. The extra headroom is for when a burst happens. If I could combine all 3 into 1, I could save a lot of allocation overhead and general memory.

This does sort of exist in java (war deployments), but there are limitations that make it unappealing. For example, each of the JVMs have to be the same version.

pjmlp 9 hours ago||
Which is what OSes implemented in system languages with automatic memory management usually do, it is an OS service.

Oberon example,

https://people.inf.ethz.ch/wirth/ProjectOberon/Sources/Kerne...

Active Oberon example,

https://github.com/btreut/a2/blob/master/source/GarbageColle...

Bare metal Java, Go, .NET, Erlang, OCaml,... with bare metal deployments naturally have the runtime take the OS role.

afdbcreid 6 hours ago|||
This is far from trivial. Consider the WasmGC proposal, which had a somewhat similar goal.

Then C# came and said "we can't use it, we have different needs". So did Go.

wasmperson 3 hours ago||
> Then C# came and said

It's worse than that. The WASM GC standards team was warned in advance that the proposal wouldn't work for .NET, and they moved forward with it anyway:

https://github.com/WebAssembly/gc/issues/77

They were also warned about Go (though I'm not sure if they ever actually consulted with golang devs):

https://github.com/WebAssembly/gc/issues/36

More links:

https://github.com/dotnet/runtime/issues/94420

https://github.com/golang/go/issues/63904

mwkaufma 9 hours ago|||
The ram usage in this case is an order of magnitude lower if you install ublock in edge, as other comments have noted. Why would a system level GC affect wasteful adtech?

Any marginal efficiency gains will be wiped out with more adslop. Nathan's law.

goalieca 7 hours ago||
> A major part of why these sort of simple applications are taking gbs of memory is because the GC wants to simply grow as much as it can to avoid pauses/jank. There might be 10% of the memory which is actually live in that 1gb. But because it allocates fast enough, the extra headroom is needed.

There’s very minimal state for a weather app. You should be able to sweep the whole thing pretty fast. You could probably statically allocate most of that state.

Hackbraten 6 hours ago||
> There’s very minimal state for a weather app.

Except when it uses some kind of browser engine to render its UI?

firefoxd 11 hours ago||
This took me down a rabbit whole. Why can a simple single purpose app not be just a couple megabytes if not less? The popular options are electron 100MB+, or embedding python3 in your executable which is at least 40MB.

But if you build it natively, you should have all of Microsoft tools at your disposition, dlls and such. In theory, this should allow you to make a 1 mb app or less. But in practice, it's the worse option.

mort96 10 hours ago||
Pictures and frame buffers. If you're running fullscreen at 4k, you're probably gonna take two roughly 3840x2160x3 byte frame buffers for the window. Your designers want a background image which moves as you scroll in some parallax style; that's over 3840x2160x3 bytes more for the pixel buffer backing the image layer. And let's say roughly 50% of your screen is text with subpixel (aka full color) anti aliasing; that means another 3840x2160x3x0.5 bytes for the pre rendered text.

3840x2160x3x3.5. That's 87MB, in pixel data only. And it's a very minimal example; for the parallax image, you're gonna want the image to be significantly taller than the window; you're gonna want a ton of smaller (tho still high DPI) images for icons; a few different font atlases for different font faces you've loaded at once; maybe pre rendered pixel buffers for all sorts of UI components; etc.

And lord help you if your designers want any part of this to be animated.

(I'm playing a bit fast and loose with what lives on the GPU and what lives on the CPU here. On many systems, they share a memory pool anyway. But on systems with discrete GPUs, most of this is gonna be video memory. Though applications may wanna store CPU-side copies as well for various reasons.)

201984 10 hours ago|||
>Your designers want

Sometimes, you need to tell the designers NO. Moving background images don't help people figure out what the weather is going to be.

therealdrag0 6 hours ago|||
Many people enjoy a tasteful weather app. Granted a “minimal” UX toggle would be easy to add to reduce memory for those who cared.
docjay 4 hours ago||
I think the issue is with the recent definition creep of “tasteful.” Seems you might have the same mindset if you consider “minimal” to be the other option.
keicwifjwud 9 hours ago||||
And sometimes your engineers need to be a LOT less stingy. 1GB is clearly overkill for an app such as this, but ~300MB is perfectly acceptable if it works well, looks good and does what it should do.

There is such a thing as overdesign, but when you’re building a modern application, you must trust your designer’s sense of aesthetics and knowledge of UX patterns—two things engineers are often notoriously bad at.

kasabali 5 hours ago|||
> ~300MB is perfectly acceptable if it works well, looks good and does what it should do.

No it isn't. It isn't a word process for gods sake. It has one literally one job and 300 MB is like an order of magnitude off for that. This mentalty is the slippery slope that led us to the situation in the OP today.

gruturo 4 hours ago||||
You're off by 2 orders of magnitude if you think that a not completely incompetently coded weather app genuinely needs that kind of resources - even allowing for aesthetic choices and modern UX patterns.
christophilus 6 hours ago||||
Dunno. Many designers are pretty bad at UX. They’re OK at aesthetics, but that’s not the same thing.
mrheosuper 2 hours ago|||
Ah yes, Microsoft is famous for good modern UI/UX.
gruturo 4 hours ago||||
Assuming the app even works - since we're talking weather, allow me to offer an XKCD

https://xkcd.com/937/

LinXitoW 5 hours ago||||
Sometimes, you have to realize Hacker News is full of nerds that care about stuff nobody else cares about. Looks are so fucking important for many normal people. There's people that decide for or against a phone simply because it comes in a fun color.
mort96 10 hours ago|||
Honestly if the image is of the current weather it kinda does. I don't mind e.g Apple's weather app design at all
mrob 6 hours ago||
You probably have a SVG renderer in memory already, and you already have a frame buffer and/or compositor buffer(s). Why should adding a graphical representation of the weather require more than a few KiB?
valleyer 2 hours ago|||
In a composited window system (i.e., any Mac since Mac OS X and Windows since Vista [I think]), rendering from an SVG would have to occur in a window buffer owned by the application, so it wouldn't save any appreciable amount of memory, assuming the buffer is the size of the window. The days of having an application draw directly into the framebuffer are well in the past.
mort96 6 hours ago|||
Because a big picture looks pretty sometimes?

Not sure what you think "having an SVG renderer in memory" means exactly, typically the way an SVG renderer works is that you give it a huge chunk of memory and ask it to draw pixel data there from the SVG file. So even though the SVG is small on disk, rendering a 1000x1000 image from an SVG is gonna need a 1000x1000x3 byte pixel buffer (assuming no transparency or HDR shenanigans)

anonymars 1 hour ago||
> 1000x1000x3

Cool, that's 3 MB

aucisson_masque 6 hours ago||||
> i'm playing a bit fast and loose with what lives on the GPU and what lives on the CPU here. On many systems, they share a memory pool anyway. But on systems with discrete GPUs, most of this is gonna be video memory

Yeah this is irrelevant here, windows doesn't share both in 99 of the case.

mort96 5 hours ago|||
What do you mean by "windows doesn't share both"? Windows doesn't get a say, Intel iGPU systems literally don't have video memory
vel0city 2 hours ago||
IGPU systems on Windows usually set aside a fixed pool of memory for the graphics usually set by the platform. As in, if you need more video memory you need to go to the BIOS and reconfigure it. When you look at total system memory available in Windows it's the total installed minus however much you defined for the video memory. If you need to have the GPU mess with something you still have to a copy it from the system side to the GPU side. Applications can run out of video memory while still having available system memory.

It's only been somewhat recent that I've personally seen much hardware that allows for that reservation to be dynamically defined, and not with any Intel integrated graphics so far.

martheen 2 hours ago||
Iris Xe in 12th-gen do this, no idea since when it's added. There's still a minimum configurable shared allocation option in the BIOS, probably for legacy OS, but after booting Windows it can take up to 8 GB of the system RAM.
well_ackshually 6 hours ago|||
DWM quite literally does that all the time. For the general case it allocates GPU memory, but also swaps to system RAM or uses it as a synchronization mechanic when you have one screen on an igpu and the other on a dgpu.
firefoxd 9 hours ago||||
Good point. Though 4k image assets mean more that they look in 4k, not that their size is 4k. It might not be 87mb, but still way more than the couple mb I suggested.
well_ackshually 6 hours ago|||
??? Fast and loose is an understatement, at best it's a view from a rendering engineer that thinks all software acquires a DXGI swap chain and handles buffering itself, but it's flat out wrong and over two times too high at the very least.

* Not every app is full screen (especially not a weather widget.)

* Very few people actually have a 4K display. 1080p and 1440p cover over 75% of users already.

* You do not allocate a separate buffer for the main content and the parallax, applying a different transform does not need a dedicated buffer, just something the size of your asset. It can be a 640x480 upscaled asset for all you care.

* You also don't allocate a dedicated buffer for text rendering/hinting. Your text rendering engine keeps a texture atlas in a buffer which is eventually maaaaaybe reach a 4k texture if you display a TON of various glyphs, realistically they won't. DirectWrite will also share this atlas with other executables unless you explicitly ask for isolation.

* On windows, you write to DWM, which keeps a single buffet for all your windows. Every window does not pay that memory price. I'm pretty sure most compositors do something similar.

mort96 6 hours ago||
* I never said all software handles the swapchain itself. The front and back buffers are obviously not usually allocated in user code. But they're allocated nonetheless and contributing to memory usage.

* Not every app is fullscreen, but I was using a maximized app as an example. If you make the window smaller then yeah obviously the numbers get smaller proportionally.

* A ton of people have 4k displays, it's difficult to find a moderately high end laptop without a 4k display these days. In any case, that was the hypothetical example I used.

* If you have a window that's roughly 4k resolution, and you want a background picture which fills the entire window, that's gonna be a roughly 4k resolution pixel buffer (unless you stretch a smaller image, but that looks ugly).

* Depends on the text renderer. I have mainly used pangocairo, which is based around CPU rendering text to a pixel buffer. I know that this is the typical recommendation for handling high quality rendering of longer pieces of text with Canvas on the web too. Maybe a typical win32 app actually does render each glyph fresh every frame from a font atlas, I'm not familiar with Windows APIs specifically. I apologise for the inaccuracy if that's the case.

* I'm pretty sure you're wrong here? If DWM has only one buffer which all windows share, how does it handle the case where a partially obscured window goes unresponsive for a bit as the user removes what obscures it? In old school non-composited X11, the answer is that the X server paints in the newly revealed area with grey pixels and asks the window's process to re-render that region, causing a lingering grey region if the app is frozen. Preeeetty sure that Windows 11 doesn't do that. But do you have documentation on this?

ashleyn 9 hours ago|||
A lot of these applications run in Electron or similar libraries where a whole new browser instance, with all its overhead, is stood up for each application. The simplest answer is we need to stop trying to use web technologies as a one-size-fits-all GUI toolkit.
lelanthran 8 hours ago|||
> This took me down a rabbit whole.

The rabbit was too hungry to even stop to chew you?

firefoxd 6 hours ago|||
Haha, and it's far too late to edit!
fuzzfactor 7 hours ago|||
Beware the rabid rabbit and don't let your whole near his hole . . .
trzy 11 hours ago|||
The visual assets alone will be tens of megabytes.
anonymars 10 hours ago|||
Why, though? You need some icons and some map imagery, not 4K texture maps
chneu 10 hours ago||
Its 2026. You need 4k assets for job security.
Micrococonut 10 hours ago||||
Should be able to get by with using system graphics
iAMkenough 10 hours ago||||
For a weather app, you should be able to get by with a couple base vectors you modify based on conditions.
mort96 10 hours ago||
On disk yeah, sure. But you're gonna render them into a pixel buffer which lives in memory.
samrus 10 hours ago||
How did applications do it before? Like in the 90s or 00s
mort96 10 hours ago|||
WAY lower resolution screens so pixel and frame buffers were a tiny fraction of the size, non-composited graphical environments which meant there was one fewer frame buffer per window, and a visual style which typically emphasized large pictures/animations less.
nicoburns 10 hours ago||||
They had fewer graphics, and much lower resolution screens.
Dylan16807 10 hours ago||
Windows 98 SE kind of went overboard with the graphics (remember Active Desktop?), and a common screen size at the time was 1280x1024. But if you run modern stuff at 1080p (60% more pixels) or 720p (fewer pixels), you're not going to see comparable memory use.
mort96 10 hours ago|||
Windows 98 wasn't composited, which makes a huge difference.

And to be clear, there's a ton of unnecessary bloat today as well. It's just that even a lean and mean highly hand optimized native app is gonna be way bigger today than it was then, due to compositing, higher resolution assets, higher resolution screens and different design sensibilities. But most apps aren't lean and mean highly hand optimized native apps so.

Dylan16807 9 hours ago||
Compositing means you can excuse an extra dozen megabytes per megapixel of window size. The window in the article is less than a megapixel. That factors in the relevant part of screen resolution too. High resolution assets should scale alongside window size too, adding a fraction of the above dozen megabytes.

And I'm saying 98SE already had image-heavy design sensibilities all over.

You don't have to highly hand optimize to run a weather UI in a lean way.

vel0city 10 hours ago|||
> and a common screen size at the time was 1280x1024

Maybe if you were really rich and only used high end desktops. A lot of the computers I used back then were still 800x600, fancier ones were 1024x768. If you happened to also have a 2D accelerator card you'd potentially have 1280x1024. And lots of apps purposefully ran at a much lower color depth, it was common for games to run at 8 or 16 bit color mode.

Dylan16807 9 hours ago|||
I saw a lot of computers set to 800x600 but I don't recall any that couldn't be switched to at least 1024x768. Which is still quite close to 720p for making this comparison.

And yeah lots of fullscreen-ish things ran in lower color, but this is about desktop mode and I never saw a desktop mode that struggled based on color depth.

kasabali 5 hours ago||||
Cheapest local brand 15" CRTs could do 1280x1024 in early 2000s. because you weren't limited by the panel unlike LCDs.

You'd need better than perfect vision to be able to make use of it, though.

vel0city 3 hours ago||
It's less of a question of if you could get a CRT that could do it versus having a PC with the video RAM and drawing performance to do it effectively at high color bit depth. Tons of extremely common desktops at the time shipped with only 2-4MB video memory with their integrated graphics chipsets. You're not doing 1280x1024 at 32-bit color with 2MB of RAM.
koyote 5 hours ago|||
Early 90s maybe. By the end of the 90s and definitely early 2000s CRT screens were 1024×768 for the cheap crap and 1600×1200 for the high-end (with 1280×1024 as a mid-range).
vel0city 3 hours ago||
Yeah sure you can take a machine with only 4MB of video memory and try to draw a 1600x1200 CRT, but you're not going to be able to have that many colors.

It often wasn't a limitation of your monitor, it was a limitation of your video adapter. Rattling off some common specs of monitors isn't telling the full story of what most random people were actually experiencing.

I still remember having to upgrade our main home desktop at the time of Warcraft I I'd release because it didn't have enough video memory to meet the 8MB minimum needed. That was in 2002 on a machine purchased with XP, a Pentium 4 HT with 512MB of system memory. Not necessarily a low end machine, but obviously not a gaming PC at the time and much newer than many systems sold for Windows 98.

SV_BubbleTime 11 hours ago|||
Do all visual aspects of a weather app need to be loaded at once? Is the cost penalty loading a hundred kilobytes per image from disk really unacceptable?
doikor 10 hours ago|||
Even if the app is no longer using that memory it is not released until Windows thinks another app needs it.
vel0city 10 hours ago|||
And then people complain about how unresponsive applications are, all these little stutters as things pop in.
znpy 10 hours ago||
It can, but you have to know what you’re doing and you have to know it very well.

Looking at the opposite extreme, the guy that originally wrote the windows task manager (the thing that popped put when you pressed ctrl+alt+canc) posted a video about cloning the windows basic text editor in a 3kb binary: https://youtu.be/OG91c7xsNMc

Needless to say, the guy knows what he’s doing.

itopaloglu83 11 hours ago||
And it also ads on it.

Really Microsoft? Do you really need all the ads revenue from the weather app?

What’s next? Ads on the start menu?

mort96 11 hours ago||
Microsoft absolutely doesn't need it, but I'm guessing the weather app team (or the core filler apps team or whatever team is responsible for it) needs it to juice a metric to make some middle manager happy.

And it makes the middle manager happy because it lets that middle manager report better numbers to their superiors again.

Etc.

It's why all large dysfunctional organisations do self destructive stuff like this.

SlightlyLeftPad 11 hours ago||
“What value are you bringing to the company?” translates to “if you’re not printing money, you lose your job.”
dasyud 10 hours ago|||
I once worked on a project where the goal was to improve the reliability of MS Teams. The skip level manager was not happy when we said we cannot estimate what the revenue gain would be because it can't be measured.
mpyne 8 hours ago||
This risks getting into the Fisherian/Bayesian stats wars again, but it would be possible to project a revenue gain, even in advance of making the change. You'd do this in terms of improved customer retention, lower cost of future customer acquisition, increased price a Teams license could sustain based on a rep for higher reliability, etc.

Obviously it's not a change that you'd be able to pin a specific human decision-maker (who was marginal on Teams) down as to this change being the difference between a sale or not, but nor is the change in revenue going to be a random number uniformly distributed in (-∞,∞).

If the change was revenue-neutral, the skip level would probably have been justified in seeing if the teams working that project could have found something to do customers actually care about instead.

dasyud 7 hours ago||
[dead]
mapontosevenths 10 hours ago|||
Any manager who doesn't push back when given a perverse incentive should be fired. They are not leaders, they are followers... And not even very good followers.
anonymars 53 minutes ago|||
Fired by whom? Where do you think these perverse incentives are coming from?
mort96 10 hours ago|||
Yet they're the ones who get promoted because their KPIs are the best.
WakeUpPeople 11 hours ago|||
> What’s next? Ads on the start menu?

They already exist: https://www.howtogeek.com/windows-11-start-menu-ads-how-to-t...

Zopieux 5 hours ago|||
Patent was being sarcastic. Everybody heard about (or had the displeasure of seeing) those ads.
_trampeltier 10 hours ago|||
Don't they even had it earlyer and even let the DNS expire, so someone else could spam the startmenu?
ColdStream 3 hours ago|||
Yeah it is actually really sad when a company the size of MS still bows down to the great god Advertising!

Avert ye eyes for there are no morals in these bad lands of Redmond!

bossyTeacher 10 hours ago||
They do. Never forget, Microsoft's goal is to squeeze as much money from you as possible.
dabinat 10 hours ago||
That’s the goal of every publicly-traded corporation in a mature market. Wall Street demands ever-increasing returns and they can’t grow their customer base much so cost-cutting and fleecing existing customers are the only levers to pull.
rgmerk 1 hour ago|
It will be interesting to see whether OS and application developers start to face commercial pressure to debloat their applications.

For operating systems and their bundled applications, Apple's integration is an advantage here; the OS designers work for the hardware company and have aligned incentives. That doesn't mean they necessarily align with their customers, just that they are internally aligned.

Microsoft...do they even care about the snappiness of Windows desktops any more?

More comments...