Symfonyob娱乐下载 4.4新增功能:更好地控制控制台进度条
11月8日·发表的哈维尔Eguiluz
进度条是最受欢迎的功能之一控制台组件.它们允许在命令运行时显示进度信息,这对于长时间运行的命令非常理想。
创建进度条时最困难的事情是如何使用setRedrawFrequency ()
方法。如果你经常重画它,进度条会闪烁太多,但如果你不经常重画它,进度条看起来没有反应。
另一个问题是,有时你不知道命令执行的速度有多快或多慢(例如,下载某些文件,复制文件等)。
在Syob娱乐下载mfony 4.4中,我们用两个新方法改进了Symfony控制台进度条,帮助你控制重绘频率:
1 2 3 4 5 6 7 8
使用ob娱乐下载\组件\控制台\助手\ProgressBar;$progressBar=新ProgressBar ($输出,50000);$progressBar->开始();$progressBar->setRedrawFrequency (One hundred.);$progressBar->minSecondsBetweenRedraws (0.1);$progressBar->maxSecondsBetweenRedraws (0.5);
新minSecondsBetweenRedraws ()
而且maxSecondsBetweenRedraws ()
方法将使您能够更好地控制进度条重绘频率,并确保您不会重绘太多或太少。
与此相关,在Symfony 4.4中我们ob娱乐下载也设置了0.1
的值minSecondsBetweenRedraws
属性,因此进度条在默认情况下每秒更新不超过10次(请参阅拉请求#32424).
发表在#生活在边缘
评论
克利斯朵夫Coevoet
2019年11月8日说在16:26
在某些情况下,这确实会提高性能。每秒重绘进度条数千次是行不通的,因为这需要STDOUT上的IO,这将成为命令的瓶颈。
这实际上是为什么这样的控制被添加在第一个地方与' setRedrawFrequency '。
这实际上是为什么这样的控制被添加在第一个地方与' setRedrawFrequency '。
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
Grégoire Pineau is a certified Symfony engineer and a certified Twig designer.
Get certified! Online exams available in all countries.
Register Now