11 điểm bởi xguru 2024-10-24 | 2 bình luận | Chia sẻ qua WhatsApp
  • Trình profiler CPU, GPU và bộ nhớ hiệu năng cao cho Python, thực hiện nhiều việc mà các profiler Python khác không làm hoặc không thể làm
  • Chạy nhanh hơn nhiều trong khi cung cấp thông tin chi tiết hơn rất nhiều, đồng thời là profiler đầu tiên tích hợp các đề xuất tối ưu hóa dựa trên AI
  • Cung cấp CLI và GUI nền web
  • Nhanh và chính xác
    • Nhanh: sử dụng lấy mẫu thay vì phụ thuộc vào instrumentation hoặc tính năng tracing của Python. Overhead thường không vượt quá 10~20% và nhiều khi còn thấp hơn
    • Chính xác: kết quả kiểm thử độ chính xác cho thấy Scalene là một trong những profiler chính xác nhất và đo thời gian tiêu tốn một cách chuẩn xác
    • Thực hiện profiling ở cấp độ dòng và theo từng hàm để chỉ ra các hàm và những dòng mã cụ thể chịu trách nhiệm cho thời gian chạy của chương trình
  • Profiling CPU
    • Đo tách biệt thời gian tiêu tốn trong mã Python và mã native (bao gồm cả thư viện), giúp nhà phát triển tập trung vào phần mã thực sự có thể tối ưu hóa
    • Tô nổi bật các điểm nóng chiếm phần lớn thời gian CPU hoặc cấp phát bộ nhớ bằng màu đỏ
    • Thời gian hệ thống được tách riêng, giúp dễ dàng tìm ra các điểm nghẽn I/O
  • Profiling GPU
    • Chỉ báo cáo thời gian GPU trên các hệ thống dùng NVIDIA
  • Profiling bộ nhớ
    • Thực hiện profiling mức sử dụng bộ nhớ và xác định các dòng mã cụ thể gây tăng bộ nhớ thông qua bộ cấp phát bộ nhớ chuyên dụng
    • Hiển thị tách biệt tỷ lệ tiêu thụ bộ nhớ của mã Python và mã native
    • Tạo hồ sơ bộ nhớ theo từng dòng
    • Xác định các dòng có khả năng gây ra rò rỉ bộ nhớ
    • Với profiling khối lượng sao chép, có thể dễ dàng phát hiện các bản sao ngoài ý muốn khi đi qua ranh giới giữa Python/thư viện (ví dụ: khi mảng numpy vô tình bị chuyển thành mảng Python)
  • Các tính năng khác
    • Có thể tạo hồ sơ rút gọn thông qua tùy chọn --reduced-profile, chỉ báo cáo các dòng tiêu thụ trên 1% CPU hoặc thực hiện ít nhất 100 lần cấp phát
    • Hỗ trợ decorator @profile để chỉ profiling các hàm cụ thể
    • Có thể tạm dừng và tiếp tục profiling các chương trình chạy nền (được chạy bằng &)

2 bình luận

 
lethee 2024-10-29

Có vẻ nhẹ hơn so với Nsight và có thể dùng khá hữu ích, tôi sẽ thử dùng rồi để lại review! Cảm ơn vì phần giới thiệu.

 
xguru 2024-10-30

Nếu bạn làm vậy thì tôi sẽ rất cảm kích. Thỉnh thoảng khi đăng những tin như thế này, tôi cũng tò mò không biết có bao nhiêu người đang theo dõi. haha