mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-07-27 00:34:35 +02:00
* [skip ci] Update CHANGELOG.md (prepend template) * fix(dev): tweak frontend-bundle-report * Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop * enhance(dev): tweak Frontend Chunk Report * fix(dev): tweak frontend-bundle-report-comment * enhance(dev): tweak Frontend Chunk Report * enhance(dev): tweak Frontend Chunk Report * enhance(dev): improve backend memory usage comparison workflow (#17591) * wip * Update get-backend-memory.yml * [ci skip] tweak table * enhance(dev): tweak report-backend-memory * refactor(dev): report-backend-memoryのmarkdown生成ロジックを分離 * enhance(dev): tweak report-backend-memory * enhance(dev): tweak report-backend-memory * enhance(dev): tweak report-backend-memory * chore(dev): refactor * refactor(dev): unify frontend-bundle-visualizer-report.mjs and frontend-js-size.mjs * chore(dev): fix typo * refactor(dev): refactor frontend-js-size.mjs * chore(dev): tweak frontend-js-size.mjs * chore(dev): tweak frontend-js-size.mjs * chore(dev): tweak frontend-js-size.mjs * chore(ci): simplify FFmpeg installation in workflows (#17612) * chore(ci): simplify FFmpeg installation in workflows * fix * fix(dev): tweak frontend-js-size.mjs * Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop * enhance(dev): improve Frontend Bundle Report * chore(dev): refactor frontend bundle report * enhance(dev): improve backend memory usage report (#17608) * enhance(dev): tweak report-backend-memory * wip * Update backend-memory-report.mjs * Update backend-memory-report.mjs * chore(dev): tweak frontend-js-size.mjs * Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * (test) enhance(dev): improve backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak frontend-js-size * chore(dev): tweak frontend-js-size * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak backend-memory-report * chore(dev): tweak frontend-js-size * Update frontend-bundle-report.yml * [ci skip] chore(dev): tweak frontend-js-size * refactor(dev): refactor of backend memory comparison workflow (#17619) * refactor(dev): refactor of backend memory comparison workflow * fix * fix(dev): follow up of1c4bcd9b32* fix(dev): follow up of1c4bcd9b32* fix(dev): follow up of1c4bcd9b32* fix(dev): follow up of1c4bcd9b32* chore(dev): refactor workflow js * refactor(dev): extract heap snapshot logic 将来的にフロントエンドでもheap snaphotを集計したくなった時などのため あとpairedDeltaSummaryを共通化 * chore(dev): tweak backend-memory-report * chore(dev): tweak some workflows * chore(dev): tweak some workflows * fix(dev): fix measure-memory * clean up --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com>
47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
/*
|
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
const { appendFileSync, statSync } = require('node:fs');
|
|
const Module = require('node:module');
|
|
const { extname } = require('node:path');
|
|
|
|
const traceFile = process.env.MK_BACKEND_JS_FOOTPRINT_TRACE;
|
|
const jsExtensions = new Set(['.js', '.mjs', '.cjs']);
|
|
|
|
function recordLoadedFile(kind, filePath, request) {
|
|
if (traceFile == null || typeof filePath !== 'string') return;
|
|
|
|
const extension = extname(filePath);
|
|
if (!jsExtensions.has(extension) && extension !== '.node') return;
|
|
|
|
let size = null;
|
|
try {
|
|
size = statSync(filePath).size;
|
|
} catch {
|
|
return;
|
|
}
|
|
|
|
appendFileSync(traceFile, `${JSON.stringify({
|
|
kind,
|
|
format: extension === '.node' ? 'native' : 'commonjs',
|
|
path: filePath,
|
|
request,
|
|
size,
|
|
timestamp: Date.now(),
|
|
})}\n`);
|
|
}
|
|
|
|
const originalLoad = Module._load;
|
|
const originalResolveFilename = Module._resolveFilename;
|
|
|
|
Module._load = function load(request, parent, isMain) {
|
|
const resolved = originalResolveFilename.call(this, request, parent, isMain);
|
|
const result = originalLoad.apply(this, arguments);
|
|
recordLoadedFile('cjs', resolved, request);
|
|
return result;
|
|
};
|