`eval` is leaking memory
Đang mở
Chưa có ai nhận issue này.
Bug
Category: Engine
Status: Needs Triage
- Ngôn ngữ chính
- C
- Star
- 40.4k
- Fork
- 8.2k
- Merge trung bình
- 2 ngày 13 giờ
- Pull request đã merge (30 ngày)
- 96
Mô tả
Description
The following code:
<?php
$m = memory_get_usage();
for ($i = 0; $i < 1000; $i++) {
$fn = eval('return function ($foo) {};');
//$fn = function ($foo) {};
var_dump(memory_get_usage() - $m);
}
https://3v4l.org/LF4Ri
https://3v4l.org/1DeC6 - /wo eval, not leaking
https://3v4l.org/NtIrU - eval /wo anonymous function is not leaking
Resulted in this output:
int(640)
int(672)
int(672)
int(672)
...
int(197280)
But I expected this output instead:
int(640)
int(672)
int(672)
int(672)
...
int(672)
PHP Version
8.1.x
Operating System
any
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 bản tái hiện PHP 8.1 được cung cấp và so sánh mức sử dụng bộ nhớ của nó với các ví dụ direct-closure và eval-without-anonymous-function được liên kết trong issue. Theo dõi đường dẫn eval chịu trách nhiệm tạo các hàm ẩn danh; được xem là hoàn tất khi các lần đánh giá lặp lại không còn cho thấy mức sử dụng bộ nhớ tăng đều đặn.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- php
- Lĩnh vực
- compilers, performance
- 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
- 35/100