processing / processing/processing4
curveVertex() causes OutOfMemory in P2D renderer
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Java
- Star
- 494
- Fork
- 183
- Merge trung bình
- 4 giờ 39 phút
- Pull request đã merge (30 ngày)
- 3
Mô tả
Created by: Real-John-Cheung
Description
curveVertex() causes java.lang.OutOfMemoryError: Java heap space error when the vertex amount is big in P2D render. With the default Java2D render it works fine.
void setup(){
size(800,800, P2D);
beginShape();
for(int i = 0; i < 26000;i ++){
curveVertex(i * 0.1, 100);
}
endShape();
}
Above sketch crashes due to OutOfMemoryError, below sketches can be executed without problem:
void setup(){
size(800,800);
beginShape();
for(int i = 0; i < 26000;i ++){
curveVertex(i * 0.1, 100);
}
endShape();
}
void setup(){
size(800,800, P2D);
beginShape();
for(int i = 0; i < 2000;i ++){
curveVertex(i * 0.1, 100);
}
endShape();
}
Your Environment
- Processing version: 4.3
- Operating System and OS version: macOS 14.4.1
- Other information: on a Intel Mac
Possible Causes / Solutions
Might have something to do with how Catmull-Rom splines is calculated in P2D?
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách chạy sketch Processing 4.3 được cung cấp với trình kết xuất P2D, so sánh 26,000 và 2,000 lần gọi curveVertex() cùng với phiên bản Java2D. Theo dõi các điểm vào beginShape(), curveVertex() và endShape() qua trình kết xuất P2D. Hoàn tất khi sketch lớn không còn làm cạn Java heap mà vẫn giữ nguyên đầu ra đường cong như mong đợi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- computer-graphics
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 38/100