'How can I use threads to get a better performance in python
I wrote a short code that just generate random numbers and allocate them in arrays. Is there a way to make the timers that I print be lower with threads?
Im relatively new in python so if you know how I would love for some pointers :)
import struct
import os
import time
import numpy as np
data_lines = 3000000
buff_x2 = np.random.rand(4 * data_lines)
buff_y2 = np.random.rand(4 * data_lines)
buff_z2 = np.random.rand(4 * data_lines)
buff_r2 = np.random.rand(data_lines)
buff_g2 = np.random.rand(data_lines)
buff_b2 = np.random.rand(data_lines)
start = time.time()
buff_x_breakdown = [buff_x2[i:i + 4] for i in range(0, 4 * data_lines, 4)]
buff_y_breakdown = [buff_y2[i:i + 4] for i in range(0, 4 * data_lines, 4)]
buff_z_breakdown = [buff_z2[i:i + 4] for i in range(0, 4 * data_lines, 4)]
buff_r_breakdown = [buff_r2[i] for i in range(0, data_lines, 1)]
buff_g_breakdown = [buff_g2[i] for i in range(0, data_lines, 1)]
buff_b_breakdown = [buff_b2[i] for i in range(0, data_lines, 1)]
end = time.time()
print(end - start)
xyz = np.zeros((data_lines, 3))
colors = np.zeros((data_lines, 3))
start = time.time()
for i in range(data_lines):
xyz[i, 0] = buff_x_breakdown[i][0]
xyz[i, 1] = buff_y_breakdown[i][0]
xyz[i, 2] = buff_z_breakdown[i][0]
colors[i, 0] = float(buff_r_breakdown[i]) / 255.0
colors[i, 1] = float(buff_g_breakdown[i]) / 255.0
colors[i, 2] = float(buff_b_breakdown[i]) / 255.0
end = time.time()
print(end - start)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
