我正在使用条件断点来确定C#
DateTime
变量何时大于某个时间。该断点将在运行中检查大约50,000次。
我的条件断点看起来像:
quote.Time > new DateTime(2014,2,4,3,59,0)
如果没有这个条件断点,我的测试运行大约需要15秒。使用条件断点需要45分钟。
我有什么办法可以帮助加快速度而不修改我正在调试的代码来添加断言或条件?
有没有让它只计算一次DateTime变量?或者这更像是在IDE中如何实现条件断点的架构问题?
答案 0 :(得分:8)
为什么不停止使用条件断点并更改代码,直到调试完为止。所以代码会变成:
int dummyx = 0;
if (quote.Time > new DateTime (2014,2,4,3,59,0 )
{
dummyx++; // put normal break point here!
}
这会跑得更快。
答案 1 :(得分:2)
仅出于调试目的,我说创建一个新的if语句和一个虚拟变量(如int i = 0;)并在该行上设置断点。然后直接进入/逐步完成剩下的代码..只是为了测试,你可以在测试后随时删除那1-2行代码。
包含以下内容的if语句(逻辑上):
if (quote.Time > new DateTime(2014,2,4,3,59,0)) { int i=0; }
答案 2 :(得分:1)
显然,条件断点非常慢是一个已知问题。请参阅:http://www.bing.com/search?setmkt=en-US&q=visual+studio+conditional+breakpoint+slow
因为我知道我的函数将被调用多少次,确定性模拟,我最终使用了visual studio的Hit Count
断点功能。
这使我不必使用if
语句来破解代码,并且如果我的中断条件发生变化,则会更快地迭代。