Tôi có một luồng .NET được cấp phát cho lõi # 7. Chức năng thread được kích hoạt một lần trong 300ms. Ban đầu phải mất khoảng 20-30 ms để thực hiện một cuộc gọi. Nhưng lần này tăng dần và trở thành hơn 150ms sau khoảng 2.52.000 cuộc gọi.Chủ đề tăng mức sử dụng bộ xử lý dần dần
Ngoài ra tôi đã nhận thấy việc sử dụng lõi # 7 bắt đầu ở mức 10%. Bởi thời gian số lượng các cuộc gọi đến các chức năng thread đạt 2,52.000 sử dụng bộ vi xử lý của lõi # 7 trở thành khoảng 60%. Khi tôi ngừng kích hoạt chức năng chuỗi, việc sử dụng bộ xử lý trở thành 0%. Nhưng khi tôi bắt đầu kích hoạt sử dụng lõi một lần nữa bắt đầu từ 60% (không phải từ 0%) và một lần nữa tăng dần.
Tôi cũng nhận thấy không có rò rỉ bộ nhớ cho ứng dụng.
Bên trong hàm chuỗi của tôi Tôi kết hợp các phần tử của hai Từ điển và thêm nó vào một từ điển khác trong vòng lặp foreach. Số phần tử trong từ điển sẽ luôn là 45.
Tôi muốn ứng dụng này hoạt động 24/7. Vui lòng cho tôi biết một số mẹo để sử dụng hằng số bộ xử lý này.
Bạn nói, "Số phần tử trong từ điển sẽ luôn là 45." Đó có phải là số lượng các phần tử trong từng từ điển trong ba từ điển không? Bạn có chắc là không có từ điển nào đang phát triển? Điều này nghe với tôi như một từ điển bằng cách sử dụng một loại khóa tùy chỉnh mà không thực hiện 'GetHashCode' chính xác. –
Cảm ơn Jim Mischel, Không. Số lượng tối đa của từ điển kết hợp là 45. Nó sẽ bị xóa khi nó đạt đến 45. Ngoài ra số lượng tối đa hai từ điển khác không bao giờ vượt qua 10. Từ điển của tôi được khai báo là 'Dictionary myResults = Từ điển mới ; ' –
Sau đó, bạn sẽ phải hiển thị một số mã. Rất khó có khả năng thư viện luồng này đang làm tăng mức sử dụng CPU này. Nhiều khả năng nó là một cái gì đó trong mã của bạn. –