Skip to content

Releases: benfiart/MemPressure-releases

MemPressure 1.5.0

Choose a tag to compare

@benfiart benfiart released this 01 Sep 03:50

Temperatures, per-core CPU, and a cog that finally wears its number properly.

New

  • Temperature monitoring for the chip, the SSD and the battery, read from the built-in sensors with no kernel extension.
  • Per-core CPU widget. One bar per core, with the performance and efficiency clusters separated by a gap.

Changed

  • The cog's value sits inside the gear now, tucked into the top right corner instead of floating clear of it. Values are drawn in a fixed width field, so the gap to the next widget stays put whether the reading is 07%, 42% or 100.
  • Cog size is fixed at 18 pt and the size slider is gone. The gear's radius was always capped by the height of the menu bar, so anything above roughly 15.6 pt only grew the text and pushed it away from the gear.

Fixed

  • Memory Used now matches what Activity Monitor reports.
  • Menu bar spacing keeps an even rhythm, and the spacing slider no longer jitters while you drag it.

Installing

Requires macOS 13 or later on Apple silicon.

This build is not notarised by Apple, so the first launch needs one extra step: right click MemPressure in Applications, choose Open, then confirm. After that it opens normally. Updates from inside the app are signature checked and install without the prompt.

More at mempressure.com.

MemPressure v1.4.2

Choose a tag to compare

@benfiart benfiart released this 24 May 09:08

Energy efficiency improvements

Two changes that meaningfully reduce 12-hour energy cost for an always-on menu-bar app.

Pause when display sleeps

Polling and the cog animation now stop when the display turns off, and resume on wake. Hours spent with the laptop closed or display asleep no longer accumulate WindowServer recompositing or kernel wakeups against MemPressure.

Hash-based bitmap cache

The menu-bar bitmap is only redrawn when the visible pixels would actually change (quantized percents, sparkline history, formatted strings, colors, layout). Stable ticks skip the NSImage allocation and per-renderer draw work.

Also under the hood

  • DispatchSourceTimer with 200 ms leeway replaces Timer.scheduledTimer, letting the kernel coalesce our polls with other system timers.

No visible behavior changes. Cog animation, popover, all UI exactly as before.

MemPressure v1.4.1

Choose a tag to compare

@benfiart benfiart released this 18 May 06:58

Fix memory leak from popover view tree

The popover's SwiftUI view tree (PopoverView) was created at app launch and held for the process lifetime, even when hidden. Its 5 @ObservedObject subscriptions stayed active on every 2-second monitor tick, causing ~44 MB residency after the first popover open plus ~1.6 MB/hour drift.

After this fix the view tree is created lazily when the popover opens and released when it closes. 24-hour validation: memory drift dropped from 1.6 MB/h to 0.04 MB/h (40× reduction), with no post-wake spikes across 8 sleep cycles.

This is what was causing macOS to occasionally flag MemPressure as a high-energy app — the leak gradually inflated its rolling Energy Impact score until it crossed Apple's threshold.

No visible behavior changes; the cog animation and all other UI is exactly as before.

MemPressure v1.4.0

Choose a tag to compare

@benfiart benfiart released this 05 Mar 15:22

Sparkle auto-update, version footer, CPU metric, styled DMG installer.