Ограничить использование процессора и оперативной памяти Cython? - PullRequest
0 голосов
/ 22 марта 2020

Недавно я установил Cython и использую его для ускорения моей программы python (тест на простоту). Поскольку я даю небольшое число, оно работает нормально и работает намного быстрее. Но, получив такое огромное количество, мой компьютер начал зависать, когда процессор и оперативная память достигают 100%.

Есть ли способ ограничить использование процессора и оперативной памяти Cython?

Вот мой код путь (на языке Cython):

from math import *

cpdef trial_factoring(float M, float p, list bits_list):
    cdef float t
    t = sqrt((M+1)*2)

    cdef float k_range
    k_range = (t-1)//(2*p)

    cdef float k
    k = 1 

    cdef list potential_filter
    potential_filter = []                   

    cdef float potential

    while k <= k_range:
        potential = 2*k*p + 1
        if potential % 8 == 3 or potential % 8 == 5:
            pass
        else:
            potential_filter.append(potential)
        k += 1

    cdef int a
    a = 1   

    cdef int factor
    cdef int i

    for factor in potential_filter:
        for i in range(len(bits_list)):
            a *= a                  
            if bits_list[i] == 1:        
                a *= 2              
                a %= factor         

        if a == 1:                  
            return False            

    return True                     
...