Merge pull request #131 from ente-io/release

v1.6.17
This commit is contained in:
Abhinav Kumar 2023-01-21 11:48:13 +05:30 committed by GitHub
commit d3896cb91a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 41 additions and 15 deletions

View file

@ -1,7 +1,7 @@
{ {
"name": "ente", "name": "ente",
"productName": "ente", "productName": "ente",
"version": "1.6.17-alpha.5", "version": "1.6.17",
"private": true, "private": true,
"description": "Desktop client for ente.io", "description": "Desktop client for ente.io",
"main": "app/main.js", "main": "app/main.js",
@ -68,7 +68,7 @@
"start": "concurrently \"yarn start-main\" \"yarn start-renderer\"", "start": "concurrently \"yarn start-main\" \"yarn start-renderer\"",
"build-renderer": "cd ui && yarn install && yarn build && cd ..", "build-renderer": "cd ui && yarn install && yarn build && cd ..",
"build": "yarn build-renderer && yarn build-main", "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>", "author": "ente <code@ente.io>",
"devDependencies": { "devDependencies": {
@ -83,6 +83,7 @@
"@typescript-eslint/eslint-plugin": "^5.28.0", "@typescript-eslint/eslint-plugin": "^5.28.0",
"@typescript-eslint/parser": "^5.28.0", "@typescript-eslint/parser": "^5.28.0",
"concurrently": "^7.0.0", "concurrently": "^7.0.0",
"cross-env": "^7.0.3",
"electron": "^21.2.2", "electron": "^21.2.2",
"electron-builder": "^23.0.3", "electron-builder": "^23.0.3",
"electron-builder-notarize": "^1.2.0", "electron-builder-notarize": "^1.2.0",

View file

@ -51,7 +51,10 @@ import { fixHotReloadNext12 } from './utils/preload';
import { isFolder, getDirFiles } from './api/fs'; import { isFolder, getDirFiles } from './api/fs';
import { convertHEIC, generateImageThumbnail } from './api/imageProcessor'; import { convertHEIC, generateImageThumbnail } from './api/imageProcessor';
import { setupLogging } from './utils/logging'; import { setupLogging } from './utils/logging';
import { setupRendererProcessStatsLogger } from './utils/processStats'; import {
setupRendererProcessStatsLogger,
logRendererProcessMemoryUsage,
} from './utils/processStats';
import { runFFmpegCmd } from './api/ffmpeg'; import { runFFmpegCmd } from './api/ffmpeg';
fixHotReloadNext12(); fixHotReloadNext12();
@ -107,4 +110,5 @@ windowObject['ElectronAPIs'] = {
runFFmpegCmd, runFFmpegCmd,
muteUpdateNotification, muteUpdateNotification,
generateImageThumbnail, generateImageThumbnail,
logRendererProcessMemoryUsage,
}; };

View file

@ -5,9 +5,9 @@ const LOGGING_INTERVAL_IN_MICROSECONDS = 30 * 1000; // 30 seconds
const SPIKE_DETECTION_INTERVAL_IN_MICROSECONDS = 1 * 1000; // 1 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 const RENDERER_MEMORY_USAGE_DIFF_IN_KILOBYTES_CONSIDERED_AS_SPIKE = 200 * 1024; // 200 MB
@ -40,15 +40,15 @@ let mainProcessUsingHighMemory = false;
async function logSpikeMainMemoryUsage() { async function logSpikeMainMemoryUsage() {
const processMemoryInfo = await process.getProcessMemoryInfo(); const processMemoryInfo = await process.getProcessMemoryInfo();
const currentMemoryUsage = Math.max( const currentMemoryUsage = Math.max(
processMemoryInfo.residentSet, processMemoryInfo.residentSet ?? 0,
processMemoryInfo.private processMemoryInfo.private
); );
const previewMemoryUsage = Math.max( const previousMemoryUsage = Math.max(
previousMainProcessMemoryInfo.private, previousMainProcessMemoryInfo.residentSet ?? 0,
previousMainProcessMemoryInfo.residentSet previousMainProcessMemoryInfo.private
); );
const isSpiking = const isSpiking =
currentMemoryUsage - previewMemoryUsage >= currentMemoryUsage - previousMemoryUsage >=
MAIN_MEMORY_USAGE_DIFF_IN_KILOBYTES_CONSIDERED_AS_SPIKE; MAIN_MEMORY_USAGE_DIFF_IN_KILOBYTES_CONSIDERED_AS_SPIKE;
const isHighMemoryUsage = const isHighMemoryUsage =
@ -92,15 +92,16 @@ let rendererUsingHighMemory = false;
async function logSpikeRendererMemoryUsage() { async function logSpikeRendererMemoryUsage() {
const processMemoryInfo = await process.getProcessMemoryInfo(); const processMemoryInfo = await process.getProcessMemoryInfo();
const currentMemoryUsage = Math.max( const currentMemoryUsage = Math.max(
processMemoryInfo.residentSet, processMemoryInfo.residentSet ?? 0,
processMemoryInfo.private processMemoryInfo.private
); );
const previewMemoryUsage = Math.max(
const previousMemoryUsage = Math.max(
previousRendererProcessMemoryInfo.private, previousRendererProcessMemoryInfo.private,
previousRendererProcessMemoryInfo.residentSet previousRendererProcessMemoryInfo.residentSet ?? 0
); );
const isSpiking = const isSpiking =
currentMemoryUsage - previewMemoryUsage >= currentMemoryUsage - previousMemoryUsage >=
RENDERER_MEMORY_USAGE_DIFF_IN_KILOBYTES_CONSIDERED_AS_SPIKE; RENDERER_MEMORY_USAGE_DIFF_IN_KILOBYTES_CONSIDERED_AS_SPIKE;
const isHighMemoryUsage = const isHighMemoryUsage =
@ -168,6 +169,19 @@ export function setupRendererProcessStatsLogger() {
setInterval(logRendererProcessStats, LOGGING_INTERVAL_IN_MICROSECONDS); 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 ( const getNormalizedProcessMemoryInfo = async (
processMemoryInfo: Electron.ProcessMemoryInfo processMemoryInfo: Electron.ProcessMemoryInfo
) => { ) => {

2
ui

@ -1 +1 @@
Subproject commit f4f1de08eb8556d598d75b79a4473a1f02e8165b Subproject commit 3a37be3e4f4c6372a6ffd1ec53b588e6a93649f0

View file

@ -1199,6 +1199,13 @@ crc@^3.8.0:
dependencies: dependencies:
buffer "^5.1.0" 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: cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
version "7.0.3" version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"