none
相同硬體環境下存取速度不同(透過driver) RRS feed

  • 問題

  • 各位好
    目前有個Winform AP透過driver存取記憶體, 在開發平台測試順暢沒問題
    但在相同硬體環境下換乾淨的OS(Windows 10)後, 存取速度卻慢了很多, 大約慢了5~7倍
    使用.Net Framework 4.0, Windows 10應有內建

    請問有可能是什麼原因呢? 該往哪個方向debug?

    補充:這裡的時間計算範圍是從按鈕按下到執行完畢整體的時間, 包含數個存取API呼叫, 一般邏輯運算等等, 但主要還是API部分變慢沒錯

    Thanks





    • 已編輯 _Wayne56 2020年6月24日 上午 07:38
    2020年6月24日 上午 05:52

所有回覆

  • 使用了哪些API?是如何“透過driver存取記憶體”的呢?另外是通过什么方式测出速度的?
    2020年6月25日 上午 05:40
  • 使用了哪些API?是如何“透過driver存取記憶體”的呢?另外是通过什么方式测出速度的?

    Driver使用MmMapIoSpace function存取記憶體 C#再使用DeviceIoControl呼叫API 使用stopwatch計算執行時間 Thanks
    2020年6月25日 上午 11:35
  • 可以到微軟網站下載 Process Monitor ,比對不同系統中,存取時間差。

    資料很細,要練習用過濾器看。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2020年6月25日 下午 12:10
  • DeviceIoControl慢了5~7倍?有尝试用不同的缓冲设置吗?你认为慢了的那部分的代码能贴出来吗?开发平台和测试平台如果都是win10那不同的部分是什么呢?另外硬件方面有什么不同吗?只测试了这两台设备吗?

    一种可能是缓冲方面的问题,除此之外可能是硬件或系统设置上的问题,仅从当前的有限信息中很难推断。

    2020年6月25日 下午 12:21
  • 可以到微軟網站下載 Process Monitor ,比對不同系統中,存取時間差。

    資料很細,要練習用過濾器看。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    原來有這種工具, 我會使用看看的

    Thanks

    2020年6月29日 上午 01:12
  • DeviceIoControl慢了5~7倍?有尝试用不同的缓冲设置吗?你认为慢了的那部分的代码能贴出来吗?开发平台和测试平台如果都是win10那不同的部分是什么呢?另外硬件方面有什么不同吗?只测试了这两台设备吗?

    一种可能是缓冲方面的问题,除此之外可能是硬件或系统设置上的问题,仅从当前的有限信息中很难推断。

    Hi,

    DeviceIoControl慢了5~7倍?

    ->根據我stopwatch放的地方, 看起來是呼叫API的時間比較慢沒錯, 但沒仔細量測到DeviceIoControl的部分, 會再試試

    有尝试用不同的缓冲设置吗?

    ->沒有, 由於目前存取功能正常, 還沒去研究其他方式

    你认为慢了的那部分的代码能贴出来吗?

    ->會再抓一下這部分

    开发平台和测试平台如果都是win10那不同的部分是什么呢?

    ->事實上我測試的win10版本不同, 這個會再試試看, 但慢這麼多還蠻奇怪的

    另外硬件方面有什么不同吗?

    ->目前確定硬體環境相同, 換個乾淨的OS就出現差異了

    只测试了这两台设备吗?

    ->有在其他設備測試過(相同型號硬體平台), 但也是比較慢

    有更詳細的測試內容會再放上來

    Thanks


    • 已編輯 _Wayne56 2020年6月29日 上午 01:26
    2020年6月29日 上午 01:25