2010-07-12 16 views
8

Đối với độc giả thường xuyên: Các saga ™ tiếp tục ...Tôi có thể sử dụng những công cụ nào để xác định các yêu cầu phần cứng trong đơn đăng ký của mình?

Ứng dụng của tôi chạy tốt trên máy tính phát triển của tôi - mà đã được mua (5 năm trước) như một giàn khoan chơi game khá tốt. Như vậy, nó là 64bit, có tốc độ xung nhịp 2,2GHz và có bộ nhớ 2GB.

Máy ở nơi làm việc tuy nhiên, là máy tính văn phòng Dell tiêu chuẩn và thực sự đấu tranh để thậm chí bắt đầu ứng dụng của tôi, hãy để một mình chạy nó.

(Giải thích ... Tôi có thể tưởng tượng mọi người gào thét với tôi: "Bạn đang làm cái quái gì để yêu cầu thông số như thế?" Vâng, tôi đang thực hiện rất nhiều phân tích hình ảnh thời gian thực và tạo âm thanh. Vì vậy, có)

Nhóm của chúng tôi có ngân sách để mua một máy tính xách tay chuyên dụng (cần phải di động) để chạy nó. Vì vậy, bây giờ tôi đã được giao nhiệm vụ tạo ra một spec yêu cầu tối thiểu.

Tôi có thể sử dụng công cụ nào để xác định thông số kỹ thuật thấp nhất có khả năng chạy ứng dụng của mình một cách thoải mái?

Cập nhật: Các câu trả lời cho đến nay, trong khi hữu ích, tập trung nhiều hơn vào các lựa chọn thay thế cho lược tả. Vì vậy, tôi đã đưa ra một tiền thưởng để xem nếu có bất kỳ phần mềm sẽ làm điều này loại điều.

+0

Bạn luôn có thể thử tối ưu hóa mã của mình một chút để mã chạy trên máy thông số kỹ thuật thấp hơn. Không phải là bạn sẽ chỉ phải thử nghiệm ứng dụng của mình trên các máy ứng cử viên khác nhau để có được cảm giác về những gì bạn cần để có được hiệu suất chấp nhận được. –

+0

Cảm ơn Paul. Tôi đã thực hiện tối ưu hóa theo như kỹ năng phát triển hạn chế của tôi sẽ cho phép. (Nếu bạn tò mò, hãy kiểm tra nguồn. Tôi sẽ rất biết ơn vì bất kỳ sự trợ giúp nào!) Tùy chọn thứ hai là bản sao lưu của tôi, nhưng vì chúng tôi đang mua một máy chuyên dụng, thật tuyệt vời để có được nó đúng thời gian đầu tiên. –

+1

Không có gì ngạc nhiên ... các máy tính văn phòng Dell tiêu chuẩn chạy Celerons với RAM chậm. Nếu nó chạy tốt trên các thông số kỹ thuật ở trên, bạn không thể sử dụng nó như là một đường cơ sở? Rõ ràng một máy tính xách tay sẽ có vấn đề nhiệt nếu bạn đang chạy tính toán nặng trên nó trong thời gian dài của thời gian, nhưng phần cứng là khá rẻ hiện nay. Chỉ cần không có được một mô hình tiết kiệm điện. ;) – cbednarski

Trả lời

5

Bạn có quyền truy cập vào hồ sơ tốt không? Tôi nghĩ rằng nó sẽ là đáng giá để hiểu các tắc nghẽn hiệu suất trong ứng dụng của bạn. Nếu nó chỉ ra rằng ứng dụng của bạn là CPU bị ràng buộc, sau đó bạn rõ ràng sẽ muốn xem xét splurging trên một bộ xử lý cao cấp. Ứng dụng có đa luồng không? Nếu vậy, ứng dụng của bạn có lợi dụng nhiều bộ vi xử lý hay nó đang nhận được tuần tự hóa vì đồng bộ hóa?

