2013-05-02 32 views
10

Tôi đang cố gắng sử dụng Google Caliper để chuẩn một số mã đơn giản. Tôi đang sử dụng các ví dụ từ trang web của họ. Dưới đây là những gì tôi đã làm như vậy cho đến nay:Google Caliper: Sự cố khi bắt đầu (Java Benchmarking)

  1. Downloaded JAR Caliper và thêm nó vào dự án Netbeans tôi
  2. Sau khi gặp khó khăn, tôi đã tải về junit.jar và hamcrest.jar. Vẫn không làm việc.

Dưới đây là mã của tôi:

import com.google.caliper.Benchmark; 

public class Benchmark1 extends Benchmark { 

    public void timeNanoTime(int reps) { 
     for (int i = 0; i < reps; i++) { 
     System.nanoTime(); 
     } 
    } 

} 

Tôi đang mở rộng Benchmark bởi vì khi tôi cố gắng để mở rộng "SimpleBenchmark" như trên trang web của họ nó nói với tôi nó không thể tìm thấy SimpleBenchmark. Sau đó, trong phương pháp chính của tôi, tạo ra một Benchmark1 mới() hy vọng một cái gì đó sẽ xảy ra. Không có gì. Đây là mã bên trong lớp chính của tôi.

Benchmark1 test = new Benchmark1(); 
test.timeNanoTime(10); 

Tôi biết điều này là không có nghi ngờ một lỗi đơn giản nhưng tôi không thể, mặc dù nhiều Googling, tìm ra nơi tôi đang đi sai. Mã biên dịch nhưng không chạy.

EDIT: Tôi nên nói rằng tôi đang chạy Netbeans trên Windows 7 với Caliper 1.0

Trả lời

19

Đó là sự thật; tài liệu này đã lỗi thời và không đầy đủ. Tôi đang giải quyết nó. Trong thời gian chờ đợi, dưới đây là những gì sẽ làm cho điểm chuẩn của bạn chạy.

Phương pháp chính của bạn nên ủy quyền cho CaliperMain, không trực tiếp đến điểm chuẩn. Hãy thử

public static void main(String[] args) { 
    CaliperMain.main(Benchmark1.class, args); 
} 

Windows sẽ là một vấn đề. Đặc biệt, issue 215 sẽ là công cụ chặn lớn nhất.

+8

Windows không được hỗ trợ? WTF Vui lòng đăng thông báo này dưới dạng thông báo lớn màu đỏ trên trang chủ dự án. – Thorben

+2

Phiên bản hiện tại, trước khi phát hành Caliper không hỗ trợ Windows do lỗi. Hỗ trợ sẽ trở lại khi chúng tôi làm việc thông qua các lỗi, nhưng không ai trong số các nhà phát triển có máy Windows, do đó, vòng quay xung quanh đã chậm. Hơn nữa, Windows đã là một ưu tiên thấp hơn vì nó là một môi trường sản xuất ít phổ biến hơn và môi trường điểm chuẩn nghèo nàn do thiếu chính xác trong bộ hẹn giờ (vấn đề tương tự với OS X). Điều đó nói rằng, kể từ khi mọi người phát triển trên Windows nó vẫn là một mục tiêu để làm cho nó hoạt động. Vui lòng gắn dấu sao vấn đề (và bất kỳ vấn đề nào khác) khi chúng tôi xem xét những yếu tố đó trong việc ưu tiên công việc. – gk5885

+1

Rất vui khi biết rằng nhóm đang làm việc trên đó. Đã không nhận ra rằng caliper là trong nó trước khi phát hành. Đó là một chút bực bội khi nghe rằng cửa sổ không hoạt động với caliper sau khi dành thời gian xây dựng điểm chuẩn và nhận được những thứ để làm việc. Tôi chia sẻ ý kiến ​​rằng Linux thông minh hơn cho các máy sản xuất, nhưng đôi khi bạn mã hóa trên máy tính xách tay của mình. Hầu hết các máy tính xách tay đi kèm với Windows và phần mềm đặc biệt từ nhà sản xuất dựa vào nó. Vì vậy, nó thoải mái hơn khi sử dụng một hệ thống sẵn sàng để đi. Có lẽ nhà phát triển của bạn có thể lấy Windows từ dreamspark hoặc ở nơi khác. – Thorben

5

Bạn có thể chuyển sang Perfidix http://perfidix.org/

Perfidix có eclipse tích hợp và có thể được sử dụng như JUnit.

Một lựa chọn khác sẽ là JUnitbenchmarks http://labs.carrotsearch.com/junit-benchmarks.html

Đó là một khuôn khổ thực sự tuyệt vời cho Junit 4+. Nó thậm chí có thể xây dựng các biểu đồ html để so sánh kết quả.

Các vấn đề liên quan