或者它现在反过来了?
从我所听到的有些领域,C#证明比C++更快,但我从来没有勇气自己测试它.
你们中的任何一个人都可以详细解释这些差异,或者将我指向正确的地方以获取相关信息.
我的理解是C/C++生成在特定机器架构上运行的本机代码.相反,Java和C#等语言运行在虚拟机之上,该虚拟机将本机架构抽象化.逻辑上,由于这个中间步骤,Java或C#似乎不可能匹配C++的速度,但是我被告知最新的编译器("热点")可以达到这个速度甚至超过它.
也许这更像是一个编译问题,而不是一个语言问题,但任何人都可以用简单的英语解释这些虚拟机语言之一如何比母语更好地执行?
此性能测试是错误的还是系统缓存正在以卓越的性能运行?
这是我的结果:
[13]交互次数100000:63毫秒
[14]交互次数100000:139毫秒
[12]交互次数100000:47毫秒
[15]交互次数100000:44毫秒
测试结束.
硬件:x86 Family 6 Model 23 Stepping GenuineIntel~2992 Mhz 3.327 MB,5.1.2600 Service Pack 3
using System;
using System.Collections.Generic;
using System.Runtime.Caching;
using System.Diagnostics;
using System.Threading;
namespace CacheNet40
{
public class CacheTest
{
private ObjectCache cache;
public CacheTest()
{
cache = MemoryCache.Default;
}
public void AddItem(CacheItem item, double span)
{
CacheItemPolicy cp = new CacheItemPolicy();
cp.SlidingExpiration.Add(TimeSpan.FromMinutes(span));
cache.Add(item, cp);
}
public Object GetItem(string key)
{
return cache.Get(key);
}
}
class Program
{
private static CacheTest Cache = …Run Code Online (Sandbox Code Playgroud) 我在Visual Studio 2015中有一个C#类库项目,它创建了一个C#DLL.我将这个插件用于各种Unity项目.
我在Native C++中编写了一些与数学相关的函数,我想在上面提到的类库项目中访问它.是否可以为类库项目创建一个C++插件,它最终将构建到C#DLL中?
如果没有,在C#类库项目中使用C++代码的其他方法是什么?
@Jonathon Reinhart,我不认为这是重复的,因为在你提供的链接中,用户试图在C#可执行项目中使用C++.我试图创建一个使用C++ DLL的C#DLL,并试图询问这是否可行,以及如何做到这一点.
c# ×4
c++ ×3
performance ×3
.net-4.0 ×1
benchmarking ×1
bytecode ×1
java ×1
memorycache ×1
validation ×1