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.
- 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
Experience the Java Code Performance Analyzer Tool through these visual previews:
The main application window showing code input panel and analysis options
Real-time performance metrics and graphs during code analysis
Detailed memory usage visualization with adjustable units
Detailed memory usage visualization with adjustable units
- Java Development Kit (JDK) 8 or higher
- JavaFX
- Sufficient system memory for code execution and analysis
-
Clone the repository: git clone https://github.com/neeraj1240/JavaCodePerformanceAnalyzer.git
-
Navigate to the project directory: cd JavaCodePerformanceAnalyzer
-
Compile the project: javac main/ui/CodeAnalyzerUI.java
-
Run the application: java main.ui.CodeAnalyzerUI
-
Input Code:
- Enter your Java code in the left panel
- Choose input type (Manual/Random/Hardcoded)
- Set input parameters if required
-
Analysis:
- Click "Analyze" to start the performance analysis
- Wait for the results to appear in the right panel
-
View Results:
- Execution time with adjustable units
- Memory usage with adjustable units
- Time complexity analysis
- Space complexity analysis
- Performance graphs
- Input/Output data visualization
- Automated detection of algorithm types
- Complex pattern recognition for various data structures
- Multiple runs for accurate performance measurement
- Warm-up cycles for JVM optimization
- Detection of common algorithm patterns like:
- Iterative algorithms
- Recursive algorithms
- Divide and conquer
- Dynamic programming
- Backtracking
- Average execution time
- Memory consumption
- Time complexity notation
- Space complexity notation
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue in the GitHub repository or contact the maintainers.
- Extended algorithm pattern recognition
- Additional visualization options
- Support for more complex input patterns
- Integration with popular IDEs
- Batch analysis capabilities