Last active
November 13, 2019 15:38
-
-
Save gnomezgrave/3aaa7e3b34e42aad95d6ccd9f4dd4b46 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import time | |
my_list = [i for i in range(0, 100000)] | |
def manipulate(element): | |
return element ** 2 | |
a0 = 0 | |
a1 = 0 | |
a2 = 0 | |
a3 = 0 | |
for j in range(0, 100): | |
now = time.time_ns() | |
s = [] | |
for i in my_list: | |
s.append(i ** 2) | |
a0 += time.time_ns() - now | |
now = time.time_ns() | |
t = [i**2 for i in my_list] | |
a1 += time.time_ns() - now | |
now = time.time_ns() | |
u = [manipulate(i) for i in my_list] | |
a2 += time.time_ns() - now | |
now = time.time_ns() | |
v = map(manipulate, my_list) | |
a3 += time.time_ns() - now | |
print("Iterating a list:", a0/100, "nanoseconds") | |
print("List Comp. with inline code:", a1/100, "nanoseconds") | |
print("List Comp. with function call:", a2/100, "nanoseconds") | |
print("Using map function:", a3/100, "nanoseconds") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from multiprocessing import JoinableQueue, Process | |
END_RECORD = "##" | |
class MyProcess(Process): | |
def __init__(self, queue): | |
super(self.__class__, self).__init__() | |
self._queue = queue | |
def run(self): | |
while True: | |
record = self._queue.get() | |
if record == END_RECORD: | |
self._queue.task_done() | |
break | |
self.consume(record) | |
self._queue.task_done() | |
def consume(self, record): | |
print(f"Record: {record}") | |
def get_records(): | |
for i in range(0, 100000): | |
yield i | |
if __name__ == '__main__': | |
my_queue = JoinableQueue() | |
my_process = MyProcess(my_queue) | |
my_process.start() | |
for r in get_records(): | |
print("Record is put to the queue:", r) | |
my_queue.put(r) | |
my_queue.put(END_RECORD) | |
my_process.join() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment