Tại sao phải mất quá nhiều thời gian để in một dòng mới? Đây có phải là máy của tôi, hoặc làm những người khác nhìn thấy cùng một hiệu ứng?Tại sao phải mất quá nhiều thời gian để in " n" trong Perl?
Với newline:
#!/usr/bin/perl
use strict;
use Benchmark;
timethis(100000,'main();');
sub main {
print "you are the bomb. \n";
}
# outputs:
# timethis 100000: 8 wallclock secs (0.15 usr + 0.45 sys = 0.60 CPU) @ 166666.67/s (n=100000)
W/o newline:
#!/usr/bin/perl
use strict;
use Benchmark;
timethis(100000,'main();');
sub main {
print "you are the bomb. ";
}
# outputs:
# timethis 100000: 0 wallclock secs (0.09 usr + 0.04 sys = 0.13 CPU) @ 769230.77/s (n=100000)
# (warning: too few iterations for a reliable count)
Edit: tôi muốn thêm rằng việc đặt hai "\ n" gây ra việc thực hiện để mất gấp hai lần, ít nhất là cho các giây xung quanh.
timethis 100000: 16 wallclock secs (0.15 usr + 0.52 sys = 0.67 CPU) @ 149253.73/s (n=100000)
bạn có đang chạy trên các cửa sổ không? Bạn có thể thử cùng một mã trên Linux hoặc mac? Theo kinh nghiệm của tôi, việc viết lên bàn điều khiển trên cửa sổ là một thủ tục rất chậm chạp, trong khi trên 2 cái kia của Big Three nó rất, rất nhanh. – rmeador
@rmeador: Tôi đang chạy trên Linux. Tôi sẽ có thể làm thử nghiệm thêm một chút sau đó. Tôi không biết nếu điều này là bình thường cho newlines, hoặc nếu nó đã được b/c của các thiết lập (hệ điều hành, thiết bị đầu cuối, Perl, phần cứng, vv). – vol7ron
như các câu trả lời đã nói, dòng mới luôn luôn chậm, tôi đã chỉ tự hỏi nếu bạn đã nhìn thấy một sự suy giảm hoàn toàn bất ngờ do Windows có hỗ trợ giao diện điều khiển lạ. – rmeador