2009-02-27 12 views
13

Vấn đề: Tôi có một máy phát triển (đọc: nhanh, rất nhiều bộ nhớ), nhưng người dùng có một máy người dùng (đọc: chậm, không phải là rất nhiều bộ nhớ).Có cách nào để điều chỉnh CPU/Bộ nhớ của một quá trình không?

Tôi có thể mô phỏng mạng chậm bằng Fiddler (http://www.fiddler2.com/fiddler2/) Tôi có thể xem cách CPU được sử dụng theo thời gian cho một quy trình sử dụng Process Explorer (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx).

Có cách nào để hạn chế số lượng CPU mà một quá trình có thể có hay số lượng bộ nhớ mà một quá trình có thể có để mô phỏng máy người dùng hiệu quả hơn không? (Ví dụ: để tách biệt các vấn đề về hiệu suất)

Tôi cho rằng tôi có thể sử dụng máy ảo, nhưng tôi đang tìm thứ gì đó nhẹ hơn một chút.

Tôi đang sử dụng Windows XP, nhưng giải pháp cho mọi máy Windows sẽ được chào đón. Cảm ơn.

+0

1 Yeah Tôi muốn biết điều này quá. –

Trả lời

5

SDK nền tảng được sử dụng để đi kèm với các công cụ căng thẳng để thực hiện việc này chỉ trong những ngày cũ tốt (STRESS.EXE, CPUSTRESS.EXE trong SDK), nhưng chúng vẫn có thể ở đó (kiểm tra SDK nền tảng và/hoặc cài đặt Visual Studio của bạn cho hai tập tin này - tiếc là tôi có niether các PSDK hay VS cài đặt trên máy tôi đang gõ từ)

công cụ khác:

  • nhớ: hiệu suất & độ tin cậy (ví dụ như xử lý cấp phát bộ nhớ thất bại.): có thể sử dụng EatMem
  • CPU: hiệu suất & độ tin cậy (ví dụ: điều kiện chủng tộc): có thể sử dụng CPU Burn, Prime95, v.v.
  • xử lý (GDI, Người dùng): độ tin cậy (ví dụ: xử lý không phân bổ nguồn GDI): ??? có thể phải viết của riêng bạn, nhưng chạy ra khỏi xử lý GDI (ứng dụng GTK lỗi thường sẽ ăn tất cả cho đến khi tất cả các ứng dụng khác trên hệ thống sẽ bắt đầu rơi như ruồi) là một thử nghiệm thực sự cho bất kỳ ứng dụng Windows
  • đĩa: hiệu suất & độ tin cậy (ví dụ như xử lý đĩa đầy đủ): DiskFiller vv

xem thêm this existing thread.

+0

Tôi đã thử ghi CPU, có vẻ như nó hoạt động tốt. Nó là một chút giống như một cái búa tạ mặc dù. Tôi đã không thử ăn mặc dù. Đánh dấu là câu trả lời được chấp nhận. –

1

Bạn có thể chạy MemAlloc để nhai RAM, có thể là một vài bản sao cùng một lúc.

1

Tôi tìm thấy một câu hỏi liên quan:

Set Windows process (or user) memory limit

Câu trả lời được chấp nhận cho câu hỏi có một liên kết đến Windows API SetProcessWorkingSetSize, do đó, nó không hẳn là một công cụ có thể giới hạn số lượng bộ nhớ rằng một quá trình co thể sử dụng.

Về việc thay đổi số lượng tài nguyên CPU mà quy trình có thể sử dụng, nếu bạn không nhớ mức độ chi tiết của giới hạn mỗi tài nguyên, Trình quản lý tác vụ có thể thay đổi ái lực bộ xử lý của quy trình.

Trong Trình quản lý tác vụ, nhấp chuột phải vào một quy trình và chọn "Đặt mối quan hệ ...", sau đó chọn lõi bộ xử lý mà quy trình có thể được gán cho.

Nếu máy phát triển có nhiều lõi nhưng máy người dùng chỉ có một lõi, thay vì cho phép quá trình chạy trên tất cả các lõi có sẵn, hãy đặt ái lực của bộ xử lý thành chỉ một lõi.

3

AppVerifier có tính năng mô phỏng tài nguyên thấp.

Bạn cũng có thể thử đặt mức độ ưu tiên của quy trình thành rất thấp.

0

Nó không có gì để làm với SetProcessWorkingSetSize

Chỉ cần sử dụng apis Win32 hạt nhân nội bộ để hạn chế sử dụng CPU

+0

apis nào cung cấp tùy chọn hạn chế sử dụng CPU? –