Подскажите как можно максимально ускорить код используя все возможные методы python
у меня есть код в котором я пытаюсь максимально ускорить работу функции bubble :
import random
import time
import numpy as np
from numba import njit
from numba import config, njit, threading_layer, set_num_threads, cuda
import threading
config.THREADING_LAYER = 'threadsafe'
nthreads = 12
all_time = 0.0
all_numbers = 0.0
N = 500
#Функция
@njit(fastmath=True,nopython=True,nogil=True, cache=True,parallel = True )
def bubble(array, len):
for i in range(len):
for j in range(0, len-i-1):
if array[j] > array[j+1]:
temp = array[j]
array[j] = array[j+1]
array[j+1] = temp
def num():
global all_time
global all_numbers
int_numbers = []
#Запись рандомов
f = open("1.txt", 'w')
for i in range(N):
f.write(str(random.randint(1, 10000)) + ' ')
f.close()
#чтение рандомов
f = open("1.txt", 'r')
numbers = f.read().split(' ')
f.close()
#Перевод рандомов в инт
for i in numbers:
try:
int_numbers.append(int(i))
except:
pass
#Сортировка
start = time.time()
bubble(int_numbers, len(int_numbers))
end = time.time() - start
print(end)
print(np.mean(int_numbers))
#Запись сортировки
f = open("2.txt", 'w' , encoding = 'UTF-8')
for i in int_numbers:
f.write(str(i) + ' ')
f.write("\n---Выполнение заняло %s секунд --- " % (time.time() - start))
f.write(str(np.mean(int_numbers)))
#подсчет
all_time = all_time + time.time() - start
all_numbers = all_numbers + np.mean(int_numbers)
for i in range(50):
num()
print(all_time/50)
print(all_numbers/50)
На данный момент лучший средний результат 0.003 секунды .
Как можно сделать код еще более быстрым ?