আমি ভাবছিলাম যে বিভিন্ন পদ্ধতির রানটাইমের তুলনা করা কার্যকর হতে পারে তাই আমি একটি বেঞ্চমার্ক তৈরি করেছি ( সরল_ব্যাঞ্চমার্ক লাইব্রেরি ব্যবহার করে )
আমি) বেঞ্চমার্কে 2 টি উপাদান রয়েছে up
যেমন আপনি সূচক অনুসারে টিপলস থেকে প্রথম উপাদানটি বেছে নেওয়ার প্রত্যাশা করতে পারেন 0
ঠিক ঠিক 2 মান প্রত্যাশা করে আনপ্যাকিং সমাধানের খুব দ্রুত সমাধান হতে দেখায়
import operator
import random
from simple_benchmark import BenchmarkBuilder
b = BenchmarkBuilder()
@b.add_function()
def rakesh_by_index(l):
return [i[0] for i in l]
@b.add_function()
def wayneSan_zip(l):
return list(list(zip(*l))[0])
@b.add_function()
def bcattle_itemgetter(l):
return list(map(operator.itemgetter(0), l))
@b.add_function()
def ssoler_upacking(l):
return [idx for idx, val in l]
@b.add_function()
def kederrack_unpacking(l):
return [f for f, *_ in l]
@b.add_arguments('Number of tuples')
def argument_provider():
for exp in range(2, 21):
size = 2**exp
yield size, [(random.choice(range(100)), random.choice(range(100))) for _ in range(size)]
r = b.run()
r.plot()
দ্বিতীয়) বেঞ্চমার্কে 2 বা ততোধিক উপাদান রয়েছে up
import operator
import random
from simple_benchmark import BenchmarkBuilder
b = BenchmarkBuilder()
@b.add_function()
def kederrack_unpacking(l):
return [f for f, *_ in l]
@b.add_function()
def rakesh_by_index(l):
return [i[0] for i in l]
@b.add_function()
def wayneSan_zip(l):
return list(list(zip(*l))[0])
@b.add_function()
def bcattle_itemgetter(l):
return list(map(operator.itemgetter(0), l))
@b.add_arguments('Number of tuples')
def argument_provider():
for exp in range(2, 21):
size = 2**exp
yield size, [tuple(random.choice(range(100)) for _
in range(random.choice(range(2, 100)))) for _ in range(size)]
from pylab import rcParams
rcParams['figure.figsize'] = 12, 7
r = b.run()
r.plot()