Benchmark Analyzer & Guide

Visualize Your Bombardier Results

Upload Your Results

Generate a `benchmark_results.json` file using the script below, then upload it here to dynamically visualize your server performance.

Upload a results file to see the benchmark visualizations.

How to Generate Your Own Results

Step 1: Install Bombardier

The recommended way to install Bombardier on macOS is with Homebrew.

brew install bombardier

You can install Bombardier using Homebrew on Linux or directly with Go.

Option 1: Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install bombardier

Option 2: Go

go install github.com/codesenberg/bombardier@latest

For Windows, you can use package managers like Scoop or Chocolatey.

Option 1: Scoop

scoop install bombardier

Option 2: Chocolatey

choco install bombardier

Step 2: Create Server Files

`ue.js`

import uexpress from 'ultimate-express';

const app = uexpress();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello from Ultimate Express!');
});

app.get('/user/:id', (req, res) => {
  const { id } = req.params;
  res.send(`User ID: ${id}`);
});

app.post('/data', (req, res) => {
  res.json({ message: 'Data received!' });
});

app.listen(port, () => {
  console.log(`Ultimate Express server running at http://localhost:${port}`);
});

`bun.js`

const port = 3001;

console.log(`Bun server running at http://localhost:${port}`);

Bun.serve({
  port,
  static: {
    '/': {
      GET: new Response('Hello from Bun!'),
    },
    '/data': {
      POST: Response.json({ message: 'Data received!' }),
    }
  },
  fetch(req) {
    const url = new URL(req.url);

    const userRouteMatch = url.pathname.match(/^\/user\/(\w+)$/);
    if (userRouteMatch && req.method === 'GET') {
      const id = userRouteMatch[1];
      return new Response(`User ID: ${id}`);
    }

    return new Response('Not Found', { status: 404 });
  },
});

Step 3: Run the Unified Test Script

This is an example script. Run it to test both servers and save the results. You can add more `bombardier` commands to this script to test your own custom routes.

# Create or clear the results file
> benchmark_results.json

# --- Example Test for ultimate-express ---
echo "Starting ultimate-express server..."
node ue.js &
UE_PID=$!
sleep 1

echo "Benchmarking ultimate-express..."
bombardier --format json http://localhost:3000/ >> benchmark_results.json
# Add more tests for ue.js here

echo "Stopping ultimate-express server..."
kill $UE_PID

# --- Example Test for Bun.serve ---
echo "Starting Bun.serve server..."
bun run bun.js &
BUN_PID=$!
sleep 1

echo "Benchmarking Bun.serve..."
bombardier --format json http://localhost:3001/ >> benchmark_results.json
# Add more tests for bun.js here

echo "Stopping Bun.serve server..."
kill $BUN_PID

echo "✅ Example benchmark complete. Results saved to benchmark_results.json"