Initial commit
This commit is contained in:
60
hooks/utils/test-performance.sh
Executable file
60
hooks/utils/test-performance.sh
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
source utils/skill-matcher.sh
|
||||
|
||||
echo "=== Performance Tests ==="
|
||||
echo ""
|
||||
|
||||
# Test 1: match_keywords performance (<50ms)
|
||||
echo "Test 1: match_keywords performance"
|
||||
prompt="I want to write a test for the login function"
|
||||
keywords="test,testing,TDD,spec,unit test"
|
||||
|
||||
start=$(date +%s%N)
|
||||
for i in {1..10}; do
|
||||
match_keywords "$prompt" "$keywords" >/dev/null
|
||||
done
|
||||
end=$(date +%s%N)
|
||||
|
||||
duration_ns=$((end - start))
|
||||
duration_ms=$((duration_ns / 1000000 / 10))
|
||||
|
||||
echo " Duration: ${duration_ms}ms (target: <50ms)"
|
||||
if [ $duration_ms -lt 50 ]; then
|
||||
echo " ✓ PASS"
|
||||
else
|
||||
echo " ✗ FAIL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# Test 2: find_matching_skills performance (<1000ms acceptable for 113 patterns)
|
||||
echo "Test 2: find_matching_skills performance"
|
||||
prompt="I want to implement a new feature with TDD"
|
||||
rules_path="skill-rules.json"
|
||||
|
||||
start=$(date +%s%N)
|
||||
result=$(find_matching_skills "$prompt" "$rules_path" 3)
|
||||
end=$(date +%s%N)
|
||||
|
||||
duration_ns=$((end - start))
|
||||
duration_ms=$((duration_ns / 1000000))
|
||||
|
||||
echo " Duration: ${duration_ms}ms (target: <1000ms for 19 skills, 113 patterns)"
|
||||
echo " Matches found: $(echo "$result" | jq 'length')"
|
||||
if [ $duration_ms -lt 1000 ]; then
|
||||
echo " ✓ PASS"
|
||||
else
|
||||
echo " ✗ FAIL - Performance degradation detected"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Note: 113 regex patterns × 19 skills with bash regex matching
|
||||
# Typical user prompts are 10-50 words, matching completes in <600ms
|
||||
# This is acceptable for a user-prompt-submit hook (runs once per prompt)
|
||||
|
||||
echo ""
|
||||
echo "=== All Performance Tests Passed ==="
|
||||
Reference in New Issue
Block a user