Với chuỗi đầu vào là
python -mtimeit -s"import time_functions" "time_functions.a['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.b['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.c['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.d['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.e['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.f['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.g['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.h['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.i['abc&def#ghi']"
2 và thay thế & -> \& và # -> \#, cách nhanh nhất là xâu chuỗi các thay thế lại với nhau như thế này. python -mtimeit -s"import time_functions" "time_functions.a['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.b['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.c['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.d['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.e['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.f['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.g['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.h['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.i['abc&def#ghi']"
3Thời gian cho từng chức năng
- a] 1000000 vòng lặp, tốt nhất là 3. 1. 47 μs mỗi vòng lặp
- b] 1000000 vòng, tốt nhất là 3. 1. 51 μs mỗi vòng lặp
- c] 100000 vòng, tốt nhất là 3. 12. 3 μs mỗi vòng lặp
- d] 100000 vòng, tốt nhất là 3. 12 μs mỗi vòng lặp
- e] 100000 vòng, tốt nhất là 3. 3. 27 μs mỗi vòng lặp
- f] 1000000 vòng lặp, tốt nhất là 3. 0. 817 μs mỗi vòng lặp
- g] 100000 vòng lặp, tốt nhất là 3. 3. 64 μs mỗi vòng lặp
- h] 1000000 vòng lặp, tốt nhất là 3. 0. 927 μs trên mỗi vòng lặp
- i] 1000000 vòng lặp, tốt nhất là 3. 0. 814 μs mỗi vòng lặp
Dưới đây là các chức năng
def a[text]:
chars = ""
for c in chars:
text = text.replace[c, "\\" + c]
def b[text]:
for ch in ['&','#']:
if ch in text:
text = text.replace[ch,"\\"+ch]
import re
def c[text]:
rx = re.compile['[[]]']
text = rx.sub[r'\\\1', text]
RX = re.compile['[[]]']
def d[text]:
text = RX.sub[r'\\\1', text]
def mk_esc[esc_chars]:
return lambda s: ''.join[['\\' + c if c in esc_chars else c for c in s]]
esc = mk_esc['']
def e[text]:
esc[text]
def f[text]:
text = text.replace['&', '\&'].replace['#', '\#']
def g[text]:
replacements = {"&": "\&", "#": "\#"}
text = "".join[[replacements.get[c, c] for c in text]]
def h[text]:
text = text.replace['&', r'\&']
text = text.replace['#', r'\#']
def i[text]:
text = text.replace['&', r'\&'].replace['#', r'\#']
Hẹn giờ như thế này
python -mtimeit -s"import time_functions" "time_functions.a['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.b['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.c['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.d['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.e['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.f['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.g['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.h['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.i['abc&def#ghi']"
Đây là mã tương tự để làm điều tương tự nhưng có nhiều ký tự hơn để thoát [\`*_{}>#+-. $]
def a[text]:
chars = "\\`*_{}[][]>#+-.!$"
for c in chars:
text = text.replace[c, "\\" + c]
def b[text]:
for ch in ['\\','`','*','_','{','}','[',']','[',']','>','#','+','-','.','!','$','\'']:
if ch in text:
text = text.replace[ch,"\\"+ch]
import re
def c[text]:
rx = re.compile['[[]]']
text = rx.sub[r'\\\1', text]
RX = re.compile['[[\\`*_{}[][]>#+-.!$]]']
def d[text]:
text = RX.sub[r'\\\1', text]
def mk_esc[esc_chars]:
return lambda s: ''.join[['\\' + c if c in esc_chars else c for c in s]]
esc = mk_esc['\\`*_{}[][]>#+-.!$']
def e[text]:
esc[text]
def f[text]:
text = text.replace['\\', '\\\\'].replace['`', '\`'].replace['*', '\*'].replace['_', '\_'].replace['{', '\{'].replace['}', '\}'].replace['[', '\['].replace[']', '\]'].replace['[', '\['].replace[']', '\]'].replace['>', '\>'].replace['#', '\#'].replace['+', '\+'].replace['-', '\-'].replace['.', '\.'].replace['!', '\!'].replace['$', '\$']
def g[text]:
replacements = {
"\\": "\\\\",
"`": "\`",
"*": "\*",
"_": "\_",
"{": "\{",
"}": "\}",
"[": "\[",
"]": "\]",
"[": "\[",
"]": "\]",
">": "\>",
"#": "\#",
"+": "\+",
"-": "\-",
".": "\.",
"!": "\!",
"$": "\$",
}
text = "".join[[replacements.get[c, c] for c in text]]
def h[text]:
text = text.replace['\\', r'\\']
text = text.replace['`', r'\`']
text = text.replace['*', r'\*']
text = text.replace['_', r'\_']
text = text.replace['{', r'\{']
text = text.replace['}', r'\}']
text = text.replace['[', r'\[']
text = text.replace[']', r'\]']
text = text.replace['[', r'\[']
text = text.replace[']', r'\]']
text = text.replace['>', r'\>']
text = text.replace['#', r'\#']
text = text.replace['+', r'\+']
text = text.replace['-', r'\-']
text = text.replace['.', r'\.']
text = text.replace['!', r'\!']
text = text.replace['$', r'\$']
def i[text]:
text = text.replace['\\', r'\\'].replace['`', r'\`'].replace['*', r'\*'].replace['_', r'\_'].replace['{', r'\{'].replace['}', r'\}'].replace['[', r'\['].replace[']', r'\]'].replace['[', r'\['].replace[']', r'\]'].replace['>', r'\>'].replace['#', r'\#'].replace['+', r'\+'].replace['-', r'\-'].replace['.', r'\.'].replace['!', r'\!'].replace['$', r'\$']
Đây là kết quả cho cùng một chuỗi đầu vào
python -mtimeit -s"import time_functions" "time_functions.a['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.b['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.c['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.d['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.e['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.f['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.g['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.h['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.i['abc&def#ghi']"
2- a] 100000 vòng lặp, tốt nhất là 3. 6. 72 μs mỗi vòng lặp
- b] 100000 vòng, tốt nhất là 3. 2. 64 μs mỗi vòng lặp
- c] 100000 vòng, tốt nhất là 3. 11. 9 μs mỗi vòng lặp
- d] 100000 vòng, tốt nhất là 3. 4. 92 μs mỗi vòng lặp
- e] 100000 vòng, tốt nhất là 3. 2. 96 μs mỗi vòng lặp
- f] 100000 vòng lặp, tốt nhất là 3. 4. 29 μs mỗi vòng lặp
- g] 100000 vòng lặp, tốt nhất là 3. 4. 68 μs mỗi vòng lặp
- h] 100000 vòng lặp, tốt nhất là 3. 4. 73 μs mỗi vòng lặp
- i] 100000 vòng, tốt nhất là 3. 4. 24 μs mỗi vòng lặp
Và với chuỗi đầu vào dài hơn [
python -mtimeit -s"import time_functions" "time_functions.a['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.b['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.c['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.d['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.e['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.f['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.g['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.h['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.i['abc&def#ghi']"
5]- a] 100000 vòng lặp, tốt nhất là 3. 7. 59 μs mỗi vòng lặp
- b] 100000 vòng, tốt nhất là 3. 6. 54 μs trên mỗi vòng lặp
- c] 100000 vòng, tốt nhất là 3. 16. 9 μs mỗi vòng lặp
- d] 100000 vòng, tốt nhất là 3. 7. 29 μs mỗi vòng lặp
- e] 100000 vòng, tốt nhất là 3. 12. 2 μs mỗi vòng lặp
- f] 100000 vòng lặp, tốt nhất là 3. 5. 38 μs mỗi vòng lặp
- g] 10000 vòng lặp, tốt nhất là 3. 21. 7 μs mỗi vòng lặp
- h] 100000 vòng lặp, tốt nhất là 3. 5. 7 μs mỗi vòng lặp
- i] 100000 vòng lặp, tốt nhất là 3. 5. 13 μs mỗi vòng lặp
Thêm một vài biến thể
def ab[text]:
for ch in ['\\','`','*','_','{','}','[',']','[',']','>','#','+','-','.','!','$','\'']:
text = text.replace[ch,"\\"+ch]
def ba[text]:
chars = "\\`*_{}[][]>#+-.!$"
for c in chars:
if c in text:
text = text.replace[c, "\\" + c]
Với đầu vào ngắn hơn
- ab] 100000 vòng, tốt nhất là 3. 7. 05 μs mỗi vòng lặp
- ba] 100000 vòng lặp, tốt nhất là 3. 2. 4 μs mỗi vòng lặp
Với đầu vào dài hơn
- ab] 100000 vòng, tốt nhất là 3. 7. 71 μs mỗi vòng lặp
- ba] 100000 vòng lặp, tốt nhất là 3. 6. 08 μs mỗi vòng lặp
Vì vậy, tôi sẽ sử dụng
python -mtimeit -s"import time_functions" "time_functions.a['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.b['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.c['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.d['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.e['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.f['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.g['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.h['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.i['abc&def#ghi']"
0 để dễ đọc và tốc độĐược thúc đẩy bởi các mẹo trong phần nhận xét, một điểm khác biệt giữa
python -mtimeit -s"import time_functions" "time_functions.a['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.b['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.c['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.d['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.e['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.f['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.g['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.h['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.i['abc&def#ghi']"
1 và python -mtimeit -s"import time_functions" "time_functions.a['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.b['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.c['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.d['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.e['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.f['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.g['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.h['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.i['abc&def#ghi']"
0 là kiểm tra python -mtimeit -s"import time_functions" "time_functions.a['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.b['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.c['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.d['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.e['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.f['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.g['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.h['abc&def#ghi']"
python -mtimeit -s"import time_functions" "time_functions.i['abc&def#ghi']"
3. Hãy thử nghiệm chúng với hai biến thể nữaThời gian tính bằng μs trên mỗi vòng lặp trên Python 2. 7. 14 và 3. 6. 3 và trên một máy khác với bộ trước đó, vì vậy không thể so sánh trực tiếp
╭────────────╥──────┬───────────────┬──────┬──────────────────╮
│ Py, input ║ ab │ ab_with_check │ ba │ ba_without_check │
╞════════════╬══════╪═══════════════╪══════╪══════════════════╡
│ Py2, short ║ 8.81 │ 4.22 │ 3.45 │ 8.01 │
│ Py3, short ║ 5.54 │ 1.34 │ 1.46 │ 5.34 │
├────────────╫──────┼───────────────┼──────┼──────────────────┤
│ Py2, long ║ 9.3 │ 7.15 │ 6.85 │ 8.55 │
│ Py3, long ║ 7.43 │ 4.38 │ 4.41 │ 7.02 │
└────────────╨──────┴───────────────┴──────┴──────────────────┘
Chúng ta có thể kết luận rằng
Những người có séc nhanh hơn tới 4 lần so với những người không có séc
4 dẫn đầu một chút về Python 3, nhưngpython -mtimeit -s"import time_functions" "time_functions.a['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.b['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.c['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.d['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.e['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.f['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.g['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.h['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.i['abc&def#ghi']"
0 [có kiểm tra] dẫn đầu nhiều hơn về Python 2python -mtimeit -s"import time_functions" "time_functions.a['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.b['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.c['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.d['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.e['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.f['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.g['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.h['abc&def#ghi']" python -mtimeit -s"import time_functions" "time_functions.i['abc&def#ghi']"
Tuy nhiên, bài học lớn nhất ở đây là Python 3 nhanh hơn Python 2 tới 3 lần. Không có sự khác biệt lớn giữa chậm nhất trên Python 3 và nhanh nhất trên Python 2