Archive for May 18, 2021

Tuesday, May 18, 2021

QoS and Task Segregation Make M1 Macs Feel Faster

Howard Oakley (Hacker News):

Benchmarks are all very well, but one almost universal comment made about M1 Macs is how much faster they feel, even when performance measurements don’t show as big a difference as we might like. One very effective way of giving a good impression of speed is to segregate macOS and user software to use different cores in the way that the M1 does.

Few events give a worse impression to the user than the interface slowing down in the face of a problem in the operating system. We’ve all experienced it: this could be a rogue mdworker process which keeps crashing and restarting, or anything which causes macOS to choke. Because those processes are handed over to the Efficiency cores, all they do now is slow other macOS background tasks, to which we’re much less sensitive.

The Time Machine backup pictured above ran ridiculously slowly, taking over 15 minutes to back up less than 1 GB of files. Had I not been watching it in Activity Monitor, I would have been completely unaware of its poor performance. Because Macs with Intel processors can’t segregate their tasks onto different cores in the same way, when macOS starts to choke on something it affects user processes too.

I don’t think this is a result of having efficiency vs. performance cores. macOS could have designated several of the identical Intel cores to be used for lower priority system tasks, leaving the other cores free for user tasks. My guess is that Apple’s real aim was battery life, and so it made sense to add task segregation once Macs were available with efficiency cores. The improved responsiveness is more of a bonus.

Of course, “magic” features like this can sometimes do the user wrong. Most of the time, I don’t care how long Time Machine takes, so if it can use less power and make my other apps more responsive, that’s great. But Time Machine is already slow, and sometimes I have to wait for it when packing up to leave my office. In such cases, I would like it to use all the performance cores and go as fast as possible. Likewise with indexing-type tasks. Sometimes I want them in the background, not disturbing anything, but sometimes I’m importing a big batch of photos or PDFs and want to be able to work with them ASAP.

Joe Rossignol:

Apple plans to launch new 14-inch and 16-inch MacBook Pro models with an improved iteration of the M1 chip as early as this summer, according to Bloomberg’s Mark Gurman. The new chip is said to include a 10-core CPU with eight high-performance cores and two energy-efficient cores, with 16-core or 32-core GPU options.

If true, it will be interesting to see whether system tasks are now confined to only two cores, instead of four, which would make them slower than on the initial M1 Macs.


Update (2021-05-24): See also: Howard Oakley.

VoiceOver Image Descriptions

Apple (via Hacker News, Dave Mark):

With VoiceOver and Image Descriptions turned on, you can hear a description of what you’re taking pictures of in the Camera app.

This is pretty impressive, with much more detailed descriptions than seem to be available to the Photos app. It also works with images in apps.

You can turn off VoiceOver with Siri or by triple-tapping the side button.

Update (2021-05-25): Mattt Thompson:

Happy Global Accessibility Awareness Day! #GAAD

To celebrate, I’d like to share my favorite a11y easter egg in iOS: the delightfully baroque VoiceOver descriptions provided for built-in wallpapers.

Parsing Dates Without Times

Quinn the Eskimo:

Parsing fixed-format date strings is tricky. For an explanation as to why, see QA1480 NSDateFormatter and Internet Dates. However, there’s an extra gotcha when you try to parse fixed-format date strings that don’t include a time.


This is failing because, internally, the date formatter maps the date string to a set of date components (DateComponents). The year, month, and day come from the date string, but the hour, minute, and second default to 0. In Brazil, daylight saving time starts at midnight, and thus the date components year: 2018, month: 11, day: 4, hour: 0, minute: 0, second: 0 don’t exist in the São Paulo time zone. When the date formatter runs these components through the calendar, it returns nil.


The solution here is to set the defaultDate property on the date formatter to something in the middle of the day.

It’s not documented exactly what this does, but I presume that missing date components get taken from the defaultDate. This still makes me a bit nervous, though, because what if I have an unlucky default date whose time produces a date that doesn’t exist in that time zone? Apparently, the isLenient property can help with that.

See also: The Wisdom of Quinn.


Epic v. Apple, Day 11

