8 ms·
It’s an equivalent app to make a comparison with, one from an OS company. But yeah, I still remember when a weather app would take 10 MB and I was complaining
by nashashmi 2mo ago
It’s an equivalent app to make a comparison with, one from an OS company.
But yeah, I still remember when a weather app would take 10 MB and I was complaining (1999)
- blackhaz 2mo ago10 MB is ridiculously overbloated. 1 MB or something in that vicinity should be more like it.
- david-gpu 2mo agoHow much money are these companies going to make by reducing their weather app to 1MB, or 10MB? How much is it going to cost them to get there? The world doesn't run on personal aesthetics, when nobody is willing to pay for them.
- fragmede 2mo agoThe MacBook Neo has only 8GiB of RAM. This is widely decried as not enough. The RAMpocalypse means that 8 GiB is going to have to be enough or else it'll eat into Apple's margins. The Neos are wildly popular though because people have used it and 8 GiB is fine. So while the singular weather app being smaller itself isn't material, in aggregate, macOS being more efficient is something that lets Apple sell a lower spec product while still justifying a higher price and thus better margins for Apple.
- bilekas 2mo agoLet's not ignore the new "windows copilot laptops" that come with 4GiB. https://en.gamegpu.com/news/zhelezo/defitsit-pamyati-zastavil-hp-snova-vypuskat-noutbuki-s-4-gb-operativnoj-pamyati https://en.gamegpu.com/news/zhelezo/defitsit-pamyati-zastavi...
- SXX 2mo agoInsanity. 4GB was often not enough even back in late Windows 7 era.
- Narishma 2mo ago4GB is completely fine in Windows 7.
- colejohnson66 2mo agoNot to mention that on 32-bit without PAE, that was all you could get. Nothing more.
- kalleboo 2mo agoI thought you were limited to 3GB without PAE, since you needed at least 1 GB dedicated to memory-mapped I/O? I was never a PC guy though so I could be mistaken.
- justsomehnguy 2mo ago> The MacBook Neo has only 8GiB of RAM. This is widely decried as not enough. Bwahahah! https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=macbook%20%208gb%20enough%7Cfine&sort=byDate&type=comment https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
- fragmede 2mo agohttps://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=macbook%20%208gb%20%22not%20enough%22&sort=byDate&type=comment https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
- justsomehnguy 2mo agoI really didn't want to link that thread but I guess it would show it the best way: https://news.ycombinator.com/item?id=47331863 https://news.ycombinator.com/item?id=47331863
- vor_ 2mo agoApple has been using the "macOS is more efficient" excuse since the early 2000s to justify skimping on RAM.
- nashashmi 2mo agoThese days we have an AI system to do exactly this kind of optimization, too expensive for humans, and too cheap compared to consuming expensive modern hardware
- inigyou 2mo agoCan AI optimize? All signs point to it writing extensive amounts of unnecessary code
- LinXitoW 2mo agoHey, just a few more years of rising memory prices and it'll actually be a marketing term how much RAM something uses.
- Const-me 2mo ago10 MB is not too bad for a GUI app. If the app is full screen, display is FullHD and has 8 bit depth, that's almost 8 MB memory for the back buffer alone. Enable HDR and pixels become 8 bytes RGBA16_Float instead of 4 bytes BGRA8_Unorm, twice as much memory.
- deleted 2mo ago[deleted]
- deleted 2mo ago[deleted]
- perching_aix 2mo agoThis is only relevant if we assume CPU rendering. The article described system RAM use, not video RAM use. Task Manager doesn't combine the two. They clearly spent it on maintaining their independent Chromium instance instead.
- Const-me 2mo agoTrue, but many modern computers are using unified memory. On such systems all memory is almost equal, despite often reported differently. For example, on my 5 years old laptop with integrated AMD GPU, windows 10 calculator in default state uses 33 MB system RAM, 9.6 MB dedicated VRAM. Maximized to FullHD screen, same app uses 36 MB system RAM, 13 MB dedicated VRAM. Maybe the OS counts VRAM as active private working set, maybe the app uses more than 1 buffer. Regardless of the reason, it’s IMO unrealistic to expect a modern GUI app to consume less memory than required for the frame buffer for its window.
- vel0city 2mo ago> many modern computers are using unified memory. Not really true. Even machines with integrated graphics in Windows aren't truly using a fully shared memory pool. Usually the hardware reserves a chunk of the system memory for the iGPU.
- 2mo ago
- cdud3 2mo agoThe KDE Plasma weather app takes in maximum 1MB.
- lynguist 2mo agoI'm not sure if you're reply hunting or we talk about different apps but how would you fit the Qt runtime, Javascript runtime, font cache, graphics, networking libraries, etc in this limit? This can't physically be under 70 MB, and more like 100-200+ MB.
- Telaneo 2mo agoMany of those things are already in memory just from running an empty desktop.
- rpdillon 2mo agoSibling comment called it: these are dynamic libs used by the desktop, so the incremental RAM usage is low. That's a good approach! Makes me wonder what the heck MS is doing to get their app to add an incremental gig to memory usage.
- cdud3 2mo agoCorrect.
- inigyou 2mo agoDLLs are hopefully shared. But when you run a JavaScript interpreter and load some JavaScript library, in several different processes, that is not shared. Each process gets an independent copy of the library because from the kernel's perspective it's data.
- cdud3 2mo agoThe JavaScript interpreter is shared too since the Plasma Weather app is loaded as a shared library plugin into the Plasma process and uses the functionality already loaded and present in RAM. The same concept is used with background services which run in the kded process. There is no need to have a set of full web browser processes per service.
- rpdillon 2mo agoI mean, you're getting dumped on for this, but it seems about right? For an extreme example: curl https://wttr.in/ Inside of a conky widget would do the trick, I think. https://github.com/brndnmtthws/conky/wiki/Lua:-Shell-Integration https://github.com/brndnmtthws/conky/wiki/Lua:-Shell-Integra...
- baist0 2mo agoLOL. it's a beautiful!
- magackame 2mo agoI think you guys on HN can be a bit out of touch maybe? On my linux machine (measured with tux-manager): nautilus 177 MB kitty 150 MB alacritty 107 MB mpv --idle --force-window 160 MB winit empty window + OpenGL context 100 MB tux-manager 69 MB hexchat 55 MB gnome-terminal 47 MB st 12 MB xterm 12 MB All these apps are what you would consider native, good apps. Written with Qt, GTK, some in low level langs like C\C++, Rust as well. There is of course different ways to measure the usage and maybe some more testing needs to be done, but stuff like 1-10 MB seems completely unrealistic. I think any empty Qt/GTK app eats 40 MB at least. Only thing that even gets close is st at 12 MB. And mind you it's a terminal (which is 1000x simpler than any modern GUI app, doesn't load any assets etc) and it doesn't even use any GPU accel (which itself seem to add a lot of baseline cost). Honestly I was a bit surprised myself. I have a Rust winit + ash vulkan hardcoded triangle demo app and it eats 86 MB (the binary itself is 5.5 MB). I would love to know, if anyone could explain why GPU accel seems to eat up so much RAM. Like yeah, there are a bunch of images that live on swapchain, but they should all be in VRAM. Outside of that I don't see what would require MBs worth of overhead.
- preg_match 2mo agoYes these are all very, very complex applications though. But I agree: using more memory is good, actually, because it means more stuff is being cached. Nautilus is probably pre-indexing directory structure so it doesn't have to read disk every single time you open your home folder. That's good. Oh, and thumbnails. Thumbnails are incredibly expensive memory wise, but very useful! Also modern apps have A LOT built-in. Tons of font management stuff, accessibility, they work on many different environments. I mean, look at everything that goes into a modern terminal emulator. But... a weather app is much simpler, IMO, than Nautilus or Kitty.
- torginus 2mo agoCounterpoint: Nautilus is both slower and less stable than Windows Explorer on large folders, even though the Linux filesystem is much faster. These super-indexed desktop linux search functions are also dog slow, while `grep` and `find` in the terminal are much faster (for searching inside files), and those certainly don't cache anything.
- khazhoux 2mo agoEven 1MB is too much. I expect a modern weather app to be <20K.
- inigyou 2mo agoYou'll blow past that if you include any graphics at all.
- binaryturtle 2mo ago`ansiweather` needs like ~6.28 MiB (measured with `/usr/bin/time -l` on OS X), but it's a bash script that invokes cURL, so there's certainly various overheads there too. One probably could get this down way below ~1 MiB with a properly tuned straight executable written in C (best not to use any of the "modern" stuff like Rust and Go, their default binary sizes for outputting "Hello, world!\n" are already extreme :-) ) By default anything needs at least 532480 bytes RSS on OSX (I tested it with the most minimal C hello world), so that's a threshold one probably can't beat on OS X at least. We probably could kill that value on Amiga OS with the exact same functionality. :-)
- inigyou 2mo agoOn Linux you can bypass libc and use as little memory as you like. When you don't use libc and don't use dynamic loading there is no strict lower bound although you still start with a certain default stack size.
- guiambros 2mo agoUnrelated, but it reminds me of this C64 demo [1] I posted earlier this week: the whole thing in 17.8 KB. [1] https://news.ycombinator.com/item?id=49205592 https://news.ycombinator.com/item?id=49205592
- deleted 2mo ago[deleted]
- deleted 2mo ago[deleted]
- glimshe 2mo ago10MB to tell me the weather from a remote server... Let's remember that the sprawling world of Legend of Zelda SNES (a Link to the Past), including all graphics, music, code and dialogue was 1MB.
- beloch 2mo agoWhat else might that weather app be doing to justify the memory footprint? MS might suck at memory efficiency, but you can't claim they'd ever miss an opportunity to monetize their users. How can a weather app make MS money? MS has asked themselves this, so maybe we should too.
- usea 2mo agoYou're right that it's a matter of incentives, but it's because of cost not revenue. It's bloated not because of a sneaky plan to include revenue generation. It's cheaper to make it bloated because quality is costly. They can externalize costs to users and nobody cares.
- TitaRusell 2mo agoI play videogames. As soon as it became technically feasible to patch games we began to see videogames come out with first day patches. When you take away the constraints the slop emerges. You could not make mistakes in software when it was all printed on CDROMs and DVDs.
- smelendez 2mo agoI remember playing The Elder Scrolls: Daggerfall in the 1990s. It came on CD and was very buggy, and I would periodically call Bethesda and they would send me the newest patches on a floppy disk.
- inigyou 2mo ago1MB is about the lowest memory usage you can get on Windows 7, because of reasonable tradeoffs made in the operating system to things like buffer and stack sizes. The OS creates a few threads for you, those threads have stacks and they didn't optimize the allocation size of those stacks - they used a currently reasonable default.
- derac 2mo agoI prompted my own windows taskbar weather app in rust with radar and forecasts and it's 233 kB. https://github.com/derac/WeatherTray https://github.com/derac/WeatherTray I use Linux now, so you're on your own if there are issues. It might require some windows library to be installed but I don't recall. I ran it for a long while on win11.
- fuzzfactor 2mo agoThat's embarrassing. Not your app, it rocks. Microsoft. It's like some decision-maker thinks it's OK to waste memory as long as it's someone (everyone) elses' memory, but it really adds up if you know anything about scale. But what they're also doing is a non-businesslike under-utilization of their own resources. Which is disgraceful in itself on top of that. They're supposed to have much better AI than average and nobody even bothered to ask ChatGPT why in the world weather should take more than kilobytes? And if their AI can't do it autonomously in under a megabyte it should be able to give a plausible explanation why not by now, and at least it would be orders of magnitude better than a gigabyte. I assume yours went smoothly as prompted and it surely is an excellent example :)
- sssilver 2mo ago> It's like some decision-maker thinks it's OK to waste memory as long as it's someone (everyone) elses' memory My friend, you're giving them way too much credit. Nobody, especially no decision-maker involved with this, has ever spent a single thought anywhere near any concept related to memory. It just literally never crossed anyone's mind.
- userbinator 2mo agoThey're supposed to have much better AI than average I suspect there will be a bit of revelation once people realise how much better AI can make software if prompted correctly. Of course a lot of slop will always exist, but things like https://news.ycombinator.com/item?id=49226923 https://news.ycombinator.com/item?id=49226923 show that it can be a powerful force multiplier if used right.
- ziiinq 2mo ago
- lambdaone 2mo ago250 MB is exactly the sort of bloat you'd expect from this sort of daft web-browser-wrapper application, and Apple get it there. 1.2 GB, on the other hand, is 5x as much, and completely insane even when you start off with daft as your starting point.
- danpalmer 2mo agoApple weather is fully native from what I understand. I suspect the 250MB comes from the video backgrounds they play. Arguably that would be a reasonable thing to sacrifice on low memory systems, you'd barely notice.
- odo1242 2mo agoI was able to do some tests with AI agent help and got: - ~45 MB on buffers for animated backgrounds - ~10 MB used for the Swift language runtime (runtime type information) - ~44 MB used for system libraries: libSwiftCore, CoreFoundation, libobjc, Metal, VFX - ~21 MB used on GPU buffers (GPU memory is also part of used system memory because of unified memory) - ~6.3 MB for the weatherd daemon that actually collects the weather info and makes it available to the weather app and to widgets - ~6.2 MB used for the display color pipeline (to handle color gamuts proprtly) - ~7 MB runtime caches (shader compiler cache, libobjc cache, etc.) - ~1-2 MB used for particle effects - ~34-40 MB of memory as general heap memory that was otherwise unaccounted for (this seems to mostly be stack memory and threading-related stuff, and the actual application logic) Overall the app is relatively optimized
- exceptione 2mo agoRelatively optimized? typo?
- danpalmer 2mo agoI think this depends on perspective. Compared to an Electron app, it's significantly better. Compared to a hand-optimised app implemented in a low level language it's not great. I've not done a lot of Swift/iOS/macOS, but I have a passing familiarity. These numbers are basically what I'd expect for a normal app. In other words I think the relative optimisation comes from the fundamentally better technology choice rather than from being particularly careful about performance.