提交 8e8749fd 编写于 作者: R Rachel Macfarlane

Change process list formatting to raw instead of table, fixes ##44733

上级 ac842329
......@@ -679,26 +679,7 @@ export class IssueReporter extends Disposable {
private updateProcessInfo = (state) => {
const target = document.querySelector('.block-process .block-info');
let tableHtml = `
<tr>
<th>pid</th>
<th>CPU %</th>
<th>Memory (MB)</th>
<th>Name</th>
</tr>`;
state.processInfo.forEach(p => {
tableHtml += `
<tr>
<td>${p.pid}</td>
<td>${p.cpu}</td>
<td>${p.memory}</td>
<td>${p.name}</td>
</tr>`;
});
target.innerHTML = `<table>${tableHtml}</table>`;
target.innerHTML = `<code>${state.processInfo}</code>`;
}
private updateWorkspaceInfo = (state) => {
......
......@@ -144,20 +144,15 @@ ${this.getInfos()}
}
private generateProcessInfoMd(): string {
let md = `<details>
return `<details>
<summary>Process Info</summary>
|pid|CPU|Memory (MB)|Name|
|---|---|---|---|
`;
this._data.processInfo.forEach(p => {
md += `|${p.pid}|${p.cpu}|${p.memory}|${p.name}|\n`;
});
md += '\n</details>';
\`\`\`
${this._data.processInfo}
\`\`\`
return md;
</details>
`;
}
private generateWorkspaceInfoMd(): string {
......
......@@ -52,9 +52,9 @@ export default (): string => `
<label class="caption" for="includeProcessInfo">${escape(localize('sendData', "Send my data"))}</label>
</div>
</summary>
<div class="block-info">
<pre class="block-info">
<!-- To be dynamically filled -->
</div>
</pre>
</details>
</div>
<div class="block block-workspace">
......
......@@ -126,7 +126,7 @@ body {
overflow-wrap: break-word;
}
pre {
margin: 0;
margin: 10px 20px;
}
pre code {
font-family: 'Menlo', 'Courier New', 'Courier', monospace;
......
......@@ -39,7 +39,7 @@ export interface ProcessInfo {
}
export interface PerformanceInfo {
processInfo?: ProcessInfo[];
processInfo?: string;
workspaceInfo?: string;
}
......@@ -78,7 +78,7 @@ export function getPerformanceInfo(info: IMainProcessInfo): Promise<PerformanceI
}
return {
processInfo: getProcessList(info, rootProcess),
processInfo: formatProcessList(info, rootProcess),
workspaceInfo: workspaceInfoMessages.join('\n')
};
});
......@@ -208,49 +208,6 @@ function formatLaunchConfigs(configs: WorkspaceStatItem[]): string {
return output.join('\n');
}
function getProcessList(info: IMainProcessInfo, rootProcess: ProcessItem): ProcessInfo[] {
const mapPidToWindowTitle = new Map<number, string>();
info.windows.forEach(window => mapPidToWindowTitle.set(window.pid, window.title));
const processes: ProcessInfo[] = [];
if (rootProcess) {
getProcessItem(mapPidToWindowTitle, processes, rootProcess, 0);
}
return processes;
}
function getProcessItem(mapPidToWindowTitle: Map<number, string>, processes: ProcessInfo[], item: ProcessItem, indent: number): void {
const isRoot = (indent === 0);
const MB = 1024 * 1024;
// Format name with indent
let name: string;
if (isRoot) {
name = `${product.applicationName} main`;
} else {
name = `${repeat('--', indent)} ${item.name}`;
if (item.name === 'window') {
name = `${name} (${mapPidToWindowTitle.get(item.pid)})`;
}
}
const memory = process.platform === 'win32' ? item.mem : (os.totalmem() * (item.mem / 100));
processes.push({
cpu: Number(item.load.toFixed(0)),
memory: Number((memory / MB).toFixed(0)),
pid: Number((item.pid).toFixed(0)),
name
});
// Recurse into children if any
if (Array.isArray(item.children)) {
item.children.forEach(child => getProcessItem(mapPidToWindowTitle, processes, child, indent + 1));
}
}
function formatEnvironment(info: IMainProcessInfo): string {
const MB = 1024 * 1024;
const GB = 1024 * MB;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册