Exemple #1
0
def run_multiple_random_inserts():
    from pyrsistent import _pvector as _pvector

    indices = [2, 405, 56, 5067, 15063, 7045, 19999, 10022, 6000, 4023]
    for x in range(4):
        indices.extend([i + 318 for i in indices])

    print("Number of accesses: %s" % len(indices))
    print("Number of elements in vector: %s" % max(indices))

    original = _pvector(range(max(indices) + 1))
    original2 = _pvector(range(max(indices) + 1))

    # Using ordinary set
    start = time.time()
    new = original
    for r in range(10000):
        for i in indices:
            new = new.set(i, 0)
    print("Done simple, time=%s s, iterations=%s" %
          (time.time() - start, 10000 * len(indices)))
    assert original == original2

    # Using setter view
    start = time.time()
    evolver = original.evolver()
    for r in range(10000):
        for i in indices:
            evolver[i] = 0
    new2 = evolver.persistent()
    print("Done evolver, time=%s s, iterations=%s" %
          (time.time() - start, 10000 * len(indices)))

    assert original == original2

    def interleave(it1, it2):
        for i in zip(it1, it2):
            for j in i:
                yield j

    # Using mset
    start = time.time()
    new3 = original
    args = list(interleave(indices, repeat(0)))
    for _ in range(10000):
        new3 = new3.mset(*args)
    print("Done mset, time=%s s, iterations=%s" %
          (time.time() - start, 10000 * len(args) / 2))

    assert list(new) == list(new2)
    assert list(new2) == list(new3)
def run_multiple_random_inserts():
    from pyrsistent import _pvector as _pvector

    indices = [2, 405, 56, 5067, 15063, 7045, 19999, 10022, 6000, 4023]
    for x in range(4):
        indices.extend([i+318 for i in indices])

    print("Number of accesses: %s" % len(indices))
    print("Number of elements in vector: %s" % max(indices))

    original = _pvector(range(max(indices) + 1))
    original2 = _pvector(range(max(indices) + 1))

    # Using ordinary set
    start = time.time()
    new = original
    for r in range(10000):
        for i in indices:
            new = new.set(i, 0)
    print("Done simple, time=%s s, iterations=%s" % (time.time() - start, 10000 * len(indices)))
    assert original == original2

    # Using setter view
    start = time.time()
    evolver = original.evolver()
    for r in range(10000):
        for i in indices:
            evolver[i] = 0
    new2 = evolver.persistent()
    print("Done evolver, time=%s s, iterations=%s" % (time.time() - start, 10000 * len(indices)))

    assert original == original2

    def interleave(it1, it2):
        for i in zip(it1, it2):
            for j in i:
                yield j

    # Using mset
    start = time.time()
    new3 = original
    args = list(interleave(indices, repeat(0)))
    for _ in range(10000):
        new3 = new3.mset(*args)
    print("Done mset, time=%s s, iterations=%s" % (time.time() - start, 10000 * len(args)/2))

    assert list(new) == list(new2)
    assert list(new2) == list(new3)
def _large_native_vector():
    large_native_vector = _pvector(range(2000))
def create_empty_native_pvector():
    for x in range(1000):
        _ = _pvector()
Exemple #5
0
def _small_python_vector():
    small_python_vector = _pvector(range(10))
def append_native_pvector():
    v = _pvector()
    for x in range(100):
        v = v.append(x)
def create_large_native_pvector():
    for x in range(10):
        _ = _pvector(large_list)
def create_small_native_pvector():
    for x in range(100):
        _ = _pvector(small_list)
Exemple #9
0
def create_large_native_pvector():
    for x in range(10):
        _ = _pvector(large_list)
Exemple #10
0
def create_small_python_pvector():
    for x in range(100):
        _ = _pvector(small_list)
Exemple #11
0
def create_small_native_pvector():
    for x in range(100):
        _ = _pvector(small_list)
Exemple #12
0
def create_empty_python_pvector():
    for x in range(1000):
        _ = _pvector()
Exemple #13
0
def _large_python_vector():
    large_python_vector = _pvector(range(2000))
Exemple #14
0
def _large_native_vector():
    large_native_vector = _pvector(range(2000))
Exemple #15
0
def create_empty_native_pvector():
    for x in range(1000):
        _ = _pvector()
def _large_python_vector():
    large_python_vector = _pvector(range(2000))
def create_empty_python_pvector():
    for x in range(1000):
        _ = _pvector()
Exemple #18
0
def create_large_python_pvector():
    for x in range(10):
        _ = _pvector(large_list)
def create_small_python_pvector():
    for x in range(100):
        _ = _pvector(small_list)
Exemple #20
0
def append_native_pvector():
    v = _pvector()
    for x in range(100):
        v = v.append(x)
def create_large_python_pvector():
    for x in range(10):
        _ = _pvector(large_list)
Exemple #22
0
def append_python_pvector():
    v = _pvector()
    for x in range(100):
        v = v.append(x)
def append_python_pvector():
    v = _pvector()
    for x in range(100):
        v = v.append(x)
def _small_native_vector():
    small_native_vector = _pvector(range(10))
def _small_python_vector():
    small_python_vector = _pvector(range(10))
Exemple #26
0
def _small_native_vector():
    small_native_vector = _pvector(range(10))