Skip to content

Commit

Permalink
[engine] 최대 쓰레드 수 3개 제한 및 git 로그 최초 한 번만 불러오기
Browse files Browse the repository at this point in the history
[engine] 최대 쓰레드 수 3개 제한 및 git 로그 최초 한 번만 불러오기
  • Loading branch information
BeA-Pro authored Oct 7, 2024
2 parents 632560d + be3931a commit 3ffabfb
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
11 changes: 4 additions & 7 deletions packages/vscode/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ export async function activate(context: vscode.ExtensionContext) {

const fetchBranches = async () => await getBranches(gitPath, currentWorkspacePath);

const gitLog = await fetchGitLogInParallel(gitPath, currentWorkspacePath);

const fetchCurrentBranch = async () => {
let branchName;
try {
Expand All @@ -76,14 +78,9 @@ export async function activate(context: vscode.ExtensionContext) {
};

const initialBaseBranchName = await fetchCurrentBranch();
const fetchClusterNodes = async (baseBranchName = initialBaseBranchName) => {
const startTime = Date.now();
const gitLog = await fetchGitLogInParallel(gitPath, currentWorkspacePath);
const endTime = Date.now();
const elapsedTime = (endTime - startTime) / 1000;
console.log(`${elapsedTime.toFixed(3)}s`);


const fetchClusterNodes = async (baseBranchName = initialBaseBranchName) => {
const gitConfig = await getGitConfig(gitPath, currentWorkspacePath, "origin");

const { owner, repo: initialRepo } = getRepo(gitConfig);
Expand Down
11 changes: 9 additions & 2 deletions packages/vscode/src/utils/git.util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -220,8 +220,15 @@ export async function fetchGitLogInParallel(gitPath: string, currentWorkspacePat

const totalCnt = await getLogCount(gitPath, currentWorkspacePath);
let numberOfThreads = 1;
if(totalCnt > 1000) numberOfThreads = Math.max(numCores/2,1);
console.log("thread nums ",numberOfThreads);

const taskThreshold = 1000;
const coreCountThreshold = 4;

if (totalCnt > taskThreshold) {
if (numCores < coreCountThreshold) numberOfThreads = 2;
else numberOfThreads = 3;
}

const chunkSize = Math.ceil(totalCnt/ numberOfThreads);
const promises: Promise<string>[] = [];

Expand Down
3 changes: 1 addition & 2 deletions packages/vscode/src/webview-loader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,12 @@ export default class WebviewLoader implements vscode.Disposable {
const { command, payload } = message;

if (command === "fetchAnalyzedData" || command === "refresh") {
const baseBranchName = (payload && JSON.parse(payload)) ?? (await fetchCurrentBranch());
try {
const baseBranchName = (payload && JSON.parse(payload)) ?? (await fetchCurrentBranch());
const storedAnalyzedData = context.workspaceState.get<ClusterNode[]>(
`${ANALYZE_DATA_KEY}_${baseBranchName}`
);
let analyzedData = storedAnalyzedData;
analyzedData = storedAnalyzedData;
if (!storedAnalyzedData) {
console.log("No cache Data");
console.log("baseBranchName : ", baseBranchName);
Expand Down

0 comments on commit 3ffabfb

Please sign in to comment.