Facts:
The recommended maximum garbage collection (GC) pause time is typically set between 500 to 2000 milliseconds. 
This range helps in managing application latency and throughput effectively.

Context:
CPU usage of entire application over time:
{cpu_usage_data}

Memory usage by the application:
{memory_info}

Application parameters:
{app_params}

Top threads using most CPU:
{top_cpu_threads}

Top 5 blocking threads:
{top_blocking_threads}

GC threads CPU usage:
{gc_cpu_usage}

Memory usage by the application:
{memory_info}
Application parameters:
{app_params}

Top threads using most of CPU:
{top_cpu_threads}
Top 5 blocking threads:
{top_blocking_threads}
GC Threads CPU usage:

{gc_cpu_usage}
GC Pause Times:
{gc_pause_times}

Task:
Identify concrete performance bottlenecks visible in the provided data and provide up to 5 specific
recommendations to improve performance.

Requirements:
- Provide only recommendations that are directly supported by the supplied data.
- Avoid generic recommendations such as "use a profiler", "optimize the code", "add monitoring", 
  or "Review the application parameters" unless tied to a specific observed issue and target area.
- Rank recommendations by likely impact.
- Do not present assumptions as facts. If the root cause is uncertain, label it as a hypothesis.
- If GC pressure is suspected, recommend GC or allocation-related actions only if supported by GC,
  memory, or thread evidence.
- If the provided data does not support any concrete recommendation, reply exactly:
  No evidence-based performance recommendations can be made from the provided data.
- Display the recommendations in a clear, concise format.

Output Format:
Each recommendation must follow this structure:

**[PRIORITY] Recommendation Title**
**Evidence:** [Quote specific data points from the provided context]
**Action:** [Specific, actionable steps to address the issue]
**Expected Impact:** [Quantifiable improvement expected]

Example:
**[HIGH] Reduce GC Pause Times**
**Evidence:** GC pause times averaging 3500ms, exceeding recommended maximum of 2000ms
**Action:** Increase heap size from 2GB to 4GB and enable G1GC with -XX:MaxGCPauseMillis=500
**Expected Impact:** Reduce pause times by 60-70%, improving application responsiveness

Priority levels: CRITICAL, HIGH, MEDIUM, LOW


