Tôi đang tối ưu hóa một số mã Perl thường xuyên (một lần mỗi ngày cho mỗi tệp).Nhận xét có ảnh hưởng đến hiệu suất của Perl không?
Làm các nhận xét làm chậm tập lệnh Perl xuống? Các thử nghiệm của tôi nghiêng về phía không:
use Benchmark;
timethese(20000000, {
'comments' => '$b=1;
# comment ... (100 times)
', 'nocomments' => '$b=1;'});
Cung cấp nhiều giá trị giống hệt nhau (ngoài tiếng ồn).
Benchmark: timing 10000000 iterations of comments, nocomments...
comments: 1 wallclock secs (0.53 usr + 0.00 sys = 0.53 CPU) @ 18832391.71/s (n=10000000)
nocomments: 0 wallclock secs (0.44 usr + 0.00 sys = 0.44 CPU) @ 22935779.82/s (n=10000000)
Benchmark: timing 20000000 iterations of comments, nocomments...
comments: 0 wallclock secs (0.86 usr + -0.01 sys = 0.84 CPU) @ 23696682.46/s (n=20000000)
nocomments: 1 wallclock secs (0.90 usr + 0.00 sys = 0.90 CPU) @ 22099447.51/s (n=20000000)
Tôi nhận được kết quả tương tự nếu tôi chạy các nhận xét và không có nhận xét phiên bản dưới dạng tập lệnh Perl riêng biệt.
Dường như có vẻ phản trực giác, nếu không có gì khác, người phiên dịch cần phải đọc nhận xét vào bộ nhớ mỗi lần.
Không perl làm một số loại biên dịch trực tiếp? Có lẽ các bình luận bị loại bỏ sớm? –
Có lẽ bạn không thêm đủ nhận xét để tạo sự khác biệt. –
Tôi đặt cược newlines chậm perl xuống là tốt. Bạn nên làm như các bậc thầy perl thực sự làm, và đặt tất cả các mã của bạn trên một dòng duy nhất. – davr