- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来自 vshost(在 VS 版本中运行)
array pure 00:00:02.9634819
1200000000
Basic: 00:00:04.1682663
来自独立程序(编译版本)
array pure 00:00:09.1783278 // slower, why?
1200000000
Basic: 00:00:00.5985118 // faster, as expected
所以似乎从 VS 运行有时会加速程序?
我的测试代码是:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace vsHostTest
{
class Program
{
static long Five(int s0, int s1, int s2, int s3, int s4)
{
return s4 + 100 * s3 + 10000 * s2 + 1000000 * s1 + 100000000 * s0;
}
static void Main(string[] args)
{
Stopwatch watch = new Stopwatch();
long testSize = 10000000;
int[] myarray = new int[] { 1, 2, 3 };
watch.Start();
for (int j = 0; j < testSize; j++)
{
bool i = myarray.Contains(2);
}
watch.Stop();
Console.WriteLine("array pure {0}", watch.Elapsed);
testSize = 200000000;
long checksum = 0;
watch.Restart();
for (long i = 0; i < testSize; i++)
{
long ret = Five(1, 2, 3, 4, 5);
checksum += ret % 9;
}
watch.Stop();
Console.WriteLine(checksum);
Console.WriteLine("Basic: {0}", watch.Elapsed);
Console.ReadKey();
}
}
}
最佳答案
我每个都跑了四次,但不包括每个平均值的第一个结果。
vshost:
array pure: 6.83 Basic: 3.62
console:
array pure: 6.64 Basic: 1.57
我应该补充一点,在 vshost 中的所有时间都比在控制台中慢。我不确定你为什么会得到这样的结果,但是 vshost 将调试器附加到进程,而通过控制台运行它则不会。因此,控制台版本总是会更快。
此外,在对 .net 应用程序进行基准测试时,仅运行一次测试不足以获得准确的测量结果。您应该始终多次运行测试,丢弃第一个(如果您不想比较冷运行,因为 .net 缓存很多)或最外围的测量。
另外,我觉得问这个问题很愚蠢,你确定你在通过控制台运行时运行了发布版本吗?我确定你做过,但我总是问,因为我有时会犯这样的愚蠢错误。
关于c# - 我期望 myApp.exe 比 myApp.vshost.exe 运行得更快,但是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7517844/
我已经设法让自己处于没有 devenv 实例运行的状态,但后台仍然有 MyApp.vshost.exe(没有可见的窗口或控制台)。 我尝试过 TaskManager、ProcessExplorer 和
我在生产部署文件夹中发现了许多 vshost 文件。我知道这些是干什么用的,它们不属于这里。我的问题是,它们有什么危害吗?是否值得我花时间检查所有部署文件夹中的 100 多个应用程序以确保它们已被删除
我正在构建一个基于示例应用程序的应用程序,在 .NET 2 上用 C# 编写,并构建在 VS2008 上。此应用程序主要是 COM 应用程序的包装器。但是我在 .NET 3.5 中编译它。 示例应用程
如标题所述:我正在尝试使用 Tamas Szalay 的 C# port of FFTW在 Visual C# 2010 Professional(试用版)中,当我尝试使用二维变换时出现上述错误。 (
在Visual Studio下,我发现console程序其实是***vshost.exe,请问这个文件的用途是什么? 最佳答案 The hosting process is a feature in
我在 VS2010 中使用一个包含很多项目的解决方案,它经常变得无响应。 我注意到的一件事可能是一个线索,即 MyApplicationName.vshost.exe 不断地出现在进程列表中,尽管我还
在 VS2010 中,我使用 TestDriven.net 执行单元测试。似乎每次我运行测试时,都会将另一个 myappname.vshost.exe 加载到内存中。累积超过 20 个这样的过程并不少
当我创建并编译“Hello, World!”时在 C# 中的应用程序,除了主 exe(例如 HelloWorld.exe)之外,我在 Debug 文件夹中得到了三个文件 HelloWorld.vsho
我一直在移动我的调试文件夹中的文件,试图从不同的位置打开我的程序的可执行文件。这似乎把事情搞砸了,我想知道如何解决它们。 具体错误如下: “Visual Studio 无法将支持文件复制到此位置:\P
我有一个问题,我的 vshost.exe 文件名与我的实际 application.exe 文件名不同,阻止我调试应用程序。 设置如下: - MySolution - Installer.Re
我有一个以表格形式显示图像的 C# 应用程序。我正在尝试覆盖这些图像并重新生成它们。我在尝试删除现有图像时出现异常(在本例中为 png)。我尝试处理图片框正在使用的图像,然后将其设置为 null,但由
为什么我的应用程序的发布版本会生成一个 appname.vshost.exe 文件?我可能会补充说,我正在使用外部 dll 库和一些不安全的代码。 更有趣的是,我从 Release 文件夹启动的应用程
我通过项目属性为我的 .dll 项目设置了一个输出文件夹,我称之为“输出”。 问题是,从一个空的输出文件夹中,我第一次构建项目时,它很好。第二次,我收到以下错误: Error 328 Unable t
有一个similar question在这里,但我有一个相当小的解决方案,我确实从 VS 中启动了调试器。我的理解是使用启用 Visual Studio 托管进程复选框 has several adv
我基本上按照以下说明创建了一个 Windows 服务:http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx 我用我的安装程序安装
我正在 wind2008 上使用 VS 2010 开发应用程序。这是一个使用 .Net 2.0 库的 .Net 3.5 应用程序。 我将所有框架更改为 3.5 .Net 并取消选中“启用 visual
当我使用 VS2008 编译应用程序时,有时会得到 2 个相同的配置文件: *.exe.config *.vshost.exe.config 后一个是做什么用的? 最佳答案 这是一篇讨论 vshost
这个问题在这里已经有了答案: 关闭 12 年前。 Possible Duplicate: What is the purpose of vshost.exe file? vshost 文件有什么作用
我找到了有关 Microsoft Visual Studio“额外”文件的以下信息: What is the purpose of the vshost.exe file? 我的问题是,有没有办法让我
Visual Studio 2008 已经运行良好一段时间了。我已经将它用于 Web、控制台、Windows 窗体、WPF、WCF 和类库项目。直到今天,一切都奏效了。 现在,每当我尝试启动一个新的
我是一名优秀的程序员,十分优秀!