-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstrings_accumulation.py
More file actions
95 lines (70 loc) · 2.57 KB
/
strings_accumulation.py
File metadata and controls
95 lines (70 loc) · 2.57 KB
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
78
79
80
81
82
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cStringIO
small_emps=[
["Maray", "Jane"],
["jenny", "doe"],
["Alice","johnson"]
]
big_emps=small_emps[::]
for i in xrange(6):
big_emps += big_emps
print '#'*15
print 'Employee List Sizes:'
print 'tsmall_emps size=%i'%(len(small_emps))
print 'tbig_emps size=%i\n'%(len(big_emps))
def accumulate_str(employees):
emp_table='<table>\n'
for l_name, f_name in employees:
emp_table+='\t<tr><td>%s, %s</td></tr>\n' % (l_name, f_name)
emp_table+='</table>'
return emp_table
def accumulate_list(employees):
items=['<table>\n']
for l_name, f_name in employees:
items.append('\t<tr><td>%s, %s</td></tr>\n'%(l_name, f_name))
items.append('</table>')
emp_table= ''.join(items)
return emp_table
def accumulate_cStringIO(employees):
emp_table=cStringIO.StringIO()
emp_table.write('<table>\n')
for l_name, f_name in employees:
emp_table.write('\t<tr><td>%s, %s</td></tr>\n'%(l_name, f_name))
emp_table.write('</table>')
emp_table_s=emp_table.getvalue()
emp_table.close()
return emp_table_s
if __name__ == '__main__':
import timeit
print '#'*15
print 'Small employee_list test...'
print 'tDefault String Accumulation'
t = timeit.Timer("accumulate_str(small_emps)",
"from __main__ import accumulate_str, small_emps")
print "tElapsed time: %0.5s\n"%t.timeit(number=50000)
print "tDefault List Accumulation"
t = timeit.Timer("accumulate_list(small_emps)",
"from __main__ import accumulate_list, small_emps")
print "tElapsed time: %0.5s\n"%t.timeit(number=50000)
print "tCStringIO Accumulation"
t = timeit.Timer("accumulate_cStringIO(small_emps)",
"from __main__ import accumulate_cStringIO, small_emps")
print "tElapsed time: %0.5s\n"%t.timeit(number=50000)
##########################
# BIG EMPLOYEE LIST TEST #
##########################
print '#'*15
print 'Big employee_list test...'
print "tDefault String Accumulation"
t = timeit.Timer("accumulate_str(big_emps)",
"from __main__ import accumulate_str, big_emps")
print "tElapsed time: %0.5s\n"%t.timeit(number=50000)
print "tDefault List Accumulation"
t = timeit.Timer("accumulate_list(big_emps)",
"from __main__ import accumulate_list, big_emps")
print "tElapsed time: %0.5s\n"%t.timeit(number=50000)
print "tCStringIO Accumulation"
t = timeit.Timer("accumulate_cStringIO(big_emps)",
"from __main__ import accumulate_cStringIO, big_emps")
print "tElapsed time: %0.5s\n"%t.timeit(number=50000)