Budget the sample buffer in samples per signal, under a hard memory limit
--buffer-samples (k/M/G) replaces --buffer-mb: the request is rounded down to a power of two for every signal and the shared time ring. A separate memory limit (--memory-limit-mb, a Preferences row, default 8 GiB) halves the plan until the real ring bytes fit and says so on stderr and in the status line. The per-source key buffer_mb becomes buffer_samples; an old buffer_mb is ignored. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
616cde5b13
commit
034c82f7d7
20 files changed
+516
-134
No files matched your search
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "settings.hpp"
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <fstream>
|
||||
@@ -64,6 +65,9 @@ Settings load_settings() {
|
||||
s.event_cache_max = std::max(0, std::atoi(value.c_str()));
|
||||
} else if (key == "relative_time") {
|
||||
s.relative_time = parse_bool(value, s.relative_time);
|
||||
} else if (key == "memory_limit_mb") {
|
||||
const long mb = std::strtol(value.c_str(), nullptr, 10);
|
||||
if (mb >= 16) s.memory_limit_mb = static_cast<int>(std::min<long>(mb, 1000000000L));
|
||||
} else if (key == "theme") {
|
||||
if (value == "auto" || value == "light" || value == "dark") s.theme = value;
|
||||
} else if (key == "contextual_help") {
|
||||
@@ -83,6 +87,7 @@ bool save_settings(const Settings& settings) {
|
||||
out << "event_cache_dir = \"" << settings.event_cache_dir << "\"\n";
|
||||
out << "event_cache_max = " << settings.event_cache_max << "\n";
|
||||
out << "relative_time = " << (settings.relative_time ? "true" : "false") << "\n";
|
||||
out << "memory_limit_mb = " << settings.memory_limit_mb << "\n";
|
||||
out << "theme = \"" << settings.theme << "\"\n";
|
||||
// The two help keys are the *app's* memory rather than the dialog's: the contextual-help rows --
|
||||
// the Help menu's and the source chooser's own -- write the first, and the first-run tour writes the
|
||||
|
||||
Reference in new issue
Block a user