小编aut*_*ard的帖子

使用appengine-mapreduce命中内存限制

我正在研究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)

python google-app-engine memory-management mapreduce

8
推荐指数
2
解决办法
1325
查看次数