Post

Replies

Boosts

Views

Activity

Determining the Native CPU Architecture when Running Under Rosetta
I'm expecting not to ship some of my apps as universal binaries, because the download size overhead would be too excessive. Instead, I'm planning to provide separate downloads for Intel and ARM-based Macs. On my downloads page, I'm expecting to provide the correct download by default automatically based on the browser's User-Agent, but I'd also like to make sure that users who are currently using an x86_64 build are automatically migrated to an armv8 build when they update the apps. It's been explained that sysctl.proc_translated is the primary way to check if an app is running under Rosetta, but it's unclear if that actually confirms that the host system is armv8 specifically. I know that there currently isn't any other platform I could reasonably be running translated under, and I don't expect any such transitions to happen any time soon, but it still feels a bit icky to make that assumption. Is there some preferred API to get the native system architecture, or should I assume that translated apps will always be under armv8 or armv8-compatible hosts?
0
0
958
Jun ’20
No way to view a list of our own replies
The new Developer Forums site provides a list of our own recent threads, but no easy way to find our own replies to others' threads. This means we have to manually keep track of which threads we've posted in. Additionally, there doesn't seem to be a way to watch a thread and get notifications (email, etc) when a new reply is posted. I'm assuming this is present by default when we post new threads of our own? But not having it as an explicit option makes it more difficult to find out when an answer is posted to a question that someone else had already asked.
1
0
433
Jun ’20
Efficient Dispatch for Cross-Platform Software on AMP Systems
The "Explore the new system architecture of Apple Silicon Macs" video emphasizes using GCD to schedule work tasks for optimal performance on devices with asymmetric multiprocessing capabilities. What should I do when developing portable code, which can't reasonably use GCD? For instance, I'd like to optimize threading behavior in ffmpeg (which can have very high performance requirements, and may use either frame-based or slice-based threading, where frame threading will likely need to use the P cores at all times to avoid increasing latency and bottlenecking the pipeline, while slice threading may be able to process some tasks on E cores), and for my server application's own multipurpose thread pool code. Is there any documentation available explaining how best to dispatch tasks when an application needs to use a custom multithreading solution?
0
0
275
Jun ’20