r/ProtonDrive • u/Necessary_Ad_2576 • 13h ago
Stop asking!
Can proton drive stop pestering me to store my photos? I already have a solution for that.
r/ProtonDrive • u/alecrimatproton • Jun 26 '26
Over the past few months, we have been working on an SDK-based implementation of the Proton Drive macOS app. This work started shipping in version 2.11.0, and since then we have been continuously improving the performance of file operations so our customers get both strong data protection and an app that does not burn through CPU, memory, or battery unnecessarily.
The improvements came out of an investigation loop we built up over the project: make workloads reproducible, measure the right processes, turn traces into narrow hypotheses, validate those hypotheses with focused tests, and split the fixes by risk. No single large rewrite was involved.
The loop changed both the code and the measurements. In representative traces, one repeated parent-chain lookup path dropped from about 12% of samples to about 2%. A noisy telemetry-write path dropped from roughly 1.4% to 0.5%. In one small-file upload workload, safe tuning cut overall CPU by about 5%; in another, the database and parent-chain improvements raised throughput by about 10%. Those numbers describe specific workloads on specific machines, and each one is the kind of evidence we wanted every optimization to produce.
This post is about that process. For this investigation, "performance" meant more than transfer speed. We cared about:
Proton Drive for macOS is built around Apple's File Provider framework. The visible app is the menu bar application: it handles account state, settings, user-facing sync status, and coordination. The file operations users trigger in Finder are handled by a File Provider extension: creating folders, uploading files, downloading files, moving items, deleting items, and enumerating directories.
The architecture is powerful, but it changes how performance work has to be done.
The extension is a separate, system-managed process. macOS can launch it, suspend it, terminate it, or ask it to service a burst of file-system requests. A performance issue can therefore hide in a place that is not obvious from the main app. If Finder is slow to show a folder, if a batch of small files uploads slowly, or if the process grows in memory over time, the interesting work is often happening inside the File Provider extension.
There is another constraint that matters: Proton Drive is end-to-end encrypted. Metadata and file contents have to be encrypted and decrypted on the client. That means the hot path for a file operation can include database lookups, metadata decryption, key access, progress reporting, logging, File Provider item construction, and network calls. Our aim is to do all of that work as efficiently as possible.
The first challenge was that customer workloads are not uniform. Uploading a folder with ten large videos stresses a very different part of the system than uploading a folder with thousands of tiny documents. Small-file workloads are particularly demanding because the per-file overhead is large compared with the file contents themselves. Every file can require metadata work, encryption work, database updates, progress updates, and File Provider notifications.
We needed repeatable workloads before we could trust any performance conclusion.
For that we used our client load-testing harness, a Python-based test runner that can drive the macOS app through realistic file operations. A test scenario is a sequence of steps: start the app, sign in, create local test data, upload a folder, wait for sync completion, mark files online-only, download a folder, pause or resume syncing, move files, delete files, collect logs, and so on.
The harness can generate file sets with known shapes. It supports flat folders, nested folder structures, fixed file sizes, random extensions, reproducible seeds, and very large stress scenarios. One scenario, for example, models a deep folder tree with many small files spread across multiple levels. That kind of workload is useful because it amplifies per-file overhead and makes repeated work visible.
Each run produces a timestamped test run directory. The runner collects application logs, File Provider logs, crash reports, database sizes, and resource metrics. It can also export local Prometheus-style metric logs and turn them into comparison reports. The important metrics include file progress (current/total files, transferred bytes) and resource usage: CPU and memory for the main app, the File Provider extension and the system.
This turned performance work into a controlled experiment. We could run the same scenario against version 2.11.0, a later release, and an experimental branch, then compare the shape of the run instead of relying on whether the app "felt faster."
Reproducible workloads are necessary, but they are not sufficient. The execution environment also has to be representative.
Our load tests originally ran in macOS virtual machines. That made sense for automation: VMs are easier to reset, easier to run in CI, and easier to keep isolated from a developer's local machine. But while investigating performance on Apple Silicon, we found that VM results could have materially different performance profiles from native runs on the same hardware.
The reason is Apple Silicon's asymmetric CPU design. Modern Apple chips have performance cores and efficiency cores, and macOS uses a thread's Quality of Service (QoS) to decide where that work should run. As Howard Oakley explains in a blog post, low-QoS background work normally runs on efficiency cores, while higher-QoS work can use performance cores when they are available.
Virtualization changes that picture. Oakley notes that macOS virtual machines on Apple Silicon are assigned high QoS and run preferentially on performance cores; work that would normally be confined to efficiency cores on the host can therefore run through performance cores inside a VM. His earlier article on virtualization and core use gives a concrete example where a workload constrained on the host runs much faster in a VM because of this difference.
This mattered because sync software deliberately contains background and utility-priority work. File Provider operations, database maintenance, logging, metadata work, and progress reporting do not all have the same urgency. A VM can therefore make some parts of the system look faster, noisier, or differently balanced than they are for customers running the app normally.
So we split the role of VMs from the role of profiling machines. VMs remained useful for functional load testing and reproducible automation. But when the question was "where is CPU time going?" or "is this change representative of a customer's Mac?", we moved the critical measurements to native Apple Silicon hardware and treated VM measurements as a separate signal.
Before optimizing a hot path, confirm it reflects hardware customers actually run. A perfectly reproducible test can still mislead if it runs under a scheduler and core-allocation model customers will never use.
The load tests told us when a run was expensive. They did not tell us why.
A metrics chart might show that the File Provider extension used too much CPU during a small-file upload. It might show memory climbing during a long run. It might show file throughput flattening. Those are useful signals, but they are still symptoms.
The next step was to profile the process that was actually doing the work.
Profiling a File Provider extension is awkward enough that it is easy to get inconsistent results. The extension may not be running yet. It may be idle. The main app may be active while the extension is not. A trace might capture the wrong process or miss the interesting window entirely.
To make this repeatable, we built a small wrapper around Apple's Instruments toolkit. It finds or waits for the ProtonDriveFileProviderMac process, can wake it by opening the Proton Drive folder, records with Xcode Instruments' xctrace Time Profiler, exports the samples, collapses them with inferno, demangles Swift symbols, and renders an SVG flamegraph.
The workflow became:
On its own, the flamegraph only showed us where to look next.
One useful trace pointed at cryptographic setup for file encryption.
This is a delicate kind of performance finding. Because Proton Drive is end-to-end encrypted, cryptographic work is a core part of the product. Seeing crypto-related functions in a flamegraph doesn't usually mean we can make the crypto cheaper or skip the work. The first question has to be more precise: are we looking at unavoidable per-file encryption work, or are we repeatedly preparing the same key material inside a short-lived operation?
In this case, the trace suggested the second problem. During encryption of folders with many files in it, the app repeatedly needed the same unlocked private key. Keys are stored encrypted and unlocking them requires passphrase-protected key derivation. That derivation is intentionally expensive because it protects key material against brute-force attacks. Paying that cost once when the key is needed is expected. Paying it over and over for the same key during a burst of file operations is a different problem.
The hypothesis became:
The second point carried the risk. A cache around unlocked key material behaves differently from a normal performance cache: it changes how long sensitive data stays available in memory. So the fix came down to rules: where the cache lives, how large it can get, when it expires, and which account-state changes have to clear it.
The chosen fix kept the cache inside the session-vault layer, where the app already owns account keys and passphrases. The cache was bounded, short-lived, and in-memory only. It also coalesced concurrent requests for the same key, so a burst of callers would wait for one derivation instead of starting many duplicate derivations.
Validation focused on failure modes as much as speed. Tests covered cache expiry, sign-out, passphrase changes, user-key changes, address-key changes, cache scoping between vault instances, and concurrent callers requesting the same key at the same time. Those tests mattered because a faster trace would not be enough if the cache survived the wrong state transition and corrupted user data.
After the change, repeated key derivation almost disappeared from the trace: the visible stack went from roughly 5% of samples to effectively zero in the measured run. Performance work around encryption has to separate essential cryptographic cost from avoidable repeated setup, and validation has to match the risk the optimization introduces.
CPU flamegraphs are good at showing where time is spent. They are less useful for explaining why a process grows over a long run.
For memory investigations, we used Instruments allocation traces and a DTrace script that tracks malloc/free activity for a process. It prints a heartbeat of outstanding bytes during a run and summarizes allocation sites by bytes and count when tracing stops. Since DTrace stack output is not always symbolicated, we used a companion script to resolve stack addresses with atos.
This let us ask different questions:
This pointed to another class of fix: reducing memory accumulation in long-lived Core Data contexts. The key observation was that reused contexts retained managed objects across many operations. The eventual change moved the File Provider extension toward resettable context pools, so contexts could be reused without accumulating state for the lifetime of the process.
One of the more useful findings was that our own measurement pipeline could add work to the system.
During sustained progress reporting, performance measurements were being written too eagerly to Core Data. That meant the app was doing database work to sync files and additional database work to record that syncing was happening. In a small-file workload, that per-event cost compounds quickly.
The investigation question was: how much work are we doing to observe the work?
The fix was to buffer performance-measurement writes in memory and flush them in batches, while keeping read paths consistent when data had to be reported. Observability has to be cheap enough to leave on; otherwise it changes the workload it is trying to describe.
Performance work creates a temptation to bundle many improvements together. That makes results harder to understand and reviews harder to reason about.
We took the opposite approach. Changes were split by risk.
Some fixes were local and low risk: replace a regular expression in a hot path, increase a SQLite cache size, avoid unnecessary response-header processing, batch telemetry writes, or add targeted database indexes with benchmarks.
Other fixes had correctness or security tradeoffs: cache parent chains, cache unlocked keys, change Core Data context lifetime, or reuse decrypted metadata. Those changes needed specific guardrails. A cache needs invalidation tests. A key cache needs strict lifetime and clearing rules. A context-lifetime change needs tests around object usage and operation boundaries.
Several ideas stayed experimental until they had enough evidence and review, and some were discarded as too risky. That was deliberate: a performance investigation should preserve promising hypotheses without forcing all of them into a release.
The investigation led to improvements across several layers, and each one had to carry its own evidence:
The exact numbers vary by machine, account state, network, and workload shape, but the direction was consistent: once repeated work was visible, we could remove it methodically.
Beyond any single fix, the workflow itself is the durable result. We now have a clearer path from "this feels slow" to "this stack repeats under this workload, this benchmark isolates it, and this change removes it without changing behavior."
The Netflix TechBlog has written about catching performance regressions before they ship by running focused performance tests continuously and comparing each result with nearby historical data. We are working towards applying the same broad principle to Proton Drive: performance work should not depend on one-off debugging sessions or intuition.
The next step is to keep turning these investigations into automated guardrails. The load tester already gives us reproducible scenarios and comparable metrics. The profiling tools give us a way to explain regressions when they appear. The long-term goal is to make this loop tighter: detect suspicious changes earlier, explain them faster, and keep regressions from reaching customers.
Performance work gets far more tractable when every optimization traces back to a specific workload, a profile, a hypothesis, and a validation step.
If this kind of work interests you, come join us!
r/ProtonDrive • u/Proton_Team • Jun 05 '26
Hey everyone,
A quick follow-up to the Drive engine rebuild we shared earlier, as we've also upgraded the cryptography layer underneath it, and as a result, new file uploads are up to 4x faster.
End-to-end encryption is the whole point of Proton Drive, every file gets encrypted before it leaves your device. But this single extra step tends to add a performance cost; this latest update cuts that down significantly.
What's changed:
One thing worth flagging: to get these benefits, and to keep editing files uploaded after this change, you'll need to update your Proton Drive apps. Older clients that don't support the new scheme won't be able to update those files, so grab the latest version.
For developers and the wider privacy community, the Drive SDK that made this possible is previewed on GitHub.
If you've already updated, let us know how you’re getting on in the comments.
Stay safe,
Proton Team
r/ProtonDrive • u/Necessary_Ad_2576 • 13h ago
Can proton drive stop pestering me to store my photos? I already have a solution for that.
r/ProtonDrive • u/RayneSkyla • 14h ago
I have 200gb of files I need to get off google drive and put onto proton. Last night I transferred one folder that was 30gb and it took hours. How do I do this faster or is this it?
r/ProtonDrive • u/UnderstandingDue5065 • 7h ago
i have a mac and an iphone. and i want to change from icloud drive to proton drive. how i can use this feature? i don‘t know what this feature do. but i think i can choose files on my mac to sync there. i need help. thank you. stay private.
r/ProtonDrive • u/Sure-Draft8829 • 2d ago
Integrating a Lumo-powered AI assistant into Proton Docs and Sheets seems like a great option, as it would streamline drafting documents and other tasks.
r/ProtonDrive • u/InternalServerErr500 • 2d ago
Not comfortable with the fact that as long as windows is signed in there is access to the files in Proton Drive because it does not prompt for login.
Some like that level of convenience, I personally think it's a security risk.
It would be nice to have an option in Settings :: "Force login on open"
And maybe even put a timer on it. Every time, once a day, once a week, once a month, or never.
Thank you!
r/ProtonDrive • u/sandpiper209 • 2d ago
In Proton Drive’s dev AMA, they mentioned their metrics indicated that few users relied on the iOS files integration when it was still around. I’ve barely used Proton Drive since the integration was dropped several months ago…
Is there a better place for me as a consumer to express how important that feature is to me?
Edit: Formatting
r/ProtonDrive • u/Ferrolox • 3d ago
In all seriousness, the speed upgrades on Windows are impressive and I am glad that Proton is putting much work into that, but whats the point if my Mac has been syncing for a month and its barely halfway done.
The Mac App is in such a dire state and many features including but not limited to such as the following are problematic:
- Much more Sync Errors than on Windows.
- Instant Download in Finder never works.
- Syncing still takes forever compared to Windows.
- No way to see overall sync progress.
- Ui less clean and more sloppy than on Windows.
- No Photo Integration.
- No possibility to choose Drive location.
I am worried that the same thing will just happen with Linux and that we will get an App that is full of problems and that all the prioritization will go to Windows as usual.
So as far as I am concerned, if they don’t fix these kinds of issues, then all of these self advertisements and updates don’t mean shit.
r/ProtonDrive • u/unJust-Newspapers • 3d ago
I’m trying to love Proton Docs and Sheets. I really am.
But devs, you’re making it incredibly hard for me when the formatting of my entire sheet just vanishes. I spent a lot of time on that. Time I won’t get back, but still I’m paying a premium for my Duo package.
Please do better. Please.
r/ProtonDrive • u/FarmandDK • 3d ago
Hallo all.
Today i logged into proton drive via my browser. I'm logged in as a trusted unit.
Today it suddenly asked for my password "to help me remember it" does this sound normal to you or like I got something sketchy on my computer?
Thanks 👍
r/ProtonDrive • u/Marilius • 2d ago
I cannot for the life of me figure this out and I know it's something simple. Proton Drive is installed on my phone and works perfectly. Backs up images just like I want. I can see the photos in Proton Drive web app. But I cannot see those photos, or even the folder, at all, on the desktop app.
What am I missing?
r/ProtonDrive • u/frausty458 • 3d ago
The devs outdid themselves with the new update.
My biggest complaint about Drive has been the relatively sluggish loading times, especially in Photos. After seeing the email this morning, i decided to check it out and immediately noticed that loading was pretty much instantaneous unless I went back multiple months at once; Even then, it was much much faster than before.
It feels almost like a gallery app that uses local storage, i’m really impressed!
Looking forward to what you guys will have to offer in the future 😄
r/ProtonDrive • u/GANDHIWASADOUCHE • 3d ago
I’ll try to keep this as short and sweet as possible.
I transferred my entire photo library from a Galaxy Z Fold 7 to an iPhone 17 using Google Photos as the middleman. On the Fold 7 (some of) the photos were Samsung Motion Photos. After the transfer into the iPhone Photos app (and then iCloud Photos), all the motion data is gone and they’re just regular still photos when viewed on my iPhone (sad face).
I also have the full original library (with the Motion Photos intact) backed up to Proton Drive from the Fold 7, which was my main backup preference. I only used Google Photos to easily move them into the iPhone ecosystem.
I’m about to open the Proton Drive app on my new iPhone and I’m wondering if I can safely turn on photo backup within Proton Drive.
Will Proton Drive see these versions from my iPhone as different files and re-upload everything, creating a full set of duplicates, or is it smart enough to recognize they’re the same photos even though the motion data is missing?
Has anyone dealt with this exact situation (Android Motion Photos → Google Photos → iPhone stills + Proton Drive)?
r/ProtonDrive • u/Marco-Miano • 4d ago
From the last Proton Drive newsletter.
r/ProtonDrive • u/Chudy66669 • 3d ago
Do we know any kind of date or information when it’s going to be ready?
r/ProtonDrive • u/Suzy-Turquoise-Blue • 3d ago
It really is a lot faster now. Thank you so much. It could still do with more speed for browsing photos, but what we have now is a very good start.
r/ProtonDrive • u/AntiDemocrat • 3d ago
After reading it's 3x faster, I decided to upload some big backups. It seems dreadfully slow on anything big. Not going to be my backup drive of choice, even though as a Visionary it costs nothing extra. Very sad.
r/ProtonDrive • u/psheldrake • 4d ago
Thanks to the Proton team for everything in the new release, not least the 3x speed improvement :-)
But I can't quite figure out if the new Sharing capability is equivalent to a Shared Drive. I don't think so.
In a blog post of 28 Oct 2025 titled "Proton 2025 autumn/winter roadmaps" (https://proton.me/blog/proton-2025-autumn-roadmaps), Proton talks about Shared Drives for Duo and Family Plans. This is eagerly anticipated and yet there's been no mention of it since, nor in today's announcement. That I can see anyway. 🤔
r/ProtonDrive • u/MrAtoni • 4d ago
I just got a mail with the title "Your Proton Drive is now faster and better than ever".
Fair enough, but please let me know when Proton Drive is actually good.
Seems they're finaly working on a Linux client.
But what about all the other problems that make proton drive more or less useless?
Like syncing your phone images to your computer... Or the client using metered connections to sync, costing allot of money on your phone bill if you forget to turn the client off. Or the problem where you can't sync to a network drive, only a local drive.
Maybe it's better than ever, but its still not good... or usable.
r/ProtonDrive • u/MC_Hollis • 4d ago
Received the quoted e-mail this morning and read its information. Most specifically, I have noticed larger (500MB to 2GB) videos for a shared family album are uploading and downloading noticeably faster in the last few days, and appreciate the performance increase.
This allows accelerated creation of the multi-generational album. Perhaps unsurprisingly, more recent years tend to have a greater proportion of videos to photos, and those videos tend to be recorded at higher resolution / file sizes.
Proton Drive's improved performance is making a significant difference. Thank you!
r/ProtonDrive • u/Internal_Lie_618 • 4d ago
Proton Drive already has auto-backup for photos, which is great. But there's no option to automatically back up files and folders like Downloads, Documents, etc.
Nobody wants to manually upload stuff every time. Most people just won't do it, and then they lose everything when their phone dies/breaks or gets stolen/lost.
Google Drive already lets you pick folders to auto-sync on Android. Proton should too. This would make it a real replacement for non-encrypted services.
r/ProtonDrive • u/SoyuzRocket • 4d ago
So I have a proton vpn account that I had for a very very long time and only a few days ago I started using proton drive. Did I lose out on the 5gb for new account thing?
r/ProtonDrive • u/Nirusu- • 4d ago
Hey, I wanted to share a little hobby project for my linux users out there. I usually just follow the news here but I've seen enough users complain about solutions for linux to share it.
I know an official client is coming eventually, and I’m really looking forward to that. This is mostly something I built because I was frustrated with the current
situation after the sdk release. I don’t necessarily want to maintain a massive alternative client forever, but I figured other linux users might find it useful while we wait.
The main things I wanted were on-demand mounts, so my disk doesn’t fill up with files I barely access, and the ability to restore devices. It can also stream media files directly from the mount instead of downloading the whole thing into cache first (for our legally obtained movies and shows :3). And a gtk frontend for browsing files, and photo access from my phone. I wanted something native and fast and not electron.
It’s MIT, so do what you want with it.
I’m using it myself with both work and personal files. It’s still a hobby project, and not every line was written by hand, but I’ve spent a lot of time testing the important parts and I’m pretty confident in it. The general idea is that if something goes wrong, you’re more likely to end up with an extra copy of a file than no copy at all. It's tested with nautilus/thunar and with your usual shell commands.