1
A
回答
2
歡迎來到Stackoverflow :) 我發現這個問題,似乎是這個類似,也許你會發現它也很有幫助。
Elegantly determine if more than one boolean is "true"
您也可以看看bit operators是在C#以及this article
CNC中
而且更直接awnser你的問題,因爲C#編譯爲IL不到機器代碼,你真的不能做cpu級別的優化。公共語言運行庫中的JIT編譯器能夠在代碼實際運行時進行一些優化,但不能從語言本身直接訪問該進程。
但是,您可以混合使用C++和託管代碼,做你的低級別的優化存在,但它那種失敗移動到C#
+0
非常感謝您的信息。我會檢查出來的。 – David 2011-05-23 13:47:53
3
我還沒有找到一個簡單的方法來檢測,並使用特殊的CPU指令的目的在C#中。有幾種選擇,沒有一個很好。
- asmjit,做popcount
- x86/x64 CPUID in C#
- 單功能與數據類型支持的SIMD庫(不popcount我猜)
- 使用C++ DLL(可能的方式慢,因爲開銷)
- ..
我從來沒有這樣做過,並實現了一個C#popcount;
/// <summary>
/// Count the number of bits set to 1 in a ulong
/// </summary>
public static byte BitCount(this ulong value)
{
ulong result = value - ((value >> 1) & 0x5555555555555555UL);
result = (result & 0x3333333333333333UL) + ((result >> 2) & 0x3333333333333333UL);
return (byte)(unchecked(((result + (result >> 4)) & 0xF0F0F0F0F0F0F0FUL) * 0x101010101010101UL) >> 56);
}
相關問題
- 1. C中的CPU數量限制
- 2. Android檢查CPU頻率?
- 3. PowerShell進程CPU檢查
- 4. 如何查找tcl中的CPU數量?
- 5. 查找linux內核中CPU的數量
- 6. 從C獲取Mac OS X上的CPU數量?
- 7. C++向量擦除檢查
- 8. Mysql,檢查表和行數從C
- 9. c檢查整數
- 10. 從Python查詢CPU ID?
- 11. MySQL查詢問題 - 計數查詢使用大量的CPU
- 12. 如何從C++的Windows中檢索總系統CPU使用率?
- 13. PHP檢查變量函數?
- 14. 矢量數據檢查
- 15. 不一致的c# - 檢查命令中的參數數量
- 16. 如何檢測Crystal中CPU內核的數量?
- 17. C++檢查浮點數
- 18. 參數在C預檢查
- 19. 素數檢查錯誤C++
- 20. C++檢查,如果在矢量
- 21. 目標C不斷檢查變量值
- 22. C#檢查變量是否定義
- 23. C#列表/檢查對象變量?
- 24. 從DocuSign中的檢查框中自動檢查複選框數量
- 25. 在C中查找CPU利用率
- 26. 將數據從數據庫檢索到變量與C#
- 27. 檢查變量
- 28. 如何從C中查找Python函數的參數數量?
- 29. 如何在Linux中使用C獲取物理CPU的數量?
- 30. 批次:檢查參數的數量
您是否需要在特定時間點查找CPU使用情況? – 2011-05-23 13:25:32
在C++中,這需要特定於實現的編譯器,例如, '__builtin_popcount'(用於gcc)。 – 2011-05-23 13:49:51