I have been wondering if the memory scarcity would lead to a desire to optimize software to be more efficient.
Curious what the R&D / efficiency development ROI is on reducing memory footprint. I suppose we should both consider current ROI and near future ROI (as the price of memory will likely stay high for at least another 1-2 years).
Cloudflare always had a pretty strong culture around optimisation. If you go back and read the blog there are a lot of blogs about reducing CPU, latency, RAM, etc. through software. It's one of the key features of how Cloudflare has been successful and an important part of succeeding in today's world.
And Cloudflare is making money on infrastructure margins not eyeballs (ie advertising like Google), so the incentives are well aligned for this to continue.
Coincidentally, I just got angry this weekend about my Mac with 64GB of RAM going OOM because of poorly optimized applications. Use of web tech, especially Electron, was common among basically all of the offending applications. Whether Electron itself or just poor coding, I'm not sure, but there's a pattern.
I think the biggest fault in Electron is not just that it's inefficient web tech but that it has no provision for shared instances between apps, instead foricing every app to be the one which only ever wants to use the EXACT locally bundled copy of Chromium+Node which should launch in isolation of any others. This isn't even something Electron needs to die and be replaced for, just an optional feature other similar tools have jumped on for years now.
I'm sure exact pinning is sometimes the real intended case for certain apps, as it is a value in certain ways, but I'd bet at least half the Electron apps I have running now would happily be using the same shared instance of the same LTS Chromium+Node if it were the out of the box behavior to be able to do so.
I'd donate nails for its coffin. Sadly, making unique apps for each platform is just too hard when you're considering the minimum output to create value.
I dream of a day I can transpile a common view/controller language into executables for multiple platforms... without it sucking.
Electron's more-or-less just Chrome without... erm... chrome, so it makes sense that it's bloated and uses too much RAM. Even well-constructed and efficient JavaScript executed through it will do so on top of a bunch of stuff your application might not even need.
One thing that I really hope we see out of the LLM revolution: a return to native applications. You could argue that Electron cross-platform apps made sense when you had to pay a team to maintain two or three (at least) native clients; you can't make that argument anymore when the marginal cost of a line of code is $0.00.
What I don’t understand is, why not just use a platform native webview? Mac has it at least, I think Windows does as well. You'd think it would be the same amount of work (roughly) but use a lot less memory.
I guess developers really prioritize velocity or ease over everything. Or maybe it's business pressure or directives?
Chrome is pretty efficient, as far as per page costs go! If your architecture isn't trash!
The sin is this ridiculous era of every program shipping its own runtime. I'm headed for real down votes, but this is the same lazy culture that's taken over everywhere: go and rust both ship these huge statically compiled binaries.
When you are a company, you're only running a handful of different workloads/apps on any given box, so the statically compiled price doesn't bite you. But as users, going back to dynamically linking and making the incremental cost of loading an app not also have to carry the entire world with it is such an obvious return, and one that alas seems to not be in progress at all.
The agentic age is, I hope, going to question a lot of old assumptions & needs about what we want to run. Having lots of small resident little user agencies, compiled small scripts that are attributed to a user, is something I believe will happen, but I'm less convinced we'll recognize the face of it as it happens, that the tales will be told.
Tools like agent-substrate, ax, scion, are this interesting mix between agents, serverless, and kubernetes. I find it fascinating. (For hire on this.)
https://github.com/agent-substrate/substrate
>Curious what the R&D / efficiency development ROI is on reducing memory footprint. I suppose we should both consider current ROI and near future ROI (as the price of memory will likely stay high for at least another 1-2 years).
It is a pretty small niche of companies where compute resource efficiency on the server side has a meaningful business bottom line impact.
Everybody has a few tight loops here and there that would be beneficial but that is usually a very small selection of hot paths and it usually isn't about the money to run the code.
On the client side it's about customer delight and this is terrifically hard to measure and so many companies set themselves up such that disappointed customers are locked in so well it doesn't make a huge difference how happy they are unless they're VERY unhappy.
> Why doesn't the Zone Builder just rebuild the setting that changed?
> It should, and that is where we ended up. However, proving when it was safe took most of the work. A record event identifies what changed. A zone event can come from many Cloudflare products, may not say why the zone changed, and can alter data shared by several zones with the same name. Choosing too much work wastes capacity. Choosing too little can leave stale or incorrect DNS data at the edge.
Re-reading the start of the post with that in mind, I'm fairly sure the article was generated by LLM.
With that said, curated it sure is. Aside from the smelly phrasing, the actual content is fairly dense and engaging. Not all of Cloudflare's LLM-generated posts are this good, but this one is fairly alright.
There's about 360 million domains (according to Verisign as of March 31, includes inactive sites as well) and if Cloudflare manages about 1/3 to 1/2 of them, that's like 180 million domains at most.
700 changes per second is 1.8 billion changes per month. I guess 10 changes per top level domain per month is quite low, which suggests a very long tail distribution, which makes sense, given that most websites are just a static page a business sets up once, with DNS changes maybe once every few years.
I can see 15% changing daily. There's all sorts of stuff being done with dkim and other anti-spam technologies that require a txt or cname or whatever change in DNS. Companies are always whitelisting vendors and mass mailers to send as them, validating domain ownership, adding new sub-domains, changing things for Exchange/365/Google/AI stuff, changing things due to a security audit, etc.
I imagine a renewal is a change event to, at least change the expiry, and renewals are constantly happening.
> I imagine a renewal is a change event to, at least change the expiry, and renewals are constantly happening.
A domain renewal is an update at the registry, but there's no update in DNS at any level. If a domain expires, it would be removed (or at least changed) in the TLD DNS, but the authoritative DNS for the domain wouldn't necessarily update... it would just become orphaned.
I used to use cloudflare dns, but the same cloudflare harassed me the entire day testing if I'm a robot. The harassment ended after I switched the dns server. See you never again, clouflare
35 comments:
I have been wondering if the memory scarcity would lead to a desire to optimize software to be more efficient.
Curious what the R&D / efficiency development ROI is on reducing memory footprint. I suppose we should both consider current ROI and near future ROI (as the price of memory will likely stay high for at least another 1-2 years).
Cloudflare always had a pretty strong culture around optimisation. If you go back and read the blog there are a lot of blogs about reducing CPU, latency, RAM, etc. through software. It's one of the key features of how Cloudflare has been successful and an important part of succeeding in today's world.
Source: I was Cloudflare's CTO.
And Cloudflare is making money on infrastructure margins not eyeballs (ie advertising like Google), so the incentives are well aligned for this to continue.
Coincidentally, I just got angry this weekend about my Mac with 64GB of RAM going OOM because of poorly optimized applications. Use of web tech, especially Electron, was common among basically all of the offending applications. Whether Electron itself or just poor coding, I'm not sure, but there's a pattern.
Electron needs to die.
But it's convenient. I can't really fault people for using it.
I think the biggest fault in Electron is not just that it's inefficient web tech but that it has no provision for shared instances between apps, instead foricing every app to be the one which only ever wants to use the EXACT locally bundled copy of Chromium+Node which should launch in isolation of any others. This isn't even something Electron needs to die and be replaced for, just an optional feature other similar tools have jumped on for years now.
I'm sure exact pinning is sometimes the real intended case for certain apps, as it is a value in certain ways, but I'd bet at least half the Electron apps I have running now would happily be using the same shared instance of the same LTS Chromium+Node if it were the out of the box behavior to be able to do so.
I'd donate nails for its coffin. Sadly, making unique apps for each platform is just too hard when you're considering the minimum output to create value.
I dream of a day I can transpile a common view/controller language into executables for multiple platforms... without it sucking.
> I can't really fault people for using it.
We can and we should.
claude-code is using a suspicious amount of memory and doesn't seem to care about optimizing it nearly as much as the others.
The source for Claude code leaked and it is total slop. They don’t even look at their own code.
Electron's more-or-less just Chrome without... erm... chrome, so it makes sense that it's bloated and uses too much RAM. Even well-constructed and efficient JavaScript executed through it will do so on top of a bunch of stuff your application might not even need.
One thing that I really hope we see out of the LLM revolution: a return to native applications. You could argue that Electron cross-platform apps made sense when you had to pay a team to maintain two or three (at least) native clients; you can't make that argument anymore when the marginal cost of a line of code is $0.00.
What I don’t understand is, why not just use a platform native webview? Mac has it at least, I think Windows does as well. You'd think it would be the same amount of work (roughly) but use a lot less memory.
I guess developers really prioritize velocity or ease over everything. Or maybe it's business pressure or directives?
Chrome is pretty efficient, as far as per page costs go! If your architecture isn't trash!
The sin is this ridiculous era of every program shipping its own runtime. I'm headed for real down votes, but this is the same lazy culture that's taken over everywhere: go and rust both ship these huge statically compiled binaries.
When you are a company, you're only running a handful of different workloads/apps on any given box, so the statically compiled price doesn't bite you. But as users, going back to dynamically linking and making the incremental cost of loading an app not also have to carry the entire world with it is such an obvious return, and one that alas seems to not be in progress at all.
The agentic age is, I hope, going to question a lot of old assumptions & needs about what we want to run. Having lots of small resident little user agencies, compiled small scripts that are attributed to a user, is something I believe will happen, but I'm less convinced we'll recognize the face of it as it happens, that the tales will be told.
Tools like agent-substrate, ax, scion, are this interesting mix between agents, serverless, and kubernetes. I find it fascinating. (For hire on this.) https://github.com/agent-substrate/substrate
The hottest kpi to optimize against is now freed tb of memory
>Curious what the R&D / efficiency development ROI is on reducing memory footprint. I suppose we should both consider current ROI and near future ROI (as the price of memory will likely stay high for at least another 1-2 years).
It is a pretty small niche of companies where compute resource efficiency on the server side has a meaningful business bottom line impact.
Everybody has a few tight loops here and there that would be beneficial but that is usually a very small selection of hot paths and it usually isn't about the money to run the code.
On the client side it's about customer delight and this is terrifically hard to measure and so many companies set themselves up such that disappointed customers are locked in so well it doesn't make a huge difference how happy they are unless they're VERY unhappy.
(In other words, you're not Google or Cloudflare)
Server-side: sure
Client-side: lol sucks to be you
Cloudflare doesn't get enough credit for their series of overall great technical blog posts.
What's it like working at Cloudflare?
They also read like actual human curated content, to boot.
My LLM detector started going off around here:
> Why doesn't the Zone Builder just rebuild the setting that changed?
> It should, and that is where we ended up. However, proving when it was safe took most of the work. A record event identifies what changed. A zone event can come from many Cloudflare products, may not say why the zone changed, and can alter data shared by several zones with the same name. Choosing too much work wastes capacity. Choosing too little can leave stale or incorrect DNS data at the edge.
Re-reading the start of the post with that in mind, I'm fairly sure the article was generated by LLM.
With that said, curated it sure is. Aside from the smelly phrasing, the actual content is fairly dense and engaging. Not all of Cloudflare's LLM-generated posts are this good, but this one is fairly alright.
[dead]
Isn't 700 changes a second like... really low, considering their scale and amount of domains they manage ?
There's about 360 million domains (according to Verisign as of March 31, includes inactive sites as well) and if Cloudflare manages about 1/3 to 1/2 of them, that's like 180 million domains at most.
700 changes per second is 1.8 billion changes per month. I guess 10 changes per top level domain per month is quite low, which suggests a very long tail distribution, which makes sense, given that most websites are just a static page a business sets up once, with DNS changes maybe once every few years.
412M domains registered worldwide
700 changes per second implies 15% of all domains are changing daily, which is almost certainly not the case.
It's well possible that some people update DNS records for their own domain every minute.
https://en.wikipedia.org/wiki/Fast_flux
I can see 15% changing daily. There's all sorts of stuff being done with dkim and other anti-spam technologies that require a txt or cname or whatever change in DNS. Companies are always whitelisting vendors and mass mailers to send as them, validating domain ownership, adding new sub-domains, changing things for Exchange/365/Google/AI stuff, changing things due to a security audit, etc.
I imagine a renewal is a change event to, at least change the expiry, and renewals are constantly happening.
> I imagine a renewal is a change event to, at least change the expiry, and renewals are constantly happening.
A domain renewal is an update at the registry, but there's no update in DNS at any level. If a domain expires, it would be removed (or at least changed) in the TLD DNS, but the authoritative DNS for the domain wouldn't necessarily update... it would just become orphaned.
Quite possible, especially with Let's Encrypt DNS challenges.
It's probably more like most domains barely change at all but some of them change a lot.
I'm very curious about the bugs (before vs. after relational) that come from an improvement like this over time
I used to use cloudflare dns, but the same cloudflare harassed me the entire day testing if I'm a robot. The harassment ended after I switched the dns server. See you never again, clouflare