@@ -26,10 +26,9 @@ const state = {
2626 isPaused : false ,
2727 pauseCallbacks : [ ] ,
2828 requestsCompleted : 0 ,
29- startTime : Date . now ( ) ,
30- statsResetInterval : null ,
31- pausedAt : null ,
32- pausedDuration : 0
29+ requestsInLastSecond : 0 ,
30+ requestsPerSecond : 0 ,
31+ requestCounterInterval : null
3332}
3433
3534// Extract destructured state for cleaner code
@@ -179,18 +178,15 @@ function handleTestResult(item, result) {
179178 // Check if warm-up is complete
180179 if ( state . warmupProgress . completed >= state . warmupProgress . total ) {
181180 state . warmupProgress . isWarmupPhase = false
182- // Reset start time and counter when warmup completes
183- state . startTime = Date . now ( )
184- state . requestsCompleted = 0
185181
186- // Start periodic stats reset (every 60 seconds)
187- if ( state . statsResetInterval ) {
188- clearInterval ( state . statsResetInterval )
182+ // Start 1-second interval to track requests per second
183+ if ( state . requestCounterInterval ) {
184+ clearInterval ( state . requestCounterInterval )
189185 }
190- state . statsResetInterval = setInterval ( ( ) => {
191- state . requestsCompleted = 0
192- state . startTime = Date . now ( )
193- } , 60000 )
186+ state . requestCounterInterval = setInterval ( ( ) => {
187+ state . requestsPerSecond = state . requestsInLastSecond
188+ state . requestsInLastSecond = 0
189+ } , 1000 )
194190
195191 progressCallbacks . forEach ( callback => {
196192 try {
@@ -211,7 +207,7 @@ function handleTestResult(item, result) {
211207 }
212208
213209 // Increment request counter (after warm-up)
214- state . requestsCompleted ++
210+ state . requestsInLastSecond ++
215211
216212 // Notify all callbacks with the result
217213 callbacks . forEach ( callback => {
@@ -274,6 +270,16 @@ function handleFailedResult(item, result, callRecord) {
274270 // Check if warm-up is complete
275271 if ( state . warmupProgress . completed >= state . warmupProgress . total ) {
276272 state . warmupProgress . isWarmupPhase = false
273+
274+ // Start 1-second interval to track requests per second
275+ if ( state . requestCounterInterval ) {
276+ clearInterval ( state . requestCounterInterval )
277+ }
278+ state . requestCounterInterval = setInterval ( ( ) => {
279+ state . requestsPerSecond = state . requestsInLastSecond
280+ state . requestsInLastSecond = 0
281+ } , 1000 )
282+
277283 progressCallbacks . forEach ( callback => {
278284 try {
279285 callback ( {
@@ -293,7 +299,7 @@ function handleFailedResult(item, result, callRecord) {
293299 }
294300
295301 // Increment request counter (after warm-up) for failed requests too
296- state . requestsCompleted ++
302+ state . requestsInLastSecond ++
297303
298304 callbacks . forEach ( callback => {
299305 try {
@@ -406,25 +412,13 @@ export const retry = (domain) => {
406412 * Get current statistics
407413 */
408414export const getStats = ( ) => {
409- let elapsed = ( Date . now ( ) - state . startTime ) / 1000 // seconds
410-
411- // If paused, subtract the paused duration from elapsed time
412- if ( state . isPaused && state . pausedAt ) {
413- elapsed -= ( Date . now ( ) - state . pausedAt ) / 1000
414- } else if ( state . pausedDuration > 0 ) {
415- elapsed -= state . pausedDuration / 1000
416- }
417-
418- const requestsPerSecond = elapsed > 0 ? state . requestsCompleted / elapsed : 0
419-
420415 return {
421416 totalDomains : getLocations ( ) . length ,
422417 blockedDomains : blockList . size ,
423418 activeDomains : getLocations ( ) . length - blockList . size ,
424419 queueLength : queue . length ,
425420 activeRequests : Object . keys ( callRecords ) . length ,
426- requestsCompleted : state . requestsCompleted ,
427- requestsPerSecond : requestsPerSecond
421+ requestsPerSecond : state . requestsPerSecond
428422 }
429423}
430424
@@ -433,7 +427,6 @@ export const getStats = () => {
433427 */
434428export const pause = ( ) => {
435429 state . isPaused = true
436- state . pausedAt = Date . now ( )
437430
438431 pauseCallbacks . forEach ( callback => {
439432 try {
@@ -448,12 +441,6 @@ export const pause = () => {
448441 * Resume all speed test requests
449442 */
450443export const resume = ( ) => {
451- // Track paused duration
452- if ( state . pausedAt ) {
453- state . pausedDuration += Date . now ( ) - state . pausedAt
454- state . pausedAt = null
455- }
456-
457444 state . isPaused = false
458445
459446 // Clear any stale call records from before pause
0 commit comments