MCPcopy
hub / github.com/bbycroft/llm-viz / beginQueryAndGetPrevMs

Function beginQueryAndGetPrevMs

src/llm/render/queryManager.ts:24–54  ·  view source on GitHub ↗
(manager: IQueryManager, name: string)

Source from the content-addressed store, hash-verified

22}
23
24export function beginQueryAndGetPrevMs(manager: IQueryManager, name: string): number | null {
25 if (!manager.ctx.ext.disjointTimerQuery) {
26 return null;
27 }
28
29 let existing = manager.queries.get(name);
30 if (!existing) {
31 let query = manager.ctx.gl.createQuery()!;
32 manager.queries.set(name, existing = { query, hasRun: false, hasStarted: false });
33 }
34
35 let resultAvailable = false
36 if (existing.hasRun) {
37 resultAvailable = manager.ctx.gl.getQueryParameter(existing.query, manager.ctx.gl.QUERY_RESULT_AVAILABLE);
38 }
39
40 let resultMs: number | null = null;
41
42 if (resultAvailable) {
43 let timeElapsed = manager.ctx.gl.getQueryParameter(existing.query, manager.ctx.gl.QUERY_RESULT);
44 resultMs = timeElapsed / 1000000;
45 }
46
47 if (!existing.hasRun || resultAvailable) {
48 manager.ctx.gl.beginQuery(manager.TIME_ELAPSED_EXT, existing.query);
49 existing.hasRun = true;
50 existing.hasStarted = true;
51 }
52
53 return resultMs;
54}
55
56export function endQuery(manager: IQueryManager, name: string) {
57 if (!manager.ctx.ext.disjointTimerQuery) {

Callers 1

runProgramFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected