Skip to content

Commit ee6baee

Browse files
authored
Merge pull request #527 from devchat-ai/log_completion_time
Chore: Optimize InlineCompletionProvider for Better Performance
2 parents 8e31ea0 + e12553f commit ee6baee

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/contributes/codecomplete/codecomplete.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,9 @@ export class InlineCompletionProvider implements vscode.InlineCompletionItemProv
120120
// }
121121

122122
async codeComplete(document: vscode.TextDocument, position: vscode.Position, context: vscode.InlineCompletionContext, token: vscode.CancellationToken): Promise<CodeCompleteResult | undefined> {
123+
const startTime = process.hrtime();
123124
GitDiffWatcher.getInstance().tryRun();
124-
const completeDebug = this.devchatConfig.get("complete_debug");
125-
125+
126126
// create prompt
127127
const fsPath = document.uri.fsPath;
128128
const fileContent = document.getText();
@@ -154,12 +154,21 @@ export class InlineCompletionProvider implements vscode.InlineCompletionItemProv
154154
return undefined;
155155
}
156156

157+
const endTime = process.hrtime(startTime);
158+
const duration = endTime[0] + endTime[1] / 1e9;
159+
logger.channel()?.debug(`Make prompt took ${duration} seconds`);
160+
const startTimeLLM = process.hrtime();
161+
157162
const completor = new LLMStreamComplete(token, lines, position.line, position.character);
158163
const response = await completor.llmStreamComplete(prompt);
159164
if (!response || response.code.length === 0) {
160165
return undefined;
161166
}
162167

168+
const endTimeLLM = process.hrtime(startTimeLLM);
169+
const durationLLM = endTimeLLM[0] + endTimeLLM[1] / 1e9;
170+
logger.channel()?.debug(`LLMStreamComplete took ${durationLLM} seconds`);
171+
163172
if (token.isCancellationRequested) {
164173
return undefined;
165174
}
@@ -170,8 +179,6 @@ export class InlineCompletionProvider implements vscode.InlineCompletionItemProv
170179
}
171180

172181
async provideInlineCompletionItems(document: vscode.TextDocument, position: vscode.Position, context: vscode.InlineCompletionContext, token: vscode.CancellationToken): Promise<vscode.InlineCompletionItem[] | null> {
173-
const completeDebug = this.devchatConfig.get("complete_debug");
174-
175182
const result = await this.debouncer.debounce();
176183
if (!result) {
177184
return [];

0 commit comments

Comments
 (0)