Skip to content

Latest commit

 

History

History
136 lines (99 loc) · 4.13 KB

README.md

File metadata and controls

136 lines (99 loc) · 4.13 KB

Java Code Performance Analyzer Tool

A sophisticated desktop application that analyzes Java code performance metrics, including execution time, memory usage, and algorithmic complexity. Features automated test data generation with customizable input sizes up to 100,000 elements, eliminating the need for manual test data creation.

Features

  • Real-time Code Analysis: Analyze Java code performance with detailed metrics
  • Multiple Input Options:
    • Manual Input
    • Random Input Generation
    • Hardcoded Input Support
  • Performance Metrics:
    • Execution Time Analysis
    • Memory Usage Tracking
    • Time Complexity Analysis
    • Space Complexity Analysis
  • Visualization:
    • Time Performance Graphs
    • Memory Usage Graphs
  • Flexible Unit Display:
    • Time Units (Milliseconds, Seconds, Minutes)
    • Memory Units (Bytes, Kilobytes, Megabytes)
  • Input/Output Data Visualization
  • User Manual Integration

Snapshots

Experience the Java Code Performance Analyzer Tool through these visual previews:

Main Interface

Main Application Interface The main application window showing code input panel and analysis options

Performance Analysis

Performance Analysis Dashboard Real-time performance metrics and graphs during code analysis

Memory Usage Visualization

Memory Usage Tracking Detailed memory usage visualization with adjustable units

Execution Time Visualization

Execution time Tracking Detailed memory usage visualization with adjustable units

Requirements

Installation

  1. Clone the repository: git clone https://github.com/neeraj1240/JavaCodePerformanceAnalyzer.git

  2. Navigate to the project directory: cd JavaCodePerformanceAnalyzer

  3. Compile the project: javac main/ui/CodeAnalyzerUI.java

  4. Run the application: java main.ui.CodeAnalyzerUI

Usage

  1. Input Code:

    • Enter your Java code in the left panel
    • Choose input type (Manual/Random/Hardcoded)
    • Set input parameters if required
  2. Analysis:

    • Click "Analyze" to start the performance analysis
    • Wait for the results to appear in the right panel
  3. View Results:

    • Execution time with adjustable units
    • Memory usage with adjustable units
    • Time complexity analysis
    • Space complexity analysis
    • Performance graphs
    • Input/Output data visualization

Features in Detail

Code Analysis

  • Automated detection of algorithm types
  • Complex pattern recognition for various data structures
  • Multiple runs for accurate performance measurement
  • Warm-up cycles for JVM optimization

Complexity Analysis

  • Detection of common algorithm patterns like:
    • Iterative algorithms
    • Recursive algorithms
    • Divide and conquer
    • Dynamic programming
    • Backtracking

Performance Metrics

  • Average execution time
  • Memory consumption
  • Time complexity notation
  • Space complexity notation

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For support, please open an issue in the GitHub repository or contact the maintainers.

Future Enhancements

  • Extended algorithm pattern recognition
  • Additional visualization options
  • Support for more complex input patterns
  • Integration with popular IDEs
  • Batch analysis capabilities