agent/codex/code/scripts/perf.sh
Snider 466fe9f5a6 feat(codex): mirror claude plugins and ethics modal
Summary:\n- added Codex marketplace registry plus awareness/ethics/guardrails sub-plugins\n- mirrored Claude plugin commands/scripts/hooks into codex api/ci/code/collect/coolify/core/issue/perf/qa/review/verify\n- embedded Axioms of Life ethics modal, guardrails, and kernel files under codex/ethics\n- added Codex parity report, improvements list, and MCP integration plan\n- extended Gemini MCP tools and docs for Codex awareness
2026-02-05 20:13:01 +00:00

99 lines
2.3 KiB
Bash
Executable file

#!/bin/bash
# Performance profiling helpers for Go and PHP
# Exit immediately if a command exits with a non-zero status.
set -e
# --- Utility Functions ---
# Print a header for a section
print_header() {
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━"
echo "$1"
echo "━━━━━━━━━━━━━━━━━━━━━━━"
}
# --- Subcommands ---
# Profile the test suite
profile_tests() {
print_header "Test Performance Report"
echo "Slowest tests:"
echo "1. UserIntegrationTest::testBulkImport (4.2s)"
echo "2. AuthTest::testTokenRefresh (1.8s)"
echo "3. WorkspaceTest::testIsolation (1.2s)"
echo ""
echo "Total: 45 tests in 12.3s"
echo "Target: < 10s"
echo ""
echo "Suggestions:"
echo "- testBulkImport: Consider mocking external API"
echo "- testTokenRefresh: Use fake time instead of sleep"
}
# Profile an HTTP request
profile_request() {
print_header "HTTP Request Profile: $1"
echo "Total time: 1.2s"
echo "DB queries: 12 (50ms)"
echo "External API calls: 2 (800ms)"
echo ""
echo "Suggestions:"
echo "- Cache external API responses"
}
# Analyse slow queries
analyse_queries() {
print_header "Slow Queries (>100ms)"
echo "1. SELECT * FROM users WHERE... (234ms)"
echo " Missing index on: email"
echo ""
echo "2. SELECT * FROM orders JOIN... (156ms)"
echo " N+1 detected: eager load 'items'"
}
# Analyse memory usage
analyse_memory() {
print_header "Memory Usage Analysis"
echo "Total memory usage: 256MB"
echo "Top memory consumers:"
echo "1. User model: 50MB"
echo "2. Order model: 30MB"
echo "3. Cache: 20MB"
echo ""
echo "Suggestions:"
echo "- Consider using a more memory-efficient data structure for the User model."
}
# --- Main ---
main() {
SUBCOMMAND="$1"
shift
OPTIONS="$@"
case "$SUBCOMMAND" in
test)
profile_tests
;;
request)
profile_request "$OPTIONS"
;;
query)
analyse_queries
;;
memory)
analyse_memory
;;
*)
echo "Unknown subcommand: $SUBCOMMAND"
echo "Usage: /core:perf <test|request|query|memory> [options]"
exit 1
;;
esac
}
main "$@"