我正在研究appengine-mapreduce函数,并修改了演示以符合我的目的.基本上我有以下格式的百万行:userid,time1,time2.我的目的是找到每个用户ID的time1和time2之间的差异.
但是,当我在Google App Engine上运行时,我在日志部分遇到了此错误消息:
在处理130个请求之后超过180.56 MB的软私有内存限制在处理此请求时,发现处理此请求的进程使用了太多内存并被终止.这可能会导致新进程用于您的应用程序的下一个请求.如果经常看到此消息,则可能是应用程序中存在内存泄漏.
def time_count_map(data):
"""Time count map function."""
(entry, text_fn) = data
text = text_fn()
try:
q = text.split('\n')
for m in q:
reader = csv.reader([m.replace('\0', '')], skipinitialspace=True)
for s in reader:
"""Calculate time elapsed"""
sdw = s[1]
start_date = time.strptime(sdw,"%m/%d/%y %I:%M:%S%p")
edw = s[2]
end_date = time.strptime(edw,"%m/%d/%y %I:%M:%S%p")
time_difference = time.mktime(end_date) - time.mktime(start_date)
yield (s[0], time_difference)
except IndexError, e:
logging.debug(e)
def time_count_reduce(key, values):
"""Time count reduce function."""
time = 0.0
for subtime in values:
time …Run Code Online (Sandbox Code Playgroud)