File: bench_save.py

package info (click to toggle)
orange3 3.40.0-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 15,912 kB
  • sloc: python: 162,745; ansic: 622; makefile: 322; sh: 93; cpp: 77
file content (61 lines) | stat: -rw-r--r-- 2,016 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from functools import partial
import os

import numpy as np
import scipy.sparse

from Orange.data import Table, ContinuousVariable, Domain
from .base import Benchmark, benchmark


def save(table, fn):
    try:
        table.save(fn)
    finally:
        os.remove(fn)


class BenchSave(Benchmark):

    def setup_dense(self, rows, cols, varkwargs=None):
        if varkwargs is None:
            varkwargs = {}
        self.table = Table.from_numpy(  # pylint: disable=W0201
            Domain([ContinuousVariable(str(i), **varkwargs) for i in range(cols)]),
            np.random.RandomState(0).rand(rows, cols))

    def setup_sparse(self, rows, cols, varkwargs=None):
        if varkwargs is None:
            varkwargs = {}
        sparse = scipy.sparse.rand(rows, cols, density=0.01, format='csr', random_state=0)
        self.table = Table.from_numpy(  # pylint: disable=W0201
            Domain([ContinuousVariable(str(i), sparse=True, **varkwargs) for i in range(cols)]),
            sparse)

    @benchmark(setup=partial(setup_dense, rows=100, cols=10))
    def bench_print_dense(self):
        str(self.table)

    @benchmark(setup=partial(setup_dense, rows=100, cols=10,
                             varkwargs={"number_of_decimals": 2}))
    def bench_print_dense_decimals(self):
        str(self.table)

    @benchmark(setup=partial(setup_sparse, rows=100, cols=10), number=5)
    def bench_print_sparse(self):
        str(self.table)

    @benchmark(setup=partial(setup_sparse, rows=100, cols=10,
                             varkwargs={"number_of_decimals": 2}),
               number=5)
    def bench_print_sparse_decimals(self):
        str(self.table)

    @benchmark(setup=partial(setup_dense, rows=100, cols=100))
    def bench_save_tab(self):
        save(self.table, "temp_save.tab")

    @benchmark(setup=partial(setup_dense, rows=100, cols=100,
                             varkwargs={"number_of_decimals": 2}))
    def bench_save_tab_decimals(self):
        save(self.table, "temp_save.tab")