Nếu ứng dụng bị ràng buộc IO, có lẽ bạn nên xem xét việc nhận ổ SSD.

Có lẽ ứng dụng đang dành quá nhiều thời gian phân trang? vv ...

Nếu bạn có quyền truy cập vào Visual Studio 2010 Ultimate, tôi khuyên bạn nên xem qua số Concurrency Profiler. Nó sẽ giúp bạn hình dung những gì đang xảy ra trong chương trình của bạn và xác định các tắc nghẽn hiệu suất. Nó sẽ cho bạn thấy nơi ứng dụng của bạn dành thời gian: chờ IO, quản lý bộ nhớ, v.v. Mặc dù công cụ này chắc chắn sẽ không cho bạn biết yêu cầu phần cứng tối thiểu là gì, nó sẽ cung cấp cho bạn ý tưởng tốt về những cải tiến phần cứng nào sẽ giúp ứng dụng của bạn hoạt động tốt hơn. Nếu bạn không có VS2010, bạn có thể tiến hành phân tích tương tự với bất kỳ trình thu thập tốt nào. Điều thú vị về Concurrency Visualizer là nó tập trung vào việc phơi bày các vấn đề về hiệu suất đồng thời và đa luồng.

+0

Tôi hiện chỉ có Chuyên gia, nhưng nếu tôi có thể nâng cấp thì tôi sẽ cân nhắc kỹ. Các công cụ lược tả hiệu suất trông thực sự hữu ích. Tôi không cho rằng bạn có thể giới thiệu bất kỳ trình thu thập nào khác? –

+0

