feat(performance): add compact formatting for latency and throughput metrics
This commit is contained in:
@@ -19,11 +19,7 @@ For commercial licensing, please contact support@quantumnous.com
|
||||
import { memo } from 'react'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { cn } from '@/lib/utils'
|
||||
import {
|
||||
formatLatency,
|
||||
formatThroughput,
|
||||
getSuccessRateDotClass,
|
||||
} from '@/features/performance-metrics/lib/format'
|
||||
import { getSuccessRateDotClass } from '@/features/performance-metrics/lib/format'
|
||||
|
||||
export type ModelPerfBadgeData = {
|
||||
avg_latency_ms: number
|
||||
@@ -36,8 +32,21 @@ export interface ModelPerfBadgeProps extends React.HTMLAttributes<HTMLDivElement
|
||||
perf: ModelPerfBadgeData | undefined
|
||||
}
|
||||
|
||||
function formatCompactNumber(value: number): string {
|
||||
if (!Number.isFinite(value) || value <= 0) return '—'
|
||||
return value > 1 ? String(Math.round(value)) : value.toFixed(1)
|
||||
}
|
||||
|
||||
function formatCompactLatency(ms: number): string {
|
||||
if (!Number.isFinite(ms) || ms <= 0) return '—'
|
||||
if (ms >= 1_000) return `${formatCompactNumber(ms / 1_000)}s`
|
||||
return `${formatCompactNumber(ms)}ms`
|
||||
}
|
||||
|
||||
function formatCompactThroughput(tps: number): string {
|
||||
return formatThroughput(tps).replace(' t/s', 'tps')
|
||||
if (!Number.isFinite(tps) || tps <= 0) return '—'
|
||||
if (tps >= 1_000) return `${formatCompactNumber(tps / 1_000)}Ktps`
|
||||
return `${formatCompactNumber(tps)}tps`
|
||||
}
|
||||
|
||||
export const ModelPerfBadge = memo(function ModelPerfBadge(
|
||||
@@ -73,7 +82,7 @@ export const ModelPerfBadge = memo(function ModelPerfBadge(
|
||||
{t('Latency short')}
|
||||
</div>
|
||||
<div className='text-muted-foreground/80 font-mono text-xs leading-4 whitespace-nowrap'>
|
||||
{avg_latency_ms > 0 ? formatLatency(avg_latency_ms) : '—'}
|
||||
{formatCompactLatency(avg_latency_ms)}
|
||||
</div>
|
||||
</div>
|
||||
<div title={t('Throughput')} className='min-w-0'>
|
||||
|
||||
Reference in New Issue
Block a user