From 74e41741c345d7c69b004314a15b4454d6ab3156 Mon Sep 17 00:00:00 2001 From: Kartik Raj Date: Tue, 13 Jul 2021 13:09:09 -0700 Subject: [PATCH] Make getInterpreters() API faster --- src/client/common/experiments/helpers.ts | 7 +++++++ src/client/interpreter/interpreterService.ts | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/client/common/experiments/helpers.ts b/src/client/common/experiments/helpers.ts index a85a468f494f..127559f4fb12 100644 --- a/src/client/common/experiments/helpers.ts +++ b/src/client/common/experiments/helpers.ts @@ -13,3 +13,10 @@ export async function inDiscoveryExperiment(experimentService: IExperimentServic ]); return results.includes(true); } + +export function inDiscoveryExperimentSync(experimentService: IExperimentService): boolean { + return ( + experimentService.inExperimentSync(DiscoveryVariants.discoverWithFileWatching) || + experimentService.inExperimentSync(DiscoveryVariants.discoveryWithoutFileWatching) + ); +} diff --git a/src/client/interpreter/interpreterService.ts b/src/client/interpreter/interpreterService.ts index 50d78f980189..dd556580c4ee 100644 --- a/src/client/interpreter/interpreterService.ts +++ b/src/client/interpreter/interpreterService.ts @@ -33,7 +33,7 @@ import { } from './contracts'; import { IVirtualEnvironmentManager } from './virtualEnvs/types'; import { getInterpreterHash } from '../pythonEnvironments/discovery/locators/services/hashProvider'; -import { inDiscoveryExperiment } from '../common/experiments/helpers'; +import { inDiscoveryExperiment, inDiscoveryExperimentSync } from '../common/experiments/helpers'; import { StopWatch } from '../common/utils/stopWatch'; import { PythonVersion } from '../pythonEnvironments/info/pythonVersion'; @@ -139,7 +139,7 @@ export class InterpreterService implements Disposable, IInterpreterService { public async getInterpreters(resource?: Uri, options?: GetInterpreterOptions): Promise { let environments: PythonEnvironment[] = []; const stopWatch = new StopWatch(); - if (await inDiscoveryExperiment(this.experimentService)) { + if (inDiscoveryExperimentSync(this.experimentService)) { environments = await this.pyenvs.getInterpreters(resource, options); } else { const locator = this.serviceContainer.get(