commit
d3896cb91a
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "ente",
|
||||
"productName": "ente",
|
||||
"version": "1.6.17-alpha.5",
|
||||
"version": "1.6.17",
|
||||
"private": true,
|
||||
"description": "Desktop client for ente.io",
|
||||
"main": "app/main.js",
|
||||
|
@ -68,7 +68,7 @@
|
|||
"start": "concurrently \"yarn start-main\" \"yarn start-renderer\"",
|
||||
"build-renderer": "cd ui && yarn install && yarn build && cd ..",
|
||||
"build": "yarn build-renderer && yarn build-main",
|
||||
"test-release": "yarn build && electron-builder --config.compression=store"
|
||||
"test-release": "cross-env IS_TEST_RELEASE=true yarn build && electron-builder --config.compression=store"
|
||||
},
|
||||
"author": "ente <code@ente.io>",
|
||||
"devDependencies": {
|
||||
|
@ -83,6 +83,7 @@
|
|||
"@typescript-eslint/eslint-plugin": "^5.28.0",
|
||||
"@typescript-eslint/parser": "^5.28.0",
|
||||
"concurrently": "^7.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"electron": "^21.2.2",
|
||||
"electron-builder": "^23.0.3",
|
||||
"electron-builder-notarize": "^1.2.0",
|
||||
|
|
|
@ -51,7 +51,10 @@ import { fixHotReloadNext12 } from './utils/preload';
|
|||
import { isFolder, getDirFiles } from './api/fs';
|
||||
import { convertHEIC, generateImageThumbnail } from './api/imageProcessor';
|
||||
import { setupLogging } from './utils/logging';
|
||||
import { setupRendererProcessStatsLogger } from './utils/processStats';
|
||||
import {
|
||||
setupRendererProcessStatsLogger,
|
||||
logRendererProcessMemoryUsage,
|
||||
} from './utils/processStats';
|
||||
import { runFFmpegCmd } from './api/ffmpeg';
|
||||
|
||||
fixHotReloadNext12();
|
||||
|
@ -107,4 +110,5 @@ windowObject['ElectronAPIs'] = {
|
|||
runFFmpegCmd,
|
||||
muteUpdateNotification,
|
||||
generateImageThumbnail,
|
||||
logRendererProcessMemoryUsage,
|
||||
};
|
||||
|
|
|
@ -5,9 +5,9 @@ const LOGGING_INTERVAL_IN_MICROSECONDS = 30 * 1000; // 30 seconds
|
|||
|
||||
const SPIKE_DETECTION_INTERVAL_IN_MICROSECONDS = 1 * 1000; // 1 seconds
|
||||
|
||||
const MAIN_MEMORY_USAGE_DIFF_IN_KILOBYTES_CONSIDERED_AS_SPIKE = 10 * 1024; // 10 MB
|
||||
const MAIN_MEMORY_USAGE_DIFF_IN_KILOBYTES_CONSIDERED_AS_SPIKE = 50 * 1024; // 50 MB
|
||||
|
||||
const HIGH_MAIN_MEMORY_USAGE_THRESHOLD_IN_KILOBYTES = 100 * 1024; // 100 MB
|
||||
const HIGH_MAIN_MEMORY_USAGE_THRESHOLD_IN_KILOBYTES = 200 * 1024; // 200 MB
|
||||
|
||||
const RENDERER_MEMORY_USAGE_DIFF_IN_KILOBYTES_CONSIDERED_AS_SPIKE = 200 * 1024; // 200 MB
|
||||
|
||||
|
@ -40,15 +40,15 @@ let mainProcessUsingHighMemory = false;
|
|||
async function logSpikeMainMemoryUsage() {
|
||||
const processMemoryInfo = await process.getProcessMemoryInfo();
|
||||
const currentMemoryUsage = Math.max(
|
||||
processMemoryInfo.residentSet,
|
||||
processMemoryInfo.residentSet ?? 0,
|
||||
processMemoryInfo.private
|
||||
);
|
||||
const previewMemoryUsage = Math.max(
|
||||
previousMainProcessMemoryInfo.private,
|
||||
previousMainProcessMemoryInfo.residentSet
|
||||
const previousMemoryUsage = Math.max(
|
||||
previousMainProcessMemoryInfo.residentSet ?? 0,
|
||||
previousMainProcessMemoryInfo.private
|
||||
);
|
||||
const isSpiking =
|
||||
currentMemoryUsage - previewMemoryUsage >=
|
||||
currentMemoryUsage - previousMemoryUsage >=
|
||||
MAIN_MEMORY_USAGE_DIFF_IN_KILOBYTES_CONSIDERED_AS_SPIKE;
|
||||
|
||||
const isHighMemoryUsage =
|
||||
|
@ -92,15 +92,16 @@ let rendererUsingHighMemory = false;
|
|||
async function logSpikeRendererMemoryUsage() {
|
||||
const processMemoryInfo = await process.getProcessMemoryInfo();
|
||||
const currentMemoryUsage = Math.max(
|
||||
processMemoryInfo.residentSet,
|
||||
processMemoryInfo.residentSet ?? 0,
|
||||
processMemoryInfo.private
|
||||
);
|
||||
const previewMemoryUsage = Math.max(
|
||||
|
||||
const previousMemoryUsage = Math.max(
|
||||
previousRendererProcessMemoryInfo.private,
|
||||
previousRendererProcessMemoryInfo.residentSet
|
||||
previousRendererProcessMemoryInfo.residentSet ?? 0
|
||||
);
|
||||
const isSpiking =
|
||||
currentMemoryUsage - previewMemoryUsage >=
|
||||
currentMemoryUsage - previousMemoryUsage >=
|
||||
RENDERER_MEMORY_USAGE_DIFF_IN_KILOBYTES_CONSIDERED_AS_SPIKE;
|
||||
|
||||
const isHighMemoryUsage =
|
||||
|
@ -168,6 +169,19 @@ export function setupRendererProcessStatsLogger() {
|
|||
setInterval(logRendererProcessStats, LOGGING_INTERVAL_IN_MICROSECONDS);
|
||||
}
|
||||
|
||||
export async function logRendererProcessMemoryUsage(message: string) {
|
||||
const processMemoryInfo = await process.getProcessMemoryInfo();
|
||||
const processMemory = Math.max(
|
||||
processMemoryInfo.private,
|
||||
processMemoryInfo.residentSet ?? 0
|
||||
);
|
||||
ElectronLog.log(
|
||||
'renderer ProcessMemory',
|
||||
message,
|
||||
convertBytesToHumanReadable(processMemory * 1024)
|
||||
);
|
||||
}
|
||||
|
||||
const getNormalizedProcessMemoryInfo = async (
|
||||
processMemoryInfo: Electron.ProcessMemoryInfo
|
||||
) => {
|
||||
|
|
2
ui
2
ui
|
@ -1 +1 @@
|
|||
Subproject commit f4f1de08eb8556d598d75b79a4473a1f02e8165b
|
||||
Subproject commit 3a37be3e4f4c6372a6ffd1ec53b588e6a93649f0
|
|
@ -1199,6 +1199,13 @@ crc@^3.8.0:
|
|||
dependencies:
|
||||
buffer "^5.1.0"
|
||||
|
||||
cross-env@^7.0.3:
|
||||
version "7.0.3"
|
||||
resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
|
||||
integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==
|
||||
dependencies:
|
||||
cross-spawn "^7.0.1"
|
||||
|
||||
cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
|
||||
version "7.0.3"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
||||
|
|
Loading…
Reference in a new issue