Skip to main content
Glama
benchmark.py2.86 kB
#!/usr/bin/env python3 """ Performance benchmark for OpenRouter MCP Server """ import asyncio import time from src.openrouter_mcp.models.cache import ModelCache async def performance_benchmark(): print('OpenRouter MCP Server - Performance Benchmark') print('=' * 50) cache = ModelCache(ttl_hours=1) # Test 1: Cold start (API + Enhancement) print('Test 1: Cold Start Performance') start = time.time() models = await cache.get_models(force_refresh=True) cold_time = time.time() - start print(f' API fetch + enhancement: {cold_time:.2f}s') print(f' Models loaded: {len(models)}') print(f' Average per model: {(cold_time/len(models)*1000):.1f}ms') # Test 2: Memory cache performance print('\nTest 2: Memory Cache Performance') start = time.time() models = await cache.get_models() warm_time = time.time() - start print(f' Memory cache access: {warm_time*1000:.1f}ms') print(f' Speedup: {cold_time/warm_time:.0f}x faster') # Test 3: Filtering performance print('\nTest 3: Filtering Performance') filters = [ ('Provider filter', {'provider': 'openai'}), ('Category filter', {'category': 'chat'}), ('Capability filter', {'capabilities': {'supports_vision': True}}), ('Complex filter', {'provider': 'openai', 'performance_tier': 'premium', 'min_quality_score': 8.0}), ] for name, kwargs in filters: start = time.time() results = cache.filter_models_by_metadata(**kwargs) filter_time = time.time() - start print(f' {name}: {filter_time*1000:.1f}ms ({len(results)} results)') # Test 4: Statistics performance print('\nTest 4: Statistics Performance') start = time.time() stats = cache.get_cache_stats() stats_time = time.time() - start print(f' Cache stats: {stats_time*1000:.1f}ms') print(f' Total providers: {len(stats["providers"])}') print(f' Vision models: {stats["vision_capable_count"]}') print(f' Cache size: {stats["cache_size_mb"]:.2f} MB') # Test 5: Metadata quality analysis print('\nTest 5: Metadata Quality Analysis') quality_scores = [m['quality_score'] for m in models] avg_quality = sum(quality_scores) / len(quality_scores) max_quality = max(quality_scores) tiers = cache.get_models_by_performance_tier() print(f' Average quality score: {avg_quality:.1f}/10') print(f' Maximum quality score: {max_quality:.1f}/10') print(f' Premium models: {len(tiers["premium"])}') print(f' Standard models: {len(tiers["standard"])}') print(f' Economy models: {len(tiers["economy"])}') print('\nAll performance benchmarks completed successfully!') print('=' * 50) if __name__ == "__main__": asyncio.run(performance_benchmark())

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/physics91/openrouter-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server