From d989e1e942a77749c31e82296dd6c83a97184fd0 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 8 Feb 2022 17:45:04 +0200 Subject: Show timing info --- package-lock.json | 8 ++++---- package.json | 4 ++-- src/Editor.tsx | 5 ++++- src/api.ts | 30 ++++++------------------------ 4 files changed, 16 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index 367da34..7cb902f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "eslint": "8.8.0", "eslint-plugin-react": "7.28.0", "puppeteer": "13.2.0", - "slam-types": "git://github.com/jantuomi/slam-types.git#441a72c", + "slam-types": "git://github.com/jantuomi/slam-types.git#9de4a1e", "typescript": "^4.4.4", "vite": "^2.7.2", "vitest": "0.2.7" @@ -4381,7 +4381,7 @@ }, "node_modules/slam-types": { "version": "1.0.0", - "resolved": "git+ssh://git@github.com/jantuomi/slam-types.git#441a72c04cfc61dfead5cad37202a1da87a44499", + "resolved": "git+ssh://git@github.com/jantuomi/slam-types.git#9de4a1ee520063025a9b2cd592a364e28cdd24dc", "dev": true, "license": "ISC" }, @@ -8224,9 +8224,9 @@ } }, "slam-types": { - "version": "git+ssh://git@github.com/jantuomi/slam-types.git#441a72c04cfc61dfead5cad37202a1da87a44499", + "version": "git+ssh://git@github.com/jantuomi/slam-types.git#9de4a1ee520063025a9b2cd592a364e28cdd24dc", "dev": true, - "from": "slam-types@git://github.com/jantuomi/slam-types.git#441a72c" + "from": "slam-types@git://github.com/jantuomi/slam-types.git#9de4a1e" }, "slash": { "version": "3.0.0", diff --git a/package.json b/package.json index f5b0432..3adcdf4 100644 --- a/package.json +++ b/package.json @@ -25,9 +25,9 @@ "eslint": "8.8.0", "eslint-plugin-react": "7.28.0", "puppeteer": "13.2.0", - "slam-types": "git://github.com/jantuomi/slam-types.git#441a72c", + "slam-types": "git://github.com/jantuomi/slam-types.git#9de4a1e", "typescript": "^4.4.4", "vite": "^2.7.2", "vitest": "0.2.7" } -} +} \ No newline at end of file diff --git a/src/Editor.tsx b/src/Editor.tsx index 8cf6901..f549fc8 100644 --- a/src/Editor.tsx +++ b/src/Editor.tsx @@ -87,7 +87,10 @@ const Editor = () => { ) case "success": { - const text = `Output:\n${result.data}` + const apiTimeMillis = (result.data.apiTime / 1000).toFixed(1) + const executionTimeMillis = (result.data.executionTime / 1000).toFixed(1) + const roundtripTime = (result.data.roundtripTime).toFixed(1) + const text = `Output:\n${result.data.result}\nTotal roundtrip time: ${roundtripTime} ms\nServer processing time: ${apiTimeMillis} ms\nExecution time: ${executionTimeMillis} ms` return ( mapSWRResult - -const postSource = async (text: string): Promise => { - const apiResult = await postRequest( - { - baseUrl: RUNNER_API_URL, - path: RunnerApi.SubmitRequest.path, - body: { - source: text, - }, - }, - ) - - switch (apiResult.type) { - case "success": - return { type: "success", data: apiResult.data.result } - case "failed": - return { type: "failed", error: apiResult.error } - case "not_yet_requested": - case "loading": - return apiResult - } -} +export type SubmitResult = APIResult export const useSubmitSource = () => { const [result, setResult] = useState({ type: "not_yet_requested" }) const submitSource = async (text: string) => { try { + const startRoundtripTime = performance.now() setResult({ type: "loading" }) const apiResult = await postRequest( { @@ -115,10 +94,13 @@ export const useSubmitSource = () => { }, }, ) + const endRoundtripTime = performance.now() + const roundtripTime = endRoundtripTime - startRoundtripTime switch (apiResult.type) { case "success": - setResult({ type: "success", data: apiResult.data.result }) + setResult({ type: "success", data: { ...apiResult.data, roundtripTime }}) break + case "failed": setResult({ type: "failed", error: apiResult.error }) break -- cgit v1.3