相关疑难解决方法(0)

计算方法的执行时间

可能重复:
如何测量函数运行的时间?

我有一个I/O计时方法,可以将数据从一个位置复制到另一个位置.什么是计算执行时间的最佳和最实际的方法?ThreadTimerStopwatch?还有其他方法吗?我想要最精确的一个,尽可能简短.

.net c# io timer stopwatch

494
推荐指数
7
解决办法
47万
查看次数

是DateTime.Now是测量函数性能的最佳方法吗?

我需要找到一个瓶颈,并且需要准确地测量时间.

以下代码段是衡量性能的最佳方法吗?

DateTime startTime = DateTime.Now;

// Some execution process

DateTime endTime = DateTime.Now;
TimeSpan totalTimeTaken = endTime.Subtract(startTime);
Run Code Online (Sandbox Code Playgroud)

.net c# performance datetime timer

466
推荐指数
14
解决办法
6万
查看次数

如何衡量.NET中的代码性能?

我正在使用DateTime对一行C#代码进行一些真正的快速和脏的基准测试:

long lStart = DateTime.Now.Ticks;
// do something
long lFinish = DateTime.Now.Ticks;
Run Code Online (Sandbox Code Playgroud)

问题在于结果:

Start Time [633679466564559902]
Finish Time [633679466564559902]

Start Time [633679466564569917]
Finish Time [633679466564569917]

Start Time [633679466564579932]
Finish Time [633679466564579932]

...等等.

鉴于开始和结束时间相同,Ticks显然不够精细.

那么,我怎样才能更好地衡量绩效呢?

.net performance benchmarking

45
推荐指数
6
解决办法
2万
查看次数

如何测量函数运行的时间?

我想看一个函数运行多长时间.所以我在表单上添加了一个计时器对象,我出来了这段代码:

private int counter = 0;

// Inside button click I have:
timer = new Timer();
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
Result result = new Result();
result = new GeneticAlgorithms().TabuSearch(parametersTabu, functia);
timer.Stop();
Run Code Online (Sandbox Code Playgroud)

和:

private void timer_Tick(object sender, EventArgs e)
{
    counter++;
    btnTabuSearch.Text = counter.ToString();
}
Run Code Online (Sandbox Code Playgroud)

但这并不算什么.为什么?

.net c# performance timer stopwatch

39
推荐指数
8
解决办法
4万
查看次数

时间流逝计算以毫秒为单位C#

我需要计算用C#编写的代码序列的执行时间.使用DateTime.Now我得到的毫秒字段值不正确.例如:

 int start_time, elapsed_time;

 start_time = DateTime.Now.Millisecond;

 for(int i = 0; i < N_ITER; i++) {
       // cpu intensive sequence
 }

 elapsed_time = DateTime.Now.Millisecond - start_time;
Run Code Online (Sandbox Code Playgroud)

elapsed_time给出负值.

我如何替换DateTime以获得经过时间的实际值?

c# time timer

18
推荐指数
3
解决办法
7万
查看次数

查找方法的执行时间

我正在为我的大学制作一个图像隐写术项目.我已完成项目并保留了几种不同的算法来隐藏图像中的数据.

我想问的是,在C#中有什么方法可以通过它找到程序中两点之间的执行/运行时间.例如

//Some Code
//Code to start recording the time.
hideDataUsingAlgorithm();
//Code to stop recording and get the time of execution of the above function. 
Run Code Online (Sandbox Code Playgroud)

我想这样做是为了显示简单(耗时较少)和更高效但耗时的算法(使用相同的数据和相同的图像)之间的区别.我有大约10种不同的Color和GrayScale图像算法.

没有多线程因此不会成为问题.Theres只是一个主线程.

.net c#

9
推荐指数
2
解决办法
1万
查看次数

在`for`循环中缓存变量

我一直在阅读关于Javascript性能提升的提示,并且一个提示说要在循环比较器语句中缓存所有变量(不会改变),我想知道这是否也适用于.NET.

假设我有一个简单的for循环,下面哪个会更快或者它们是否相同?

没有缓存:

for (int i = 0; i < someArray.Length; i++)
{

}
Run Code Online (Sandbox Code Playgroud)

使用缓存:

for (int i = 0, count = someArray.Length; i < count; i++)
{

}
Run Code Online (Sandbox Code Playgroud)

根据文章"缓存" Length,在循环中删除一个操作的值,因为与访问对象的成员相比,它更快地访问局部变量.与简单地访问成员相比,它实际上更快地声明局部变量吗?编译器是否接受此操作并自动缓存该值?声明局部变量而不是访问该成员是否有任何负面影响?

虽然速度可能是这里的一个关键因素,但它不是唯一的因素.我的下一个问题可能是哪一个更有效率.哪个使用较少的内存分配?哪个执行较少的堆栈操作?等等...

从评论来看,似乎访问数组的长度非常快.让我们说我用了一个IList<>.缓存值Count是否比每次迭代检索它更快?

c# for-loop

6
推荐指数
1
解决办法
2670
查看次数

C#中方法的持续时间,时间开始和结束时间

如何使用c#执行方法时,如何记录方法的持续时间,时间开始和结束时间?

例如,我点击一个按钮,它会做一些事情.一旦开始,我将获得开始时间,然后当执行完成时,我将得到时间结束以及完成所需的持续时间.

c# time duration execution

3
推荐指数
2
解决办法
1万
查看次数

使用系统计时器作为循环上的秒表

我有一个填充随机板的过程,希望以最有效的方式,我有一个我正在运行的循环,我想从循环的开始到它完成像秒表这样的时间然后我可以将一个路径寻找算法的结果与另一个路径寻找算法进行比较,我之前没有使用这样的定时器,也不确定我是否会采用错误的方式.

这,我希望更多地展示我正在尝试做的事情

 System.Timers.Timer gameTime = new System.Timers.Timer();

 gameTime.Interval = (1000);
 gameTime.Enabled = true;
 gameTime.Start();            

 m_turn = 1;

do
{
    //Proccess here
    m_turn++

while(m_turn <= 1000)

gameTime.Stop();
string printTime = gameTime. //The amount of times the interval has passed?
Run Code Online (Sandbox Code Playgroud)

c# timer

0
推荐指数
1
解决办法
826
查看次数

标签 统计

c# ×8

.net ×5

timer ×5

performance ×3

stopwatch ×2

time ×2

benchmarking ×1

datetime ×1

duration ×1

execution ×1

for-loop ×1

io ×1