Skip to main content
 首页 » 编程设计

python之为什么 Python 正则表达式在 aws 实例上比具有类似规范的本地 mac OS X 慢 5 倍

2024年08月22日38qq号

我有以下正则表达式代码。

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
 
import time 
import re 
 
start_time = time.time() 
 
input_string = """သီဟိုဠ်မှ ဉာဏ်ကြီးရှင်သည် အာယုဝဍ်ဎနဆေးညွှန်းစာကို ဇလွန်ဈေးဘေးဗာဒံပင်ထက် အဓိဋ္ဌာန်လျက် ဂဃနဏဖတ်ခဲ့သည်။""" 
 
if type(input_string) is not unicode: 
    input_string = unicode(input_string, "utf8") 
 
input_string = re.sub(ur"([\u1000-\u104F])\s+(?=[\u1000-\u104F])", r"\1", input_string) 
 
input_string = re.sub(ur"\u103A\u1037", u"\u1037\u103A", input_string) 
input_string = re.sub(ur"\u1036\u102F", u"\u102F\u1036", input_string) 
 
input_string = re.sub(ur"[\u200B\u200C]", "", input_string) 
 
input_string = re.sub(ur"([\u102D\u102E])\u1030", ur"\1\u102F", input_string) 
 
input_string = re.sub(ur"(\u1047)(?=[\u1000-\u101C\u101E-\u102A\u102C\u102E-\u103F\u104C-\u109F\u0020])", u"\u101B", input_string) 
input_string = re.sub(ur"\u1031\u1047", u"\u1031\u101B", input_string) 
 
print "time taken -> %s" % (time.time() - start_time) 

基准

我的本​​地 Mac(3.2 GHz Intel Core i5,16 GB 1867 MHz DDR3 和 Fusion Drive)

aws 实例(m4.xlarge,ebs_optimized)

本地 ubuntu(2 核,8GB RAM)

digital ocean (1核,512MB RAM)

耗时

+---------------+-------------------+ 
|      OS       |       TIME        | 
+---------------+-------------------+ 
| Mac           | 0.00268292427063  | 
| AWS           |  0.0100150108337  | 
| Local Ubuntu  | 0.00330495834351  | 
| Digital Ocean |  0.00202393531799 | 
+---------------+-------------------+ 

如您所见,AWS 的运行时间比我的其他机器长约 5 倍。

我正在使用 python2.7。你能给我解释一下哪里出了问题吗? aws 实例有那么糟糕吗?如何检查我的 m4.xlarge 有什么问题?

谢谢

请您参考如下方法:

问题是我在 aws 实例上使用的是 python 2.7.3。在我更新到 2.7.10 后,它现在和我的其他机器一样快。

干杯。