我有一个测试python脚本。在我的笔记本电脑Asus K73E CPU i5-2340M(2个内核,2.40 GHz)8MB RAM上,该脚本执行9.8秒。我认为这太多了,应该购买性能更高的台式PC:AMD Ryzen 5 2600(6个内核3.4GHz)和18MB RAM PC-24300。 在相同的脚本上运行并感到震惊:脚本执行了8.6秒。
新硬件的性能要高得多。为什么此股票执行时间减少了这么多?
我知道如何将脚本优化为小于一秒的值-可以在列表中添加一行,在这种情况下,脚本的运行时间为0.186,变为0.126-生产力的提高也不是很大
我很困惑。什么是主意?
import time
class Profiler(object):
def __enter__(self):
self._startTime = time.time()
def __exit__(self, type, value, traceback):
print("Elapsed time: {:.3f} sec".format(time.time() - self._startTime))
def cycle():
query = ''
elem = {'sec_code' : "test", 'face_unit' : "test", 'class_code' : "test", 'code' : "test", 'scale' : 'test', 'face_value':'test',
'lot_size': "test", 'short_name' : 'test', 'name': "test", 'min_price_step' : 'test', 'isin_code': 'test', 'class_name' : 'test', 'mat_date': 'test'}
for i in range(45000):
query = query+ "insert into securyties(sec_code, face_unit, class_code,code, scale, face_value, lot_size,short_name," \
"name,min_price_step,isin_code,class_name,mat_date)" \
"values ('{}', '{}', '{}', '{}', {}, {}, {}, '{}', '{}', {}, '{}', '{}', '{}') ON CONFLICT DO NOTHING;".format(
elem['sec_code'],
elem['face_unit'],
elem['class_code'],
elem['code'],
elem['scale'],
elem['face_value'],
elem['lot_size'],
elem['short_name'].replace("'", ""),
elem['name'].replace("'", ""),
elem['min_price_step'],
elem['isin_code'],
elem['class_name'], elem['mat_date'])
#print (''.join(query))
if __name__ == "__main__":
with Profiler() as p:
cycle()