Jakarta Commons Cookbook这本书中介绍了一个使用回归分析来估计某个工作需要多长时间的例子。 笔者看过之后感觉有些问题(也可能是笔者数学功底不够)。以下是经过笔者修改后的代码。
import org.apache.commons.lang.math.RandomUtils;
import org.apache.commons.lang.time.StopWatch;
import org.apache.commons.math.stat.regression.SimpleRegression;
public class ProgressEstimator {
//
private StopWatch stopWatch;
private SimpleRegression regression;
/**
*
*/
public ProgressEstimator() {
this.stopWatch = new StopWatch();
this.regression = new SimpleRegression();
}
/**
*
*/
public void start() {
//
regression.clear();
//
stopWatch.reset();
stopWatch.start();
}
public void stop() {
//
stopWatch.stop();
}
/**
*
*/
public void step(int progress) {
regression.addData(progress, stopWatch.getTime());
}
public long getElapsedTime() {
return stopWatch.getTime();
}
public long getRemainingTime(long total) {
long r = (long)(regression.getSlope() * total + regression.getIntercept()) - getElapsedTime();
return r >= 0 ? r : 0;
}
/**
*
*/
public static void main(String args[]) {
//
ProgressEstimator pe = new ProgressEstimator();
pe.start();
//
int count = 1000;
for(int i = 0; i < count; i++) {
//
try {
Thread.sleep(RandomUtils.nextInt(30));
} catch(Exception e) {
break;
}
//
if(i % 10 == 9) {
//
pe.step(i);
//
long elapsed = pe.getElapsedTime();
long estimatedRemaining = pe.getRemainingTime(count);
long estimatedTotal = elapsed + estimatedRemaining;
System.out.println("elapsed time: " + elapsed + ", estimated remaining time: " + estimatedRemaining + ", estimated total: " + estimatedTotal);
}
}
pe.stop();
System.out.println("total elapsed time: " + pe.getElapsedTime());
}
}
分享到:
相关推荐
`progress-estimator`是一个专门用于Node.js环境的工具,它可以帮助开发者为异步操作,如Promise,添加实时的进度条显示,并能根据历史数据估算出剩余的执行时间。这个库特别适用于处理大量数据、长时间运行的任务,...
在这个案例中,我们将深入探讨如何使用分布式Estimator和TensorFlow框架的子库tflearn对鸢尾花(Iris)数据集进行分类。鸢尾花数据集是经典的多类分类问题,包含三种不同类型的鸢尾花,每种类型都有四类特征:萼片...
在IT领域,hurst estimator是一种用于分析时间序列自相似性的统计工具。Hurst系数是由Hurst在研究尼罗河洪水周期时引入的,它可以帮助我们理解数据的长期依赖性,是时间序列预测和复杂系统分析中的关键概念。在这个...
主要记录了一下attitude—estimator——q中的一些内容
在 PX4 飞行控制系统中,`attitude_estimator_q` 是一个核心模块,负责处理传感器数据并提供高精度的姿态解算。本篇文章将深入探讨“attitude_estimator_q”以及它在 PX4 中使用的互补融合滤波技术。 一、互补融合...
PX4位置解算流程图local_position_estimator_main.cpp
PX4-position_estimator_inav.cpp文件包含了PX4系统中惯性导航辅助(iNav)高度估计模块的实现细节。 首先,我们讨论为什么需要算法进行高度估计。在飞行控制中,高度估计对于飞行器的安全与性能至关重要。传统的...
### PX4源码中的位置估计——local_position_estimator详解 #### 概述 `local_position_estimator`作为PX4飞行控制系统中的核心组件之一,主要用于实现飞行器的本地位置估计。该组件结合了多种传感器数据(如GPS、...
PX4姿态解算流程图attitude_estimator_q_main.cpp
根据提供的文档信息,本文将对《PowerPlay Early Power Estimator User Guide For Cyclone II FPGAs》中的关键知识点进行详细解读。此用户指南主要针对Altera公司的Cyclone II系列现场可编程门阵列(Field ...
标题“px4-position_estimator”指向的是PX4飞行控制器中位置估计算法的部分。PX4是开源的无人机飞控软件系统,广泛应用于无人机(UAV)、地面车(UGV)、无人船(USV)等各类机器人中。位置估计算法是无人机定位...
为了帮助用户在FPGA设计的各个阶段对功耗进行估算,Altera公司(现为Intel旗下公司)推出了PowerPlay Early Power Estimator(EPE)工具,这份《PowerPlay Early Power Estimator User Guide》是该工具的用户手册,...
综上所述,"kernel density estimator library in matlab"提供了一个实现KDE的工具,帮助用户在MATLAB环境中进行概率密度估计,从而更好地理解和分析数据的分布特征。使用这样的库,开发者可以避免从头编写代码,...
霍维茨-汤姆森估计量(Horvitz-Thompson Estimator)是一种用于估计总体总量的广泛适用的概率抽样计划估计器。这种估计器不仅适用于无放回抽样(without replacement),也适用于有放回抽样(with replacement)。该...
OLS estimator is unbiased. Variances-covariance matrix of OLS estimator. GaussMarkov Theorem: OLS estimator is BLUE
when SNR is high , 1st sample estimator provides good estimate of A. it has no noise effect . so we don’t need averaging effect to reduce noise when SNR is high. However variance is still low in ...
几种经典的估计器程序,相对比较简单,对初学者学习很有帮助
Xilinx Power Estimator 用户指南 Xilinx Power Estimator 是一种功能强大的电源估算工具,由 Xilinx 公司开发,旨在帮助用户快速准确地估算 FPGA 设计的电源 consumo。该工具提供了一个用户友好的界面,允许用户...
The Intrinsic Estimator for Age-PeriodCohort Analysis What It Is and How to.pdf