Skip to content

Instantly share code, notes, and snippets.

@kosmosr
Created June 30, 2018 03:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kosmosr/c7e1662b28e6ed1201f44134975a0f6d to your computer and use it in GitHub Desktop.
Save kosmosr/c7e1662b28e6ed1201f44134975a0f6d to your computer and use it in GitHub Desktop.
python 多种字符串连接性能测试
#!/usr/bin/env python
# encoding: utf-8
"""
@author: zmh
@time: 2018/6/30 10:29
"""
import threading
import time
def str1():
thread_name = threading.current_thread().getName()
start = time.clock()
for i in list(range(100000)):
a = 'python'
b = 'str'
r = a + b + a + b + a + b + a + b + a + b + a + b + a + b + a + b + a + b + a + b
end = time.clock()
print('%s:加号:所费时间:%.4f' % (thread_name, end - start))
def str2():
thread_name = threading.current_thread().getName()
start = time.clock()
for i in list(range(100000)):
a = 'python'
b = 'str'
r = '%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s' % (a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b)
end = time.clock()
print('%s:操作符:所费时间:%.4f' % (thread_name, end - start))
def str3():
thread_name = threading.current_thread().getName()
start = time.clock()
for i in list(range(100000)):
a = 'python'
b = 'str'
r = '{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}{}'.format(a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b, a, b)
end = time.clock()
print('%s:format方法:所费时间:%.4f' % (thread_name, end - start))
def str4():
thread_name = threading.current_thread().getName()
start = time.clock()
for i in list(range(100000)):
a = 'python'
b = 'str'
r = f'{a}{b}{a}{b}{a}{b}{a}{b}{a}{b}{a}{b}{a}{b}{a}{b}{a}{b}{a}{b}'
end = time.clock()
print('%s:f-string:所费时间:%.4f' % (thread_name, end - start))
def str5():
thread_name = threading.current_thread().getName()
start = time.clock()
for i in list(range(100000)):
a = 'python'
b = 'str'
r = ''.join([a, b, a, b, a, b, a, b, a, b, a, b, a, b])
end = time.clock()
print('%s:str.join:所费时间:%.4f' % (thread_name, end - start))
if __name__ == '__main__':
t1 = threading.Thread(target=str1, name='thread 1')
t1.start()
t2 = threading.Thread(target=str2, name='thread 2')
t2.start()
t3 = threading.Thread(target=str3, name='thread 3')
t3.start()
t4 = threading.Thread(target=str4, name='thread 4')
t4.start()
t5 = threading.Thread(target=str5, name='thread 5')
t5.start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment