Crashlytics没有抓住Out Of Memory

时间:2016-10-30 20:32:11

标签: ios out-of-memory crashlytics

我使用Crashlytics(3.8.3)和Answers(1.3.3)。它可以捕获除OOM崩溃之外的所有崩溃。 我使用下一个代码来调用OOM:

from scipy import optimize as op
from scipy.integrate import trapz as intg
import numpy as np
import multiprocessing as mp
import random
import timeit
import time

def to_solve(a=None, x=None, y=None):
    return intg(a*y, x)-20

def worker(lst, x,  out_q):
    ans = np.zeros(shape=(len(lst), 2))
    for i, a in enumerate(lst):
        y = func(a=a, x=x)
        ans[i,0] = a
        ans[i,1] = op.newton(func=to_solve,  x0=1,  args=(x, y))
    out_q.put(ans)

def func(a=None, x=None):
    return 1-np.exp(-a*x)

def main_p(nums):
    start = timeit.default_timer()
    x = np.linspace(0,100)
    procs = []
    out_q = mp.Queue()
    num_procs = 2
    step = int(len(nums)/num_procs)
    first = 0
    last  = 0
    for i in range(num_procs):
        first = last
        last = first+step
        if i == num_procs-1:
            out = nums[first:]
        else:
            out = nums[first:last]
        p = mp.Process(target=worker, args=(out, x, out_q))
        procs.append(p)
        p.start()        
    for p in procs:
        p.join()
    for i in range(len(procs)):
        if i == 0:
            results = out_q.get()
        else:
            results = np.vstack((results, out_q.get()))
    results = results[results[:,0].argsort()]
    print timeit.default_timer() - start
    return results

def main_s(nums):
    start = timeit.default_timer()
    results = np.zeros(shape=(len(nums),2))
    x = np.linspace(0,100)
    for i, a in enumerate(nums):
        results[i,0] = a
        y = func(a=a, x=x)
        results[i,1] = op.newton(func=to_solve,  x0=1,  args=(x,y))
    results = results[results[:,0].argsort()]
    print timeit.default_timer() - start    
    return results

if __name__ == '__main__':
    num  = 400
    nums = np.random.rand(1,num)
    nums = nums.tolist()[0]
    a = main_s(nums)
    b = main_p(nums)

应用程序在内存不足时终止。但是我没有在仪表板上看到有关OOM崩溃的信息。

为什么会这样?为什么我在仪表板上看不到OOM事件?

如果有人遇到同样的问题或者您在Crashlytics仪表板上看到OOM事件,请写信。

1 个答案:

答案 0 :(得分:1)

我有一个应用程序,我在崩解剂中看到了OOM。它在选择应用程序时出现在结构中 - >崩溃 - >过去7天 - >详情请见。

enter image description here