File: unicode-bench.py

package info (click to toggle)
pypy3 7.3.19%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 212,236 kB
  • sloc: python: 2,098,316; ansic: 540,565; sh: 21,462; asm: 14,419; cpp: 4,451; makefile: 4,209; objc: 761; xml: 530; exp: 499; javascript: 314; pascal: 244; lisp: 45; csh: 12; awk: 4
file content (77 lines) | stat: -rw-r--r-- 1,732 bytes parent folder | download | duplicates (5)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

import time

LGT = 100

unicodes = [unicode("u" * LGT + str(i)) for i in range(100)]
non_ascii_unicodes = [u"u" * LGT + unicode(i) + u"å" for i in range(100)]

long_string = u" " * 1000000
unicodes = [long_string] * 100

RANGE = 250000000 // LGT

def upper(main_l):
    l = [None] * 1000
    for i in xrange(RANGE):
        l[i % 1000] = main_l[i % 100].upper()

def lower(main_l):
    l = [None]
    for i in xrange(RANGE):
        l[0] = main_l[i % 100].lower()

def islower(main_l):
    l = [None]
    for i in xrange(RANGE * 3):
        l[0] = main_l[i % 100].islower()

def title(main_l):
    l = [None]
    for i in xrange(RANGE):
        l[0] = main_l[i % 100].title()

def add(main_l):
    l = [None]
    for i in xrange(RANGE):
        l[0] = main_l[i % 100] + u"foo"

def find(main_l):
    l = [None]
    for i in xrange(RANGE):
        l[0] = main_l[i % 100].find(u"foo")

def split(main_l):
    l = [None]
    for i in xrange(RANGE):
        l[0] = main_l[i % 100].split()

def splitlines(main_l):
    l = [None]
    for i in xrange(RANGE):
        l[0] = main_l[i % 100].splitlines()

def iter(main_l):
    l = [None]
    for i in xrange(RANGE // 10000):
        for elem in main_l[i % 100]:
            l[0] = elem

def indexing(main_l):
    l = [None]
    for i in xrange(RANGE * 10):
        l[0] = main_l[i % 100][13]

def isspace(main_l):
    l = [None]
    for i in xrange(RANGE // 10000):
        l[0] = main_l[i % 100].isspace()    

for func in [isspace]:#, lower, isupper, islower]:
    t0 = time.time()
    func(unicodes)
    t1 = time.time()
    print "ascii %s %.2f" % (func.__name__, t1 - t0)
    #func(non_ascii_unicodes)
    #t2 = time.time()
    #print "non-ascii %s %.2f" % (func.__name__, t2 - t1)