• 0 Posts
  • 122 Comments
Joined 1 year ago
cake
Cake day: June 13th, 2023

help-circle
  • And yet, I’ve never run into RAM problems on iPhones, both as a user and as a developer. On iOS an app can use almost all the RAM if needed, as long as your app is running in the foreground. Android by contrast is much stingier with RAM, especially with Java/Kotlin apps. There are some hard limits on how much RAM you can actually use and it’s a small fractIon of the total amount. The actual limit is set by the manufacturer and differs per device, Android itself only guarantees a minimum of 16MB per app.

    The reason is probably because Android is much more lenient with letting stuff run in the background so it needs to limit the per-app memory usage.

    Those apps also use more RAM than an equivalent iOS app, simply because they run on a garbage-collected runtime. With a GC there is a trade-off between performance and memory usage. A GC always wastes memory, as memory isn’t freed immediately once no longer in use. It’s only freed when the GC runs. If you run it very often you waste little RAM at the cost of performance (all the CPU cycles used by the GC) if you run it at large intervals you waste a lot of RAM (because you let a lot of ‘garbage’ accumulate before cleaning it up). In general, to achieve similar performance to non-GC’d code you need to tune it so it uses about 4 times as much RAM. The actual overhead depends on how Google tuned the GC in ART combined with the behavior of specific apps.

    Note that this only applies to apps running in ART, many system components like the web browser are written in C++ and don’t suffer from this inefficiency. But it does mean Android both uses more RAM than iOS while at the same time giving apps less RAM to actually use.

    It basically comes down to different architectural choices made by Google and Apple.




  • Doesn’t matter either way because everyone uses WhatsApp anyway.

    RCS will never be able to compete with either because it’s a GSMA standard. Apple or Meta can think of a cool new feature, add it to their client and roll it out to all their users with the next update.

    If they want to add a new feature to RCS, the GSMA (An organization with over 1500 members) will have to form a committee, they can then talk about their conflicting interestes for a few years before writing down a new version of the standard, then dozens of clients and servers at hundreds of different operators need to be upgraded before everyone can use the new feature. Due to this bullshit RCS will never be able to keep up.














  • Yes, there are massive advantages. It’s basically what makes unified memory possible on modern Macs. Especially with all the interest in AI nowadays, you really don’t want a machine with a discrete GPU/VRAM, a discrete NPU, etc.

    Take for example a modern high-end PC with an RTX 4090. Those only have 24GB VRAM and that VRAM is only accessible through the (relatively slow) PCIe bus. AI models can get really big, and 24GB can be too little for the bigger models. You can spec an M2 Ultra with 192GB RAM and almost all of it is accessible by the GPU directly. Even better, the GPU can access that without any need for copying data back and forth over the PCIe bus, so literally 0 overhead.

    The advantages of this multiply when you have more dedicated silicon. For example: if you have an NPU, that can use the same memory pool and access the same shared data as the CPU and GPU with no overhead. The M series also have dedicated video encoder/decoder hardware, which again can access the unified memory with zero overhead.

    For example: you could have an application that replaces the background on a video using AI. It takes a video, decompresses it using the video decoder , the decompressed video frames are immediately available to all other components. The GPU can then be used to pre-process the frames, the NPU can use the processed frames as input to some AI model and generate a new frame and the video encoder can immediately access that result and compress it into a new video file.

    The overhead of just copying data for such an operation on a system with non-unified memory would be huge. That’s why I think that the AI revolution is going to be one of the driving factors in killing systems with non-unified memory architectures, at least for end-user devices.


  • To add to this: Apple is actively working with Google and the GSMA to add E2EE to the RCS standard. Apple can no do this on their own, as RCS is a standard set by the GSMA. They need to go through the entire slow and bureaucratic process to add a feature to RCS, so while this will appear eventually I wouldn’t hold my breath.

    This also shows exactly why something like RCS cannot ever offer anything other than the bare basic messaging functionality. You cannot innovate on RCS because every change needs to go through a committee who’s all want to have a say in it and before you know it you’re spending years in committee meetings to add a single feature.

    Meanwhile, Apple decides they want to add a feature to iMessage, they roll it out in the next iOS update and it’s available to billions of users pretty much overnight.


  • Encryption is supposed to come when the working group has aligned.

    I wouldn’t hold my breath.

    The whole RCS thing is a Bad Idea™ . It’s a standard by the GSM Association, which consists of over 1150 members (750 operators and 400 other companies). Getting all these companies to align will take forever.

    To illustrate: the RCS initiative was started in 2007 and the steering committee was formed in early 2008. The first version of the Universal Profile, that would enable interoperability between different operators and networks was released in 2016. It took 8 f-ing years to come up with an interoperable messaging standard to replace SMS. It was intended to be implemented by operators, but since hardly any operator did Google had to run their own service, bypassing the network operators, just to get it off the ground. Operators are now slowly beginning to support it.

    If Apple decides to add a feature to iMessage, they implement the feature, roll out an update to their servers and release it to a billion users in the next iOS update. If they want to add a feature to RCS, they first have to discuss it in the committee until they agree on a solution, this alone takes forever. Then every player needs to update their software to add support. This means potentially 750 operators who need to update their shit, and that is after their software suppliers add support for it. In the mean time, the new feature will work for some users when they communicate with some other users, depending on which phone and operator each party has. Rinse and repeat for every new feature you want to add.

    This means RCS will at best only ever be a very basic messaging service. It’ll be an improvement over SMS and MMS, but that’s not saying much. It will be in no way a threat to Apple’s dominance in messaging.