From c68561d87dc3f8d703e8a2ddd6846d9a7c6ee2d6 Mon Sep 17 00:00:00 2001 From: "ben.nadler" Date: Mon, 12 Aug 2024 10:13:01 +0300 Subject: [PATCH 1/3] add performance --- TypeScript/app/gilded-rose.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/TypeScript/app/gilded-rose.ts b/TypeScript/app/gilded-rose.ts index db58d678..78161bef 100644 --- a/TypeScript/app/gilded-rose.ts +++ b/TypeScript/app/gilded-rose.ts @@ -67,3 +67,17 @@ export class GildedRose { return this.items; } } + +const startTime = performance.now(); + +// Call the function +const gildedRose = new GildedRose([]); +gildedRose.updateQuality(); + +// Record end time +const endTime = performance.now(); + +// Calculate the time difference +const timeTaken = endTime - startTime; + +console.log(`myFunction took ${timeTaken.toFixed(2)} ms to execute.`); From 6c0519bd36677d35d1d2c4d0731e43cb717d56ee Mon Sep 17 00:00:00 2001 From: "ben.nadler" Date: Tue, 13 Aug 2024 11:42:33 +0300 Subject: [PATCH 2/3] add performance measures --- TypeScript/app/gilded-rose.ts | 14 -------------- TypeScript/test/jest/gilded-rose.spec.ts | 6 +++++- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/TypeScript/app/gilded-rose.ts b/TypeScript/app/gilded-rose.ts index 78161bef..db58d678 100644 --- a/TypeScript/app/gilded-rose.ts +++ b/TypeScript/app/gilded-rose.ts @@ -67,17 +67,3 @@ export class GildedRose { return this.items; } } - -const startTime = performance.now(); - -// Call the function -const gildedRose = new GildedRose([]); -gildedRose.updateQuality(); - -// Record end time -const endTime = performance.now(); - -// Calculate the time difference -const timeTaken = endTime - startTime; - -console.log(`myFunction took ${timeTaken.toFixed(2)} ms to execute.`); diff --git a/TypeScript/test/jest/gilded-rose.spec.ts b/TypeScript/test/jest/gilded-rose.spec.ts index 65330750..4765d926 100644 --- a/TypeScript/test/jest/gilded-rose.spec.ts +++ b/TypeScript/test/jest/gilded-rose.spec.ts @@ -3,7 +3,11 @@ import { Item, GildedRose } from '@/gilded-rose'; describe('Gilded Rose', () => { it('should foo', () => { const gildedRose = new GildedRose([new Item('foo', 0, 0)]); + const startTime = performance.now(); const items = gildedRose.updateQuality(); - expect(items[0].name).toBe('fixme'); + const endTime = performance.now(); + + console.log('Execution time: ' + (endTime - startTime) + 'ms'); + expect(items[0].name).toBe('foo'); }); }); From 19156d11def08557847fc7202e66647b408d4a24 Mon Sep 17 00:00:00 2001 From: "ben.nadler" Date: Tue, 13 Aug 2024 11:49:58 +0300 Subject: [PATCH 3/3] add performance measures --- TypeScript/test/jest/gilded-rose.spec.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/TypeScript/test/jest/gilded-rose.spec.ts b/TypeScript/test/jest/gilded-rose.spec.ts index 4765d926..7eff30d1 100644 --- a/TypeScript/test/jest/gilded-rose.spec.ts +++ b/TypeScript/test/jest/gilded-rose.spec.ts @@ -3,11 +3,21 @@ import { Item, GildedRose } from '@/gilded-rose'; describe('Gilded Rose', () => { it('should foo', () => { const gildedRose = new GildedRose([new Item('foo', 0, 0)]); - const startTime = performance.now(); - const items = gildedRose.updateQuality(); - const endTime = performance.now(); + const execTimes: number[] = []; + for (let i = 0; i < 100; i++) { + const startTime = performance.now(); + const items = gildedRose.updateQuality(); + const endTime = performance.now(); - console.log('Execution time: ' + (endTime - startTime) + 'ms'); - expect(items[0].name).toBe('foo'); + const execTime = endTime - startTime; + execTimes.push(execTime); + + console.log('Execution time: ' + (execTime) + 'ms'); + expect(items[0].name).toBe('foo'); + } + + const avgExecTime = execTimes.reduce((acc, curr) => acc + curr, 0) / execTimes.length; + console.log('Average execution time: ' + avgExecTime + 'ms'); }); }); +