Improve chart performance (#7360)
* wip * wip * wip * wip * wip * Update chart.ts * wip * Improve server performance * wip * wip
This commit is contained in:
		
							parent
							
								
									0d19c2d42e
								
							
						
					
					
						commit
						4f249159d3
					
				
					 32 changed files with 889 additions and 161 deletions
				
			
		|  | @ -72,7 +72,7 @@ describe('Chart', () => { | |||
| 		testUniqueChart = new TestUniqueChart(); | ||||
| 
 | ||||
| 		clock = lolex.install({ | ||||
| 			now: new Date('2000-01-01 00:00:00') | ||||
| 			now: new Date(Date.UTC(2000, 0, 1, 0, 0, 0)) | ||||
| 		}); | ||||
| 		done(); | ||||
| 	}); | ||||
|  | @ -85,6 +85,7 @@ describe('Chart', () => { | |||
| 
 | ||||
| 	it('Can updates', async(async () => { | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		const chartHours = await testChart.getChart('hour', 3, null); | ||||
| 		const chartDays = await testChart.getChart('day', 3, null); | ||||
|  | @ -105,9 +106,10 @@ describe('Chart', () => { | |||
| 			}, | ||||
| 		}); | ||||
| 	})); | ||||
| 	 | ||||
| 
 | ||||
| 	it('Can updates (dec)', async(async () => { | ||||
| 		await testChart.decrement(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		const chartHours = await testChart.getChart('hour', 3, null); | ||||
| 		const chartDays = await testChart.getChart('day', 3, null); | ||||
|  | @ -154,6 +156,7 @@ describe('Chart', () => { | |||
| 		await testChart.increment(); | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		const chartHours = await testChart.getChart('hour', 3, null); | ||||
| 		const chartDays = await testChart.getChart('day', 3, null); | ||||
|  | @ -177,10 +180,12 @@ describe('Chart', () => { | |||
| 
 | ||||
| 	it('Can updates at different times', async(async () => { | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		clock.tick('01:00:00'); | ||||
| 
 | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		const chartHours = await testChart.getChart('hour', 3, null); | ||||
| 		const chartDays = await testChart.getChart('day', 3, null); | ||||
|  | @ -202,12 +207,45 @@ describe('Chart', () => { | |||
| 		}); | ||||
| 	})); | ||||
| 
 | ||||
| 	// 仕様上はこうなってほしいけど、実装は難しそうなのでskip
 | ||||
| 	/* | ||||
| 	it('Can updates at different times without save', async(async () => { | ||||
| 		await testChart.increment(); | ||||
| 
 | ||||
| 		clock.tick('01:00:00'); | ||||
| 
 | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		const chartHours = await testChart.getChart('hour', 3, null); | ||||
| 		const chartDays = await testChart.getChart('day', 3, null); | ||||
| 
 | ||||
| 		assert.deepStrictEqual(chartHours, { | ||||
| 			foo: { | ||||
| 				dec: [0, 0, 0], | ||||
| 				inc: [1, 1, 0], | ||||
| 				total: [2, 1, 0] | ||||
| 			}, | ||||
| 		}); | ||||
| 
 | ||||
| 		assert.deepStrictEqual(chartDays, { | ||||
| 			foo: { | ||||
| 				dec: [0, 0, 0], | ||||
| 				inc: [2, 0, 0], | ||||
| 				total: [2, 0, 0] | ||||
| 			}, | ||||
| 		}); | ||||
| 	})); | ||||
| 	*/ | ||||
| 
 | ||||
| 	it('Can padding', async(async () => { | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		clock.tick('02:00:00'); | ||||
| 
 | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		const chartHours = await testChart.getChart('hour', 3, null); | ||||
| 		const chartDays = await testChart.getChart('day', 3, null); | ||||
|  | @ -232,6 +270,7 @@ describe('Chart', () => { | |||
| 	// 要求された範囲にログがひとつもない場合でもパディングできる
 | ||||
| 	it('Can padding from past range', async(async () => { | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		clock.tick('05:00:00'); | ||||
| 
 | ||||
|  | @ -259,8 +298,12 @@ describe('Chart', () => { | |||
| 	// Issue #3190
 | ||||
| 	it('Can padding from past range 2', async(async () => { | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		clock.tick('05:00:00'); | ||||
| 
 | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		const chartHours = await testChart.getChart('hour', 3, null); | ||||
| 		const chartDays = await testChart.getChart('day', 3, null); | ||||
|  | @ -284,10 +327,12 @@ describe('Chart', () => { | |||
| 
 | ||||
| 	it('Can specify offset', async(async () => { | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		clock.tick('01:00:00'); | ||||
| 
 | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		const chartHours = await testChart.getChart('hour', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); | ||||
| 		const chartDays = await testChart.getChart('day', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); | ||||
|  | @ -313,10 +358,12 @@ describe('Chart', () => { | |||
| 		clock.tick('00:30:00'); | ||||
| 
 | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		clock.tick('01:30:00'); | ||||
| 
 | ||||
| 		await testChart.increment(); | ||||
| 		await testChart.save(); | ||||
| 
 | ||||
| 		const chartHours = await testChart.getChart('hour', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); | ||||
| 		const chartDays = await testChart.getChart('day', 3, new Date(Date.UTC(2000, 0, 1, 0, 0, 0))); | ||||
|  | @ -341,6 +388,7 @@ describe('Chart', () => { | |||
| 	describe('Grouped', () => { | ||||
| 		it('Can updates', async(async () => { | ||||
| 			await testGroupedChart.increment('alice'); | ||||
| 			await testGroupedChart.save(); | ||||
| 
 | ||||
| 			const aliceChartHours = await testGroupedChart.getChart('hour', 3, null, 'alice'); | ||||
| 			const aliceChartDays = await testGroupedChart.getChart('day', 3, null, 'alice'); | ||||
|  | @ -386,6 +434,7 @@ describe('Chart', () => { | |||
| 			await testUniqueChart.uniqueIncrement('alice'); | ||||
| 			await testUniqueChart.uniqueIncrement('alice'); | ||||
| 			await testUniqueChart.uniqueIncrement('bob'); | ||||
| 			await testUniqueChart.save(); | ||||
| 
 | ||||
| 			const chartHours = await testUniqueChart.getChart('hour', 3, null); | ||||
| 			const chartDays = await testUniqueChart.getChart('day', 3, null); | ||||
|  | @ -428,6 +477,7 @@ describe('Chart', () => { | |||
| 
 | ||||
| 		it('Can resync (2)', async(async () => { | ||||
| 			await testChart.increment(); | ||||
| 			await testChart.save(); | ||||
| 
 | ||||
| 			clock.tick('01:00:00'); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue