Skip to main content
Glama

Claude Context

by zilliztech
build-benchmark.jsβ€’2.93 kB
#!/usr/bin/env node /** * Build performance benchmarking script * Measures and reports build times for all packages */ const { execSync } = require('child_process'); const fs = require('fs'); const path = require('path'); const BENCHMARK_FILE = 'build-benchmark.json'; function measureBuildTime(command, description) { console.log(`\nπŸ”„ ${description}...`); const startTime = Date.now(); try { execSync(command, { stdio: 'inherit' }); const endTime = Date.now(); const duration = endTime - startTime; console.log(`βœ… ${description} completed in ${duration}ms`); return { success: true, duration, command, description }; } catch (error) { const endTime = Date.now(); const duration = endTime - startTime; console.error(`❌ ${description} failed after ${duration}ms`); return { success: false, duration, command, description, error: error.message }; } } function saveBenchmark(results) { const benchmark = { timestamp: new Date().toISOString(), platform: process.platform, nodeVersion: process.version, results }; let history = []; if (fs.existsSync(BENCHMARK_FILE)) { try { history = JSON.parse(fs.readFileSync(BENCHMARK_FILE, 'utf8')); } catch (e) { console.warn('Could not read existing benchmark file'); } } history.push(benchmark); // Keep only last 10 benchmarks if (history.length > 10) { history = history.slice(-10); } fs.writeFileSync(BENCHMARK_FILE, JSON.stringify(history, null, 2)); console.log(`\nπŸ“Š Benchmark saved to ${BENCHMARK_FILE}`); } function main() { console.log('πŸš€ Starting build performance benchmark...'); const results = []; // Clean first results.push(measureBuildTime('pnpm clean', 'Clean all packages')); // Build individual packages results.push(measureBuildTime('pnpm build:core', 'Build core package')); results.push(measureBuildTime('pnpm build:mcp', 'Build MCP package')); results.push(measureBuildTime('pnpm build:vscode', 'Build VSCode extension')); // Full build results.push(measureBuildTime('pnpm -r --filter="./packages/chrome-extension" build', 'Build Chrome extension')); const totalTime = results.reduce((sum, result) => sum + result.duration, 0); const successCount = results.filter(r => r.success).length; console.log(`\nπŸ“ˆ Benchmark Summary:`); console.log(` Total time: ${totalTime}ms`); console.log(` Successful builds: ${successCount}/${results.length}`); console.log(` Platform: ${process.platform}`); console.log(` Node version: ${process.version}`); saveBenchmark(results); } if (require.main === module) { main(); } module.exports = { measureBuildTime, saveBenchmark };

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/zilliztech/claude-context'

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