我有这3种显示移动条的方式,表示程序仍然在运行,即使它此刻没有输出。因为这个程序有可能变得非常复杂并且使用大量资源我并且调整每个组件以提高资源效率。我的问题是哪个资源效率最高?
代码段1,一个丑陋的if语句字符串:
spinner = 0
while True:
.
#do some work
.
sleep(5)
spinner += 1
if spinner == 11: spinner = 0
#-----end of common code------
if spinner == 1: print(' \r' + '█', end='\r')
if spinner == 2: print('██', end='\r')
if spinner == 3: print('███', end='\r')
if spinner == 4: print('████', end='\r')
if spinner == 5: print('█████', end='\r')
if spinner == 6: print('██████', end='\r')
if spinner == 7: print('███████', end='\r')
if spinner == 8: print('████████', end='\r')
if spinner == 9: print('█████████', end='\r')
if spinner == 10: print('██████████', end='\r')
代码段2,一个更漂亮的代码,但是对print()函数的调用更多:
bar = 0
print(' ', end='\r')
while bar < (spinner + 1):
print('█', end='')
bar += 1
代码段3,另一个使用不同资源的代码......
block = '█'
print(' \r' + block * spinner, end='\r')
我最初使用微调器通过打印|,/, - 和\来执行此操作,但是我无法从整个房间的服务器上的工作站看到它,所以我将其更改为此bar方法。顺便说一句,这就是变量被命名为'spinner'的原因......
答案 0 :(得分:0)
好吧,我想我会回答我自己的问题。我在这三个片段上做了一些基准测试,并且每个片段的平均迭代时间为100万次。你可以想象数字很小。小片1和3没有显着差异。我怀疑的片段2慢了大约10%。所以我决定使用代码片段3.鉴于它的代码行数较少,这就是硬盘和RAM的一小部分。我会拿走我能得到的东西!