Hồi xưa mình xài con c2d6300 1,8GH có OC lên 3,0GH, chạy 1 bài toán tính lún (do mình code) chỉ mất khoảng 2-3 phút (thực ra thì mình cũng không đo chính xác). Nhưng nay mình đổi lên con X3210 2,13GH cũng OC lên 3,0GH, cũng chạy bài toán đó mà mất đến 4-5 phút. Trong code mình có chia ra 2 thread. Mình cũng không sửa code gì nhiều. Vậy Pro nào giải thích giùm.
Bổ sung:
Và sau khi chạy 1 hồi thì hằng VS2010 nó kêu thế này các Bác ạ:
"The CLR has been unable to transition from COM context 0x2816ce0 to COM context 0x2816a90 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations."
Mình OK cho tiếp tục thì CT vẫn kết thúc bình thường. Vì không rành tiếng Anh lắm nên mình chỉ hiểu mang máng là CT đã lạm dụng tài nguyên và sử dụng thứ tự thread không hợp lệ gì đó, Pro nào cao tay vào phân tích giúp đi.
Hồi chạy con E6300 thì nó không báo gì cả. Hay là 4 nhân nó giành nhau nên không đứa nào chịu chạy.
Cảm ơn!
Bookmarks