當前位置: 首頁>>代碼示例>>Python>>正文


Python heapcache.HeapCache類代碼示例

本文整理匯總了Python中pypy.jit.metainterp.heapcache.HeapCache的典型用法代碼示例。如果您正苦於以下問題:Python HeapCache類的具體用法?Python HeapCache怎麽用?Python HeapCache使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了HeapCache類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: test_unescaped_array

 def test_unescaped_array(self):
     h = HeapCache()
     h.new_array(box1, lengthbox1)
     assert h.is_unescaped(box1)
     h.invalidate_caches(rop.SETARRAYITEM_GC, None, [box1, index1, box2])
     assert h.is_unescaped(box1)
     h.invalidate_caches(rop.SETARRAYITEM_GC, None, [box2, index1, box1])
     assert not h.is_unescaped(box1)
開發者ID:,項目名稱:,代碼行數:8,代碼來源:

示例2: test_replace_box

 def test_replace_box(self):
     h = HeapCache()
     h.setfield(box1, descr1, box2)
     h.setfield(box1, descr2, box3)
     h.setfield(box2, descr3, box3)
     h.replace_box(box1, box4)
     assert h.getfield(box1, descr1) is None
     assert h.getfield(box1, descr2) is None
     assert h.getfield(box4, descr1) is box2
     assert h.getfield(box4, descr2) is box3
     assert h.getfield(box2, descr3) is box3
開發者ID:,項目名稱:,代碼行數:11,代碼來源:

示例3: test_known_class_box

    def test_known_class_box(self):
        h = HeapCache()
        assert not h.is_class_known(1)
        assert not h.is_class_known(2)
        h.class_now_known(1)
        assert h.is_class_known(1)
        assert not h.is_class_known(2)

        h.reset()
        assert not h.is_class_known(1)
        assert not h.is_class_known(2)
開發者ID:,項目名稱:,代碼行數:11,代碼來源:

示例4: test_nonstandard_virtualizable

    def test_nonstandard_virtualizable(self):
        h = HeapCache()
        assert not h.is_nonstandard_virtualizable(1)
        assert not h.is_nonstandard_virtualizable(2)
        h.nonstandard_virtualizables_now_known(1)
        assert h.is_nonstandard_virtualizable(1)
        assert not h.is_nonstandard_virtualizable(2)

        h.reset()
        assert not h.is_nonstandard_virtualizable(1)
        assert not h.is_nonstandard_virtualizable(2)
開發者ID:,項目名稱:,代碼行數:11,代碼來源:

示例5: test_length_cache

    def test_length_cache(self):
        h = HeapCache()
        h.new_array(box1, lengthbox1)
        assert h.arraylen(box1) is lengthbox1

        assert h.arraylen(box2) is None
        h.arraylen_now_known(box2, lengthbox2)
        assert h.arraylen(box2) is lengthbox2
開發者ID:,項目名稱:,代碼行數:8,代碼來源:

示例6: test_heapcache_read_fields_multiple_array

    def test_heapcache_read_fields_multiple_array(self):
        h = HeapCache()
        h.getarrayitem_now_known(box1, descr1, index1, box2)
        h.getarrayitem_now_known(box3, descr1, index1, box4)
        assert h.getarrayitem(box1, descr1, index1) is box2
        assert h.getarrayitem(box1, descr2, index1) is None
        assert h.getarrayitem(box3, descr1, index1) is box4
        assert h.getarrayitem(box3, descr2, index1) is None

        h.reset()
        assert h.getarrayitem(box1, descr1, index1) is None
        assert h.getarrayitem(box1, descr2, index1) is None
        assert h.getarrayitem(box3, descr1, index1) is None
        assert h.getarrayitem(box3, descr2, index1) is None
開發者ID:,項目名稱:,代碼行數:14,代碼來源:

示例7: test_heapcache_read_fields_multiple

    def test_heapcache_read_fields_multiple(self):
        h = HeapCache()
        h.getfield_now_known(box1, descr1, box2)
        h.getfield_now_known(box3, descr1, box4)
        assert h.getfield(box1, descr1) is box2
        assert h.getfield(box1, descr2) is None
        assert h.getfield(box3, descr1) is box4
        assert h.getfield(box3, descr2) is None

        h.reset()
        assert h.getfield(box1, descr1) is None
        assert h.getfield(box1, descr2) is None
        assert h.getfield(box3, descr1) is None
        assert h.getfield(box3, descr2) is None
