my $start_time = [Time::HiRes::gettimeofday()];
my $diff = Time::HiRes::tv_interval($start_time);
print "\n\n$diff\n";
Trả lời
Có thể. Phụ thuộc vào ý bạn là "tốt hơn".
Nếu bạn đang yêu cầu giải pháp "tốt hơn" về chức năng, thì điều này là khá nhiều.
Nếu bạn đang yêu cầu một "tốt hơn" theo nghĩa "ít vụng về" ký hiệu, sau đó biết rằng, trong bối cảnh vô hướng, Time::HiRes::gettimeofday()
sẽ trở lại giây nổi kể từ kỷ nguyên (với phần thập phân đại diện cho micro), chỉ như Time::HiRes::time()
(đó là một sự thay thế thả trong tốt cho tiêu chuẩn time()
chức năng.)
my $start = Time::HiRes::gettimeofday();
...
my $end = Time::HiRes::gettimeofday();
printf("%.2f\n", $end - $start);
hay:
use Time::HiRes qw(time);
my $start = time();
...
my $end = time();
printf("%.2f\n", $end - $start);
Điều đó khá nhiều - điều đó sẽ cho bạn thời gian trôi qua có độ phân giải cao. Trừ khi, tất nhiên, một người nào đó lộn xộn với đồng hồ hệ thống.
Phụ thuộc vào những gì bạn đang đang làm. Nếu bạn muốn đo thời gian đồng hồ treo tường (số lượng thời gian thực tế đã trôi qua), bạn không thể nhận được tốt hơn nhiều. Nếu bạn muốn đo thời lượng máy tính đã làm gì đó thì bạn có thể muốn xem hàm times
hoặc lệnh time
. Hàm times
trong Perl trả về danh sách thời gian tích lũy hiện tại cho mã này và mã của bất kỳ mô-đun nào bạn đang sử dụng, quá trình này trong các cuộc gọi hệ thống, tất cả các con của quá trình này trong mã người dùng trong các cuộc gọi hệ thống.
#!/usr/bin/perl
use strict;
use warnings;
use Time::HiRes;
my $start_time = [Time::HiRes::gettimeofday()];
.
.
.
my ($user, $system, $child_user, $child_system) = times;
print "wall clock time was ", Time::HiRes::tv_interval($start_time), "\n",
"user time for $$ was $user\n",
"system time for $$ was $system\n",
"user time for all children was $child_user\n",
"system time for all children was $child_system\n";
Lệnh time
trong UNIX tương tự như chức năng. Bạn chạy một lệnh như thế này
time ./script.pl
và nó sẽ tạo ra một cái gì đó như thế này
real 0m0.692s
user 0m0.019s
sys 0m0.109s
nơi thực sự là bức tường đồng hồ thời gian và người sử dụng và sys cũng giống như người dùng và hệ thống trên.
Lệnh time
dễ sử dụng hơn, nhưng chức năng times
cung cấp cho bạn nhiều thông tin hơn và dễ dàng hơn trong chương trình máy tính (cộng với lợi ích khi tạo kết quả khi chương trình vẫn đang chạy).
Ồ, tôi quên đề cập đến $^T
. Biến này chứa thời gian bắt đầu của chương trình trong vài giây kể từ khi kỷ nguyên, vì vậy nếu bạn chỉ quan tâm đến một granularity của giây, bạn chỉ có thể nói
END { print "The program ran for ", time() - $^T, " seconds\n" }
gần phía trên cùng của chương trình của bạn.
này rất hữu ích cho timings tại chức, granularity của một giây:
Tại bắt đầu ...
$debugtimer = time;
$debugstr = "";
... bất cứ nơi nào và ở khắp mọi nơi bạn thích ...
kerchunk("message") # message is short description of location in code
... kết thúc chương trình ...
print "timings: $debugstr";
... và với tàu ngầm của bạn:
sub kerchunk
{
my ($msg) = shift;
my $pertock = time;
my $kch = abs($debugtimer - $pertock);
$debugstr .= "Elapsed at $msg: $kch<br>\n";
}
- 1. Làm cách nào để xác định liệu một NSDate (bao gồm thời gian) đã trôi qua
- 2. Nhận thời gian trôi qua trong Qt
- 3. thời gian trôi qua nhanh trên linux
- 4. Tính toán thời gian đã trôi qua
- 5. Làm cách nào để có thời gian trôi qua trong C tính bằng mili giây? (Windows)
- 6. Cách tính thời gian trôi qua của một hàm?
- 7. Transact-SQL để tổng hợp thời gian đã trôi qua
- 8. Không có người tiêu dùng nào bị giảm khi thời gian trôi qua trong Torquebox
- 9. Tính thời gian đã trôi qua trong php
- 10. SQL để tìm thời gian trôi qua từ nhiều khoảng thời gian chồng chéo
- 11. Powershell hiển thị thời gian đã trôi qua
- 12. /usr/bin/time - xuất ra định dạng thời gian trôi qua tính bằng mili giây
- 13. C# thời gian trôi qua trên bộ hẹn giờ?
- 14. Lấy thời gian đã trôi qua (Mục tiêu-c)
- 15. Làm thế nào để vẽ tích phân của một tín hiệu khi thời gian trôi qua?
- 16. Cách tính thời gian trôi qua tính bằng giây trong VBA?
- 17. Có cách nào tốt hơn để xác định kích thước phù hợp cho UITableViewCell không?
- 18. Làm cách nào để định dạng dấu thời gian trong Perl?
- 19. Làm cách nào để chuyển đổi thời gian epoch thành thời gian bình thường trong Perl?
- 20. Cách tốt nhất để đối phó với toán học thời gian trong Perl là gì?
- 21. Python - Cách tính thời gian trôi qua kể từ ngày X?
- 22. Cách nào tốt hơn để thực hiện tổng thời gian thực thi ứng dụng Node.js?
- 23. Có cách nào tốt hơn để viết Perl regexes với/x để mã vẫn dễ đọc?
- 24. Chuyển đổi màu trong d3 sử dụng thời gian trôi qua
- 25. Có cách nào dễ dàng hơn để bắt đầu thời gian trong ngày hiện tại không?
- 26. Tôi có thể so sánh mã IL để xác định kỹ thuật nào nhanh hơn hoặc tốt hơn không?
- 27. Cách để làm thời gian chờ trong Perl?
- 28. Làm cách nào để bỏ qua thời gian trong NSDate?
- 29. Tại sao mức độ cách ly tốt hơn có nghĩa là hiệu suất tốt hơn trong SQL Server
- 30. Cách xác định thời gian chờ tích cực hơn cho HttpWebRequest?
Better trong những gì có ý nghĩa? – ysth