From 34507e469c751ea2755afdcf362dd5a7b25e7ad0 Mon Sep 17 00:00:00 2001 From: rakzoser <82242062+rakzoser@users.noreply.github.com> Date: Thu, 31 Oct 2024 23:17:37 +0200 Subject: [PATCH] Added ram check --- .idea/caches/deviceStreaming.xml | 329 +++++++++++++++++++++++++++++++ .idea/components.iml | 9 + .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + .idea/workspace.xml | 45 +++++ src/ZenTabUnloader.mjs | 20 +- 7 files changed, 422 insertions(+), 1 deletion(-) create mode 100644 .idea/caches/deviceStreaming.xml create mode 100644 .idea/components.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml new file mode 100644 index 0000000..5a2f866 --- /dev/null +++ b/.idea/caches/deviceStreaming.xml @@ -0,0 +1,329 @@ + + + + + + \ No newline at end of file diff --git a/.idea/components.iml b/.idea/components.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/components.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..a6e1098 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d9e9703 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..b59815b --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + 1730409076332 + + + + \ No newline at end of file diff --git a/src/ZenTabUnloader.mjs b/src/ZenTabUnloader.mjs index fc7d070..cbf2397 100644 --- a/src/ZenTabUnloader.mjs +++ b/src/ZenTabUnloader.mjs @@ -6,6 +6,9 @@ XPCOMUtils.defineLazyPreferenceGetter(lazy, 'zenTabUnloaderTimeout', 'zen.tab-unloader.timeout-minutes', 20); XPCOMUtils.defineLazyPreferenceGetter(lazy, 'zenTabUnloaderExcludedUrls', 'zen.tab-unloader.excluded-urls', ''); + + XPCOMUtils.defineLazyPreferenceGetter(lazy, 'zenTabUnloaderRamThreshold', 'zen.tab-unloader.ram-threshold', 70); + const ZEN_TAB_UNLOADER_DEFAULT_EXCLUDED_URLS = [ '^about:', @@ -75,7 +78,16 @@ this.interval = setInterval(this.intervalListener.bind(this), ZenTabsIntervalUnloader.INTERVAL); this.#excludedUrls = this.lazyExcludeUrls; } - + + async getRAMUsage() { // RAM usage ceck + try { + const memoryInfo = await Components.utils.getMemoryInfo(); + const totalPhysicalMemory = memoryInfo.total; + const usedMemory = memoryInfo.resident; + return (usedMemory / totalPhysicalMemory) * 100; + } + } + get lazyExcludeUrls() { return [ ...ZEN_TAB_UNLOADER_DEFAULT_EXCLUDED_URLS, @@ -113,6 +125,12 @@ if (!lazy.zenTabUnloaderEnabled) { return; } + // Check RAM usage before proceeding + const ramUsage = await this.getRAMUsage(); + if (ramUsage < lazy.zenTabUnloaderRamThreshold) { + return; // Don't unload tabs if RAM usage is below threshold + } + const currentTimestamp = Date.now(); const excludedUrls = this.excludedUrls; const tabs = gBrowser.tabs;