Skip to content

Performance and memory

What Outbound does under load, the performance setting, memory pressure, overload notices and the settings that cap memory use.

Outbound 1.2.0 · Updated

Outbound runs beside everything else you use, on Macs with 8 GB of memory as well as larger ones, and it steps itself down when the Mac is under load. You can choose how much work its optional visuals do.

Settings › Labs › Performance offers three modes, also chosen during setup:

  • Automatic (the default): full quality when the Mac has room, lighter when it needs it. Automatic runs efficiently on a Mac with 8 GB of memory or less, when Low Power Mode is on, when the Mac is running hot, and while macOS reports memory pressure.
  • Always efficient: the least memory, graphics and battery; simpler visuals.
  • Always full quality: every map, globe and animation at its best, even on battery.

Protection is the same on every setting; only what is drawn for show changes. When Automatic steps down, the reason is said in words (“Your Mac is short of memory right now.”), and the visuals come back the moment the condition clears.

When macOS reports a memory warning, Outbound purges rebuildable caches: app name caches, website icons, globe geometry, the analytics store’s memory, the public suffix list, the location database’s caches, and the rest. Nothing you see is lost; the caches are rebuilt from disk or recomputed as needed. Outbound also asks the memory allocator to return freed memory to macOS.

When you close the last Outbound window, the app trims itself the same way after 30 seconds of having no window open. Opening a window cancels the trim.

Overload: too many connections to ask about

Section titled “Overload: too many connections to ask about”

In Ask mode, an app whose alert is waiting has its connections paused, up to a per-program budget that protects the kernel and the other apps’ alerts. When an app opens connections faster than you can answer, the excess is refused at once, and Outbound posts a notice rather than letting those denies stay silent: “Outbound held back N connections from ”, with the body “ opened connections faster than you could answer. Allow to connect?”

The notice appears at most once per app per 10 minutes, under the Operational problems switch in Notifications, and its buttons are the app’s own: Allow makes the same app-wide allow rule the alert would, and Open Alert brings the alert panel forward. See VPNs and other filters if the affected app is a VPN.

Once an hour (first check two minutes after launch), Outbound looks for apps that sent an unusual amount of telemetry that day: 1,000 or more attempts, or at least 30 percent of the app’s connections with at least 200 attempts. An app that crosses the line can get one warning per day unless its warnings are muted or its telemetry is already turned off: “ sends a lot of telemetry”, with the count of attempts and, when identified, the top vendor named. The count includes attempts Outbound already blocked.

Don’t Warn for This App mutes its warnings. Turn Off Telemetry requests a telemetry-blocking rule. A generic runtime (node, python, curl) cannot be blocked by name. When the action lacks a usable identity, it opens Settings › Telemetry instead. The notice’s Show action opens the app’s telemetry sheet when its team or path is available, otherwise Settings › Telemetry. The switch is “Heavy telemetry” in Notifications.

These settings limit saved history and the live monitor list:

  • Keep connection history (Settings › Monitor › History): 1 day, 7 days (the default), 30 days, or Off. Off deletes the saved history and stops recording. History lives in ~/Library/Application Support/com.outboundfirewall.outbound/History.
  • Remember N connections (Settings › Monitor): how many distinct connections the live Network Monitor list keeps, from 1,000 to 50,000 in steps of 1,000, default 5,000.

The health report measures Outbound’s own processes. A process at 600 MiB of memory or more raises a warning; 1,200 MiB or more raises a problem, and restarting that process frees the memory while protection carries on. If a process keeps growing, the report asks you to report it (Help › Report a Problem…, and see Report a problem).