開發者ID:,項目名稱:,代碼行數:14,代碼來源:

示例8: test_circular_virtuals

 def test_circular_virtuals(self):
     h = HeapCache()
     h.new(box1)
     h.new(box2)
     h.invalidate_caches(rop.SETFIELD_GC, None, [box1, box2])
     h.invalidate_caches(rop.SETFIELD_GC, None, [box2, box1])
     h.invalidate_caches(rop.SETFIELD_GC, None, [box3, box1]) # does not crash
開發者ID:,項目名稱:,代碼行數:7,代碼來源:

示例9: test_heapcache_array_nonconst_index

 def test_heapcache_array_nonconst_index(self):
     h = HeapCache()
     h.setarrayitem(box1, descr1, index1, box2)
     h.setarrayitem(box1, descr1, index2, box4)
     assert h.getarrayitem(box1, descr1, index1) is box2
     assert h.getarrayitem(box1, descr1, index2) is box4
     h.setarrayitem(box1, descr1, box2, box3)
     assert h.getarrayitem(box1, descr1, index1) is None
     assert h.getarrayitem(box1, descr1, index2) is None
開發者ID:,項目名稱:,代碼行數:9,代碼來源:

示例10: test_replace_box_array

    def test_replace_box_array(self):
        h = HeapCache()
        h.setarrayitem(box1, descr1, index1, box2)
        h.setarrayitem(box1, descr2, index1, box3)
        h.arraylen_now_known(box1, lengthbox1)
        h.setarrayitem(box2, descr1, index2, box1)
        h.setarrayitem(box3, descr2, index2, box1)
        h.setarrayitem(box2, descr3, index2, box3)
        h.replace_box(box1, box4)
        assert h.getarrayitem(box1, descr1, index1) is None
        assert h.getarrayitem(box1, descr2, index1) is None
        assert h.arraylen(box1) is None
        assert h.arraylen(box4) is lengthbox1
        assert h.getarrayitem(box4, descr1, index1) is box2
        assert h.getarrayitem(box4, descr2, index1) is box3
        assert h.getarrayitem(box2, descr1, index2) is box4
        assert h.getarrayitem(box3, descr2, index2) is box4
        assert h.getarrayitem(box2, descr3, index2) is box3

        h.replace_box(lengthbox1, lengthbox2)
        assert h.arraylen(box4) is lengthbox2
開發者ID:,項目名稱:,代碼行數:21,代碼來源:

示例11: test_heapcache_fields

    def test_heapcache_fields(self):
        h = HeapCache()
        assert h.getfield(box1, descr1) is None
        assert h.getfield(box1, descr2) is None
        h.setfield(box1, descr1, box2)
        assert h.getfield(box1, descr1) is box2
        assert h.getfield(box1, descr2) is None
        h.setfield(box1, descr2, box3)
        assert h.getfield(box1, descr1) is box2
        assert h.getfield(box1, descr2) is box3
        h.setfield(box1, descr1, box3)
        assert h.getfield(box1, descr1) is box3
        assert h.getfield(box1, descr2) is box3
        h.setfield(box3, descr1, box1)
        assert h.getfield(box3, descr1) is box1
        assert h.getfield(box1, descr1) is None
        assert h.getfield(box1, descr2) is box3

        h.reset()
        assert h.getfield(box1, descr1) is None
        assert h.getfield(box1, descr2) is None
        assert h.getfield(box3, descr1) is None
開發者ID:,項目名稱:,代碼行數:22,代碼來源:

