为什么Python regex在aws实例上比本地mac OS X慢5倍?

2024-09-30 16:28:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的正则表达式代码。你知道吗

#!/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驱动器)

aws实例(m4.xlarge,ebs\u优化)

本地ubuntu(2核,8GB RAM)

数字海洋(1核,512MB RAM)

花费的时间

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

正如你所看到的,AWS比我的其他机器要花大约5倍的时间。你知道吗

我在用python2.7。你能告诉我怎么了吗?有那么糟吗?如何检查我的m4.xlarge有什么问题?你知道吗

谢谢


Tags: importreinputstringtimeunicodestartur