小编Wha*_*ing的帖子

重新排列条件评估会加快循环吗?

有点奇怪的是:我刚才有一位朋友告诉我重新安排这个示例for循环:

for(int i = 0; i < constant; ++i) {
    // code...
}
Run Code Online (Sandbox Code Playgroud)

至:

for(int i = 0; constant > i; ++i) {
    // code...
}
Run Code Online (Sandbox Code Playgroud)

会略微提高C++的性能.我没有看到如何将常量值与变量进行比较比反之亦然,并且我运行的一些基本测试没有显示两种实现之间的速度差异.测试这个Python while循环也是如此:

while i < constant:
    # code...
    i += 1
Run Code Online (Sandbox Code Playgroud)

VS:

while constant > i:
    # code...
    i += 1
Run Code Online (Sandbox Code Playgroud)

我错了吗?我的简单测试不足以确定速度变化吗?这是否适用于其他语言?或者这只是一个新的最佳实践?

c++ optimization premature-optimization micro-optimization

11
推荐指数
5
解决办法
1298
查看次数

BeforeFeature/AfterFeature无法使用SpecFlow和Coded UI

我无法为我的功能文件定义[BeforeFeature]/ [AfterFeature]hook.正在测试的应用程序是WPF独立桌面应用程序.

如果我使用[BeforeScenario]/ [AfterScenario]一切正常,应用程序启动没有任何问题,设计的步骤正确执行,应用程序关闭.

一旦我使用与[BeforeFeature]/ [AfterFeature]tags 相同的步骤,应用程序启动并且测试失败,并且:

启动此进程时发生以下错误:对象引用未设置为对象的实例.

这是一个例子:

[Binding]
public class Setup
{   
    [BeforeScenario("setup_scenario")]
    public static void BeforeAppScenario()
    {
        UILoader.General.StartApplication();
    }

    [AfterScenario("setup_scenario")]
    public static void AfterAppScenario()
    {
        UILoader.General.CloseApplication();
    }

    [BeforeFeature("setup_feature")]
    public static void BeforeAppFeature()
    {
        UILoader.General.StartApplication();
    }

    [AfterFeature("setup_feature")]
    public static void AfterAppFeature()
    {
        UILoader.General.CloseApplication();
    }
}
Run Code Online (Sandbox Code Playgroud)

StartApplication/ CloseApplication使用Coded UI Test Builder记录并自动生成:

public void StartApplication()
{
    // Launch '%ProgramFiles%\...
    ApplicationUnderTest Application = ApplicationUnderTest.Launch(this.StartApplicationParams.ExePath, this.StartApplicationParams.AlternateExePath);
}

public class StartApplicationParams
{ …
Run Code Online (Sandbox Code Playgroud)

coded-ui-tests specflow

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