Nick Statt (tweet):

Apple spends about $50 million hosting its annual developer conference, known as WWDC, every summer. That is until the event, which has been held in recent years at the San Jose McEnery Convention Center, went all-virtual last year amid the coronavirus pandemic.

Elizabeth Lopatto (tweet, also: Adi Robertson, Leah Nylen):

The Steve Jobs line that Epic has touted — ”We don’t intend to make money off the App Store” — comes from these early days. At the time of this announcement, Apple didn’t know if it would make money, Schiller testified. He also suggests that the line was not a promise that Apple would not make money. The App Store was a “huge” risk, Schiller said. “We’re taking our hot new product and putting something we’ve never done before on it, and we have no apps yet! So we have no idea how this is going to do.” This is credible. What is less convincing is Schiller’s attempt to redefine what it means to “lock customers into our ecosystem,” a phrase that comes from a Jobs email entered into evidence earlier in the trial.

Look, “locked in” has an accepted meaning, and it’s not a very friendly one: prisoners, for example, are locked in. Schiller gives this the old college try anyhow, telling the court that the idea behind “locked in” was just to make services more attractive, so that customers wouldn’t want to leave.


Despite Schiller’s friendly demeanor, some of his testimony is a stretch. For instance, he says he doesn’t see mobile as a duopoly. He lists Samsung, Microsoft, Google, and Amazon as competition. The Amazon Fire phone was discontinued in 2015, as was the Windows Phone.

Juli Clover:

Schiller has also been speaking about Apple’s App Store policy to treat developers large and small the same, and his testimony has included some interesting little tidbits. Apple wanted to charge $99 for the App Store developer program to prove that an app that’s being worked on is “important” and that developers are “serious about making a quality app.”


On the topic of physical goods, Schiller said that in 2019, the App Store drove $400 billion+ in transactions like food delivery, Amazon purchases, Uber, and more, which are not subject to a 30 percent cut. According to Schiller, Apple does not take a cut of physical purchases because Apple can’t guarantee they will actually arrive.

I don’t think it makes sense to count purchases using the Amazon app as being driven by iPhone. Also, as I mentioned earlier, Apple can’t guarantee that digital purchases will arrive (or will not be withdrawn), either.

Nick Statt:

Schiller says the App Store 70-30 commission was better than the physical model and competitive for digital distribution.

Nick Statt:

Schiller says they anticipated competition for the App Store that might necessitate a commission reduction.

But of course… that did not happen! At least not until after the Epic lawsuit, when Apple dropped rate to 15% for small devs.

Adi Robertson:

Was Epic’s lawsuit a factor?

“I would say it helped me get it done. I would absolutely agree it helped to get the program done,” Schiller says. “I wouldn’t say it’s why we did it, but it helped.”

Nilay Patel:

Again, Apple keeps thinking of what happens inside third-party apps as part of Apple’s store. If this trial has accomplished anything it is making that crystal clear.

Horacio Gutierrez:

When it suited them - in Apple v. Pepper - Apple vehemently denied that they had any direct control over the sale of apps on the App Store. Instead, they said, they were akin to a “shopping mall”.

Adi Robertson:

Phil Schiller gets asked about Roblox, which you may remember Apple’s earlier witness said was not a game.

“In my opinion, it’s a game,” Schiller says.


“Roblox itself allows a class of users often called creators to create games within the Roblox app, and those are added to Roblox and they’re released as content within the app.”


To recap: Apple is okay with iOS apps that allow access to many games, but only if those games are created by creators and not developed by developers.

Adi Robertson:

Schiller: “Well, it’s a new type of app I think in the industry,” Schiller says. “It’s made up of multiple games, it’s not one game. And the idea of who creates them and what they’re for is a new phenomenon in our industry … it’s pretty new stuff."

Dan Wineman:

Roblox is older than the App Store.

Michael Love:

Claiming Apple deserves to get money from developers for implementing these features - which they use to sell iPhones + constantly plead with us to suport + undoubtedly make way, way more money from than we do - is downright obnoxious.

Apple: give us 30% of your money for inventing ARKit

Also Apple: please please please support ARKit