perf(catalog): skipped global reference enrichment on provider-local hits

This commit is contained in:
can1357
2026-07-27 04:44:03 +02:00
parent d64eba7187
commit 350cc6c0d1
3 changed files with 32 additions and 4 deletions
@@ -67,11 +67,9 @@ export function createReferenceResolver<TApi extends Api>(
? () => (lazyProviderReferences ??= providerReferenceSource())
: () => providerReferenceSource;
return (modelId: string) => {
const providerRefs = getProviderReferences();
const globalRefs = getGlobalReferences();
const providerRef = providerRefs.get(modelId);
const providerRef = getProviderReferences().get(modelId);
if (providerRef) return providerRef;
const globalRef = globalRefs.get(modelId);
const globalRef = getGlobalReferences().get(modelId);
return globalRef ? toModelSpec(globalRef as Model<TApi>) : undefined;
};
}
@@ -3,6 +3,7 @@ import { createReferenceResolver } from "../src/provider-models/bundled-referenc
import type { ModelSpec } from "../src/types";
const FIXTURE = `${import.meta.dir}/fixtures/bundled-reference-laziness.ts`;
const PROVIDER_HIT_FIXTURE = `${import.meta.dir}/fixtures/provider-hit-reference-laziness.ts`;
describe("bundled reference laziness", () => {
test("constructing bundled model-manager options retains less than 8 MiB of RSS", () => {
@@ -15,6 +16,20 @@ describe("bundled reference laziness", () => {
expect(retainedRssBytes).toBeLessThan(8 * 1024 * 1024);
});
test("a provider-local reference hit retains less than 8 MiB of RSS", () => {
const result = Bun.spawnSync({
cmd: [process.execPath, PROVIDER_HIT_FIXTURE],
env: process.env,
});
expect(result.exitCode).toBe(0);
const { resolvedId, retainedRssBytes } = JSON.parse(result.stdout.toString()) as {
resolvedId: string | null;
retainedRssBytes: number;
};
expect(resolvedId).not.toBeNull();
expect(retainedRssBytes).toBeLessThan(8 * 1024 * 1024);
});
test("a lazy provider-reference factory initializes on first resolution and only once", () => {
const reference = {
id: "fixture-model",
@@ -0,0 +1,15 @@
import { getBundledModels } from "../../src/models";
import { createBundledReferenceMap, createReferenceResolver } from "../../src/provider-models/bundled-references";
const providerModels = getBundledModels("fireworks");
const firstId = providerModels[0]?.id;
if (!firstId) throw new Error("fireworks must have bundled models");
Bun.gc(true);
const rssBefore = process.memoryUsage().rss;
const resolveReference = createReferenceResolver(() => createBundledReferenceMap<"openai-completions">("fireworks"));
const resolved = resolveReference(firstId);
Bun.gc(true);
const retainedRssBytes = process.memoryUsage().rss - rssBefore;
console.log(JSON.stringify({ resolvedId: resolved?.id ?? null, retainedRssBytes }));