mirror: A tiny/fast dataloader implementation
0

Configure Feed

Select the types of activity you want to include in your feed.

chore: basic benchmarks back

Marais Rossouw (Sep 4, 2024, 3:35 PM +1000) bf17e372 acac58c3

+45
+23
lib/cache.bench.ts
··· 1 + import DataLoader from 'npm:dataloader'; 2 + 3 + import type { LoadFn } from './mod.ts'; 4 + import * as dldr from './cache.ts'; 5 + 6 + const loadFn: LoadFn<any, string> = async (keys: string[]) => Promise.resolve(keys); 7 + const keys = ['a', 'b', 'c', 'a']; 8 + 9 + Deno.bench({ 10 + name: 'dldr', 11 + baseline: true, 12 + async fn() { 13 + let _ = await Promise.all(keys.map((key) => dldr.load(loadFn, undefined, key))); 14 + }, 15 + }); 16 + 17 + Deno.bench({ 18 + name: 'dataloader', 19 + async fn() { 20 + const loader = new DataLoader(loadFn as any, { cache: true }); 21 + let _ = await loader.loadMany(keys); 22 + }, 23 + });
+22
lib/mod.bench.ts
··· 1 + import DataLoader from 'npm:dataloader'; 2 + 3 + import * as dldr from './mod.ts'; 4 + 5 + const loadFn: dldr.LoadFn<any, string> = async (keys: string[]) => Promise.resolve(keys); 6 + const keys = ['a', 'b', 'c', 'a']; 7 + 8 + Deno.bench({ 9 + name: 'dldr', 10 + baseline: true, 11 + async fn() { 12 + let _ = await Promise.all(keys.map((key) => dldr.load(loadFn, key))); 13 + }, 14 + }); 15 + 16 + Deno.bench({ 17 + name: 'dataloader', 18 + async fn() { 19 + const loader = new DataLoader(loadFn as any, { cache: false }); 20 + let _ = await loader.loadMany(keys); 21 + }, 22 + });