30/09/2018, 19:57
Làm thế nào để kiểm tra thời gian code chạy và cách tối ưu code Java?
Như tiêu đề ạ.
Em đang tập tành lập trình java. Em muốn kiểm tra thời gian chạy code của mình để kiểm tra mức độ tối ưu của nó đối với bài toán. Đồng thời mong mọi người cho em vài lời khuyên để giúp code java chạy nhanh hơn. Ví dụ nếu mình dùng nhiều biến hay phương thức static có làm chậm chương trình không? Chương trình viết kiểu chia nhỏ các phương thức hay gộp chung thì chạy sẽ nhanh hơn? v…v… Em xin cảm ơn ạ.
Bài liên quan
Muốn kiểm tra code chạy nhanh hay lâu thì phải làm profiling thôi:
1- Có thể tự viết profiling xem thế nào? Ví dụ đơn giản nhất là trước khi chạy cho một cái time vào, sau khi chạy cho 1 cái time tiếp. Trừ đi sẽ ra thời gian chạy của function. Tuy nhiên, cách này chỉ đo được mà không hiểu nguyên nhân chậm do đâu.
2- Sử dụng tool profiling. Trong java SDK có 1 tool tên là VisualVM, bạn có thể xem log/trace mọi thứ khi app chạy.
(Ngoài VisualVM thì bạn có thể dùng Netbean Profiler, Petty, JRoket, Jprofiler (đều là tool offline). Ngoài của ngoài ra nữa, mình thấy có vài thằng online tool rất tốt, mình hay dùng newrelic.com)
Các câu hỏi extra:
Nói chung, cái gì cũng phải đánh đổi (trade-off)? Tối ưu và chấp nhận được cho 1 case cụ thể mà thôi.
Vâng em cảm ơn nhiều ạ.