bounds-check-elimination

    2熱度

    2回答

    我讀過一些JVM可以通過刪除邊界檢查來優化代碼執行。我想弄清楚的是編碼技術會更好地工作。 在方法下面例1將在JVM以往數字出來,並消除邊界的源[指數]參考的檢查? 是example2更好的代碼練習?這似乎是這樣,但在循環內的一些算法中,索引超出範圍是正常情況。所以你不想在這個循環中產生大量的Exception對象。 public void example1(int [] source, int i

    2熱度

    2回答

    我使用ILGenerator編寫的數組訪問操作很簡單。當使用這個確切的代碼創建方法時,我打開反彙編,沒關係,沒有數組邊界檢查。 但是,當我第一次將其他類的實例放在評估堆棧上時,然後運行for循環,它會進行數組邊界檢查。我正在發佈。 任何想法爲什麼?我已經閱讀博客文章數組邊界檢查:http://blogs.msdn.com/b/clrcodegeneration/archive/2009/08/13

    13熱度

    1回答

    我製作了很多索引類型爲Bounded,索引範圍爲(minBound, maxBound)的陣列。對於這樣的數組,邊界檢查應該是不必要的。我如何說服GHC消除邊界檢查? 我的特定應用同時使用裝箱和取消裝箱不變的數組,但我感興趣的各類哈斯克爾陣列。

    5熱度

    1回答

    我最近閱讀Dave Detlefs的this article,其中他介紹了CLR執行數組邊界檢查消除的一些情況。我決定把這個測試自己,所以我做了以下內容: 開業的Visual Studio 2010旗艦版SP1 創建類型的新的C#項目控制檯應用程序(目標默認.NET 4客戶端配置文件) 添加以下代碼(所有子方法直接取自文章): class Program { static void Ma