0
0 комментариев

Время при каждой «мутации» увеличивается. Вроде утечки памяти нет, но замеры между time4 и time5 постоянно показывают, что время увеличивается.
Размер массива DNA — 64 переменных типа integer, уменьшение шанса на мутацию не влияет на время работы цикла. Перенос мутации на else тоже не решает проблему.

def mutateDNA(DNA):
    new_DNA = []
    #print("MUTATION")
    time4 = time.time()
    mutateThis = 0
    for i in range(0, len(DNA)):
        mutateThis = randint(0, 3)
        if (mutateThis == 0):
            new_DNA.append(randint(0, 63))
        else:
            new_DNA.append(DNA[i])
 
    time5 = time.time()
    del(mutateThis)
    print(time5 - time4)
    return new_DNA

Вот вывод (знаки равно между итерациями «большого» внешнего цикла


0.01562643051147461
0.01562643051147461
0.0
0.021653413772583008
0.015788555145263672
0.015656471252441406
0.015621423721313477
=========================
0.015679359436035156
0.015599966049194336
0.015600442886352539
0.022176504135131836
0.03125405311584473
0.01562786102294922
=========================
0.03122878074645996
0.03125119209289551
0.022146224975585938
0.046883583068847656
0.03125262260437012
0.02214503288269043
=========================
0.031227588653564453
0.037775278091430664
0.0469059944152832
=========================
0.04687929153442383
=========================
0.046878814697265625
0.05339813232421875
=========================
0.06854963302612305
=========================
0.06250667572021484
=========================
0.08421540260314941
=========================
0.09986066818237305
=========================
0.07963871955871582
0.10028195381164551
=========================
0.11548662185668945
=========================
0.11590576171875
0.11590719223022461
0.11590766906738281
0.12193083763122559
0.1159067153930664
0.12375736236572266
0.11177182197570801
0.13081717491149902
0.11641263961791992
=========================
0.11092901229858398
0.1366746425628662
0.11582207679748535
0.13124656677246094
0.1312417984008789
0.12167000770568848
0.131209135055542
0.12032341957092285
0.14563250541687012
=========================
0.13000130653381348
0.1330409049987793
0.153731107711792
0.13151049613952637
0.14716219902038574
0.12192988395690918
0.14672231674194336
0.13774704933166504
0.14716744422912598
=========================
0.1515824794769287
0.13546419143676758
0.16278719902038574
=========================


Добавить комментарий