示例12: test_heapcache_arrays

    def test_heapcache_arrays(self):
        h = HeapCache()
        assert h.getarrayitem(box1, descr1, index1) is None
        assert h.getarrayitem(box1, descr2, index1) is None
        assert h.getarrayitem(box1, descr1, index2) is None
        assert h.getarrayitem(box1, descr2, index2) is None

        h.setarrayitem(box1, descr1, index1, box2)
        assert h.getarrayitem(box1, descr1, index1) is box2
        assert h.getarrayitem(box1, descr2, index1) is None
        assert h.getarrayitem(box1, descr1, index2) is None
        assert h.getarrayitem(box1, descr2, index2) is None
        h.setarrayitem(box1, descr1, index2, box4)
        assert h.getarrayitem(box1, descr1, index1) is box2
        assert h.getarrayitem(box1, descr2, index1) is None
        assert h.getarrayitem(box1, descr1, index2) is box4
        assert h.getarrayitem(box1, descr2, index2) is None

        h.setarrayitem(box1, descr2, index1, box3)
        assert h.getarrayitem(box1, descr1, index1) is box2
        assert h.getarrayitem(box1, descr2, index1) is box3
        assert h.getarrayitem(box1, descr1, index2) is box4
        assert h.getarrayitem(box1, descr2, index2) is None

        h.setarrayitem(box1, descr1, index1, box3)
        assert h.getarrayitem(box1, descr1, index1) is box3
        assert h.getarrayitem(box1, descr2, index1) is box3
        assert h.getarrayitem(box1, descr1, index2) is box4
        assert h.getarrayitem(box1, descr2, index2) is None

        h.setarrayitem(box3, descr1, index1, box1)
        assert h.getarrayitem(box3, descr1, index1) is box1
        assert h.getarrayitem(box1, descr1, index1) is None
        assert h.getarrayitem(box1, descr2, index1) is box3
        assert h.getarrayitem(box1, descr1, index2) is box4
        assert h.getarrayitem(box1, descr2, index2) is None

        h.reset()
        assert h.getarrayitem(box1, descr1, index1) is None
        assert h.getarrayitem(box1, descr2, index1) is None
        assert h.getarrayitem(box3, descr1, index1) is None
開發者ID:,項目名稱:,代碼行數:41,代碼來源:

示例13: test_unescaped_testing

 def test_unescaped_testing(self):
     h = HeapCache()
     h.new(box1)
     h.new(box2)
     assert h.is_unescaped(box1)
     assert h.is_unescaped(box2)
     # Putting a virtual inside of another virtual doesn't escape it.
     h.invalidate_caches(rop.SETFIELD_GC, None, [box1, box2])
     assert h.is_unescaped(box2)
     # Reading a field from a virtual doesn't escape it.
     h.invalidate_caches(rop.GETFIELD_GC, None, [box1])
     assert h.is_unescaped(box1)
     # Escaping a virtual transitively escapes anything inside of it.
     assert not h.is_unescaped(box3)
     h.invalidate_caches(rop.SETFIELD_GC, None, [box3, box1])
     assert not h.is_unescaped(box1)
     assert not h.is_unescaped(box2)
開發者ID:,項目名稱:,代碼行數:17,代碼來源:

示例14: test_unescaped

 def test_unescaped(self):
     h = HeapCache()
     assert not h.is_unescaped(box1)
     h.new(box2)
     assert h.is_unescaped(box2)
     h.invalidate_caches(rop.SETFIELD_GC, None, [box2, box1])
     assert h.is_unescaped(box2)
     h.invalidate_caches(rop.SETFIELD_GC, None, [box1, box2])
     assert not h.is_unescaped(box2)
開發者ID:,項目名稱:,代碼行數:9,代碼來源:

示例15: test_ll_arraycopy

    def test_ll_arraycopy(self):
        h = HeapCache()
        h.new_array(box1, lengthbox1)
        h.setarrayitem(box1, descr1, index1, box2)
        h.new_array(box2, lengthbox1)
        # Just need the destination box for this call
        h.invalidate_caches(
            rop.CALL,
            FakeCallDescr(FakeEffektinfo.EF_CANNOT_RAISE, FakeEffektinfo.OS_ARRAYCOPY),
            [None, None, box2, None, None]
        )
        assert h.getarrayitem(box1, descr1, index1) is box2
        h.invalidate_caches(
            rop.CALL,
            FakeCallDescr(FakeEffektinfo.EF_CANNOT_RAISE, FakeEffektinfo.OS_ARRAYCOPY),
            [None, None, box3, None, None]
        )
        assert h.getarrayitem(box1, descr1, index1) is None

        h.setarrayitem(box4, descr1, index1, box2)
        assert h.getarrayitem(box4, descr1, index1) is box2
        h.invalidate_caches(
            rop.CALL,
            FakeCallDescr(FakeEffektinfo.EF_CANNOT_RAISE, FakeEffektinfo.OS_ARRAYCOPY),
            [None, None, box2, None, None]
        )
        assert h.getarrayitem(box4, descr1, index1) is None
開發者ID:,項目名稱:,代碼行數:27,代碼來源:


注:本文中的pypy.jit.metainterp.heapcache.HeapCache類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。