2012-01-16 27 views
7

Tôi có một số bài kiểm tra hiệu năng C#, về cơ bản chạy hai phương pháp khác nhau và kiểm tra xem một phương pháp có chạy nhanh hơn nhiều so với phương pháp khác hay không.Tại sao các thử nghiệm mất nhiều thời gian để chạy trong TeamCity hơn khi chạy trực tiếp trong NUnit?

Khi tôi chạy chúng cục bộ trong NUnit, một trong các thử nghiệm chạy nhanh gấp 10 lần, vì vậy tôi đã có một thử nghiệm NUnit sử dụng Stopwatch để kiểm tra xem nó có nhanh gấp đôi không (trong trường hợp hồi quy). Nhưng khi tôi chạy thử nghiệm trong TeamCity, phương pháp nhanh chỉ nhanh gấp 1,5 lần so với phương pháp chậm? Tôi mong đợi sự khác biệt phần cứng để có một số hiệu ứng, nhưng không phải điều này nhiều. Điều gì có thể gây ra điều này?

Trả lời

11

Để trả lời câu hỏi của riêng tôi, vấn đề hóa ra là phạm vi mã đã được bật cho việc xây dựng thử nghiệm trong TeamCity, do đó, chi phí này mang lại hai thời gian chạy gần nhau hơn. Hy vọng câu trả lời này sẽ giúp người khác trong tương lai.

+0

Tôi thực sự không thấy mã bảo vệ được bật và vẫn mất gần một giờ để chạy thử nghiệm trên máy chủ xây dựng, trong khi mất khoảng 7-8 phút cục bộ. Bất kỳ suy nghĩ về điều này? –

+0

Bạn có đang chạy cùng một loại (tức là Gỡ lỗi không phát hành) trên cả hai không? Ngoài ra nhìn vào thời lượng của các bài kiểm tra trên máy chủ xây dựng - tất cả chúng đều chậm hơn, hoặc là một trong số chúng chậm hơn rất nhiều? –

+0

Cảm ơn bạn rất nhiều vì đã trả lời! Nhiều người trong số họ thực sự là rất nhiều chậm hơn, không chỉ là một, không may. Họ đang thực hiện cuộc gọi DB, nhưng điều đó không thực sự quan trọng, phải không? Tôi tin rằng tôi đang chạy trong Debug trong cả hai. –

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