From b312279e58e51520a38e51cca317a09cdadd7cb4 Mon Sep 17 00:00:00 2001 From: Satya Rohith Date: Wed, 28 Sep 2022 17:41:12 +0530 Subject: feat: implement Web Cache API (#15829) --- cli/bench/cache_api.js | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 cli/bench/cache_api.js (limited to 'cli/bench/cache_api.js') diff --git a/cli/bench/cache_api.js b/cli/bench/cache_api.js new file mode 100644 index 000000000..3e059e80a --- /dev/null +++ b/cli/bench/cache_api.js @@ -0,0 +1,56 @@ +// Copyright 2018-2022 the Deno authors. All rights reserved. MIT license. + +const cacheName = "cache-v1"; +const cache = await caches.open(cacheName); +const req = "https://deno.com"; + +Deno.bench( + `cache_storage_open`, + async () => { + await caches.open("cache-v2"); + }, +); + +Deno.bench( + `cache_storage_has`, + async () => { + await caches.has("cache-v2"); + }, +); + +Deno.bench( + `cache_storage_delete`, + async () => { + await caches.delete("cache-v2"); + }, +); + +// 100 bytes. +const loremIpsum = + `Lorem ipsum dolor sit amet, consectetur adipiscing…es ligula in libero. Sed dignissim lacinia nunc. `; +let body; +for (let index = 1; index <= 110; index++) { + body += loremIpsum; +} + +Deno.bench( + `cache_put_body_${Math.floor(body.length / 1024)}_KiB`, + async () => { + await cache.put(req, new Response(body)); + }, +); + +Deno.bench("cache_put_no_body", async () => { + await cache.put( + "https://deno.land/redirect", + Response.redirect("https://deno.com"), + ); +}); + +Deno.bench("cache_match", async () => { + await cache.match(req); +}); + +Deno.bench("cache_delete", async () => { + await cache.delete(req); +}); -- cgit v1.2.3