Hi Tom, Tôi muốn nâng cấp không quá tốn kém: (Thật sự là một sự xấu hổ. Một tùy chọn miễn phí tuyệt vời là "xperf". Nó đi kèm với các công cụ Phân tích hiệu suất Windows (có sẵn tại đây: http: // msdn .microsoft.com/en-us/performance/cc825801.aspx) xperf là ​​cực kỳ mạnh mẽ, nhưng có một đường cong học tập dốc.Nó không nắm giữ bàn tay của bạn nhiều như các hồ sơ VS Nó cũng có vẻ như có một hồ sơ nguồn mở được gọi là "Sleepy", có sẵn ở đây http://www.codersnotes.com/sleepy/, nhưng tôi chưa bao giờ sử dụng nó. – Matt

1

Không có gì nhịp đập thử nghiệm thế giới thực ...

Thử chạy ứng dụng của bạn trên một loạt các phần cứng và đưa ra một tối thiểu đề nghị dựa trên nhận thức của bạn về hiệu suất chấp nhận được.

Lưu ý: Thường có sự khác biệt lớn giữa các yêu cầu phần cứng tối thiểu tuyệt đối và các yêu cầu tối thiểu được chấp nhận được đề xuất (có vẻ như đó là những gì bạn thực sự sau).

0

Một tùy chọn là tạo một loạt các máy ảo với các cấu hình hệ thống khác nhau và thử ứng dụng của bạn trong mỗi (bạn sẽ muốn thực hiện điều này trên một máy tính hiệu suất cao). Bằng cách đó, bạn có thể điều chỉnh số lượng bộ nhớ mà VM có, loại CPU, vv và mô phỏng phần mềm thử nghiệm trên nhiều hệ thống khác nhau. Trong khi thử nghiệm, bạn có thể sử dụng Trình quản lý tác vụ Windows để xem lượng bộ nhớ máy chủ và bộ nhớ mà ứng dụng của bạn đang sử dụng. Để có trải nghiệm thoải mái, bạn sẽ muốn ứng dụng của mình vừa vặn trong bộ nhớ vật lý càng nhiều càng tốt (cộng thêm khoảng 1-1,5 GB cho hệ điều hành và các dịch vụ nền khác).

Cũng nên nhớ liệu ứng dụng của bạn có bất kỳ tính năng nào yêu cầu hỗ trợ phần cứng (DirectX 11, CUDA, v.v.) và đảm bảo rằng bạn bao gồm trong yêu cầu phần cứng của mình.

0

Từ thông tin ngắn gọn, có vẻ như máy tính của bạn không phải là đặc điểm kỹ thuật cao. Máy tính Dell nào mà bạn thấy chạy chậm?

Tôi sẽ thử một PC khác trong trường hợp máy 'làm việc' chỉ là phần mềm xấu (đoán trình điều khiển bộ điều khiển đĩa chuẩn XP, v.v.).

Tôi thường không khuyên bạn nên đi xuống tuyến đường VM như thực sự đó là chỉ có bất kỳ tốt để hạn chế sử dụng RAM. Tuy nhiên, nếu bạn cần kiểm tra các Gói dịch vụ/Gói dịch vụ thay thế thì VM là một cách tốt để đi.

Cuối cùng bạn nói rằng ứng dụng tải chậm, tải xuống là gì? Nó có thể là một ý tưởng để xem xét các màn hình hiệu suất để xem liệu nó là đĩa, RAM hoặc CPU bị hạn chế. Sử dụng Google để tìm các quầy hữu ích để theo dõi từng bộ đếm.

+0

Đối với các spec, máy tính dev của tôi không phải là thông số kỹ thuật cao theo tiêu chuẩn hiện đại: AMD64 lõi kép chạy ở tốc độ 2,21GHz với bộ nhớ DDR2 2GB (bộ nhớ mà tôi cho là). Máy tính làm việc dường như là một nửa thống nhất này: tức là lõi đơn 32 bit chạy ở khoảng 1GHz và thường với RAM 1GB. –

+0

1Ghz CPU trong một máy tính để bàn là sẽ rất cũ, tôi đoán rất có thể là một Pentium 3 mà có lẽ thậm chí không lên để hiển thị các trang web flash hiện đại nhất. Điều duy nhất tôi sẽ kiểm tra là sử dụng màn hình hiệu suất cho dù việc sử dụng RAM là cao và do đó nó bắt đầu trao đổi trên các máy 1Gb RAM. RAM 1Gb thực sự là mức tối thiểu phù hợp cho một ứng dụng không phải chuyên gia, do đó bạn nên cố gắng phù hợp với điều đó. Trên CPU chỉ cần đi cho CPU của bạn (và Intel tương đương) như là một tối thiểu, nhìn vào Toms phần cứng để làm việc ra tương đương trong Intel, điện thoại di động, vv –

+0

Hoặc một máy tính netbook. – Arafangion

0

Hãy tha thứ cho tôi vì nêu rõ b ***** g rõ ràng nhưng:

Sử dụng phần mềm của bạn để kiểm tra các yêu cầu phần cứng cho phần mềm của bạn.

Tôi không hiểu tại sao thông số kỹ thuật của máy phát triển của bạn không đơn giản là thông số kỹ thuật cần thiết cho máy tính xách tay bạn đề xuất mua. Nhưng nếu đó là không đủ tốt vì lý do nào đó, hãy chạy phần mềm của bạn trên một số phần cứng với các thông số kỹ thuật khác. Ví dụ, bạn có thể lấy 1GB RAM ra khỏi máy phát triển của mình để xem mọi thứ hoạt động như thế nào với bộ nhớ ít hơn.

Có một số lượng lớn phần mềm đo điểm chuẩn có sẵn cho tất cả các loại tác vụ. Ví dụ LINPACK được sử dụng nhiều cho các siêu máy tính điểm chuẩn. Lỗ hổng trong tất cả các điểm chuẩn này, và trong cách tiếp cận nói chung, là chúng chỉ cung cấp cho bạn thông tin tốt về cách máy tính chạy điểm chuẩn. Chuyển đổi kết quả điểm chuẩn thành dự đoán về hiệu suất của phần cứng với phần mềm của bạn là một nghệ thuật hơn là khoa học. Trong các tổ chức thế giới siêu máy tính chuẩn các ứng dụng chính của riêng họ trên nền tảng mới trước khi mua.