在.NET中,有几个地方必须保留托管代码并进入非托管又名本机代码领域.仅举几例:
总是有关于从一侧跳到另一侧的开销的评论,我的问题是,如果有人测量了正在发生的确切开销,并且可以解释如何计算它.例如,也许byte[]可以转换为IntPtr甚至可以转换为byte*.NET,并帮助编组程序节省一些CPU周期.
我有大量的目录,我想尽快读取所有文件.我的意思是,快速没有DirectoryInfo.GetFiles,而是"从磁盘低级别获取集群".
当然,.NET 2.0,c#
类似的问题在这里,但这种方法没有任何好处:
有人建议在FindFirst/FindNext上使用pInvoke.有人试过这个并且能够分享结果吗?
我正在使用ffmpeg从youtube转换mp4视频.该视频是HD 1080.当我将其转换为mpeg2video时,无论-s 1920x1080参数如何,视频都会失去清晰度.如何在不丢失图像清晰度的情况下转换视频?我使用的命令是:
ffmpeg -i BBB.mp4 -vcodec mpeg2video -s1920x1080 -acodec copy -f mpegts BBB.ts
关于内存的大小
List<long> ListOfLongs;
long[] ArrayOfLongs;
Run Code Online (Sandbox Code Playgroud)
如果每个都有N个元素,他们吃了多少内存?
我问这是因为据我所知,.NET没有模板(泛型)专业化.
由于我希望 GPU 为我做一些计算,因此我对测量“纹理”上传和下载速度的主题感兴趣 - 因为我的“纹理”是 GPU 应该处理的数据。
我知道从主内存传输到 GPU 内存是首选方式,因此我预计只有在需要处理大量数据且读回的结果很少的情况下,此类应用程序才会高效。
不管怎样,有这样的基准应用程序吗?我的意思是,为了测量主内存<>GPU传输吞吐量......
编辑(问题澄清):
一旦有一个应用程序,您启动了它,它给出了 2 个数字:
mb/s 主内存和显卡内存之间的传输速率,从主内存到图形、纹理上传
mb/s 主内存和显卡内存之间的传输速率,从图形到主,纹理下载
我只想再次把手放在上面。
另一个编辑(发现了一些东西):
这里http://www.benchmarkhq.ru/english.html?/be_mm.html(搜索TexBench)是一个以一种方式测量吞吐量的应用程序......
我有这个:
AudioPlayer player = new AudioPlayer();
player.Directory = vc.Directory;
player.StartTime = vc.StarTime;
player.EndTime = vc.EndTime;
Run Code Online (Sandbox Code Playgroud)
但我可以这样:
AudioPlayer player = new AudioPlayer
{
Directory = vc.Directory,
StartTime = vc.StarTime,
EndTime = vc.EndTime
};
Run Code Online (Sandbox Code Playgroud)
如果我转换为"新的写作方式",除了不可读之外我还能获得什么?它会让我更接近lambda函数(=>)吗?
它与RAII有关吗?
加成:
有人回答说,正常的初始化可能会使对象处于"无效"状态,例如只设置一个Directory属性 - 我在这里观察的是设计对象的人可能是设计它的方式,只有那些必须真正输入的值才是通过真正的构造函数输入,所有其他可以在以后自由修改.
我正在开发适用于Windows XP/7的台式机录像机软件.我希望能够通过色度键控从录制的视频中删除背景.
示例http://www.kudlian.net/products/screen/images/0002-large.jpg
这些算法的任何信息,完整的库,开源项目?我需要它可以从c#访问,最好是在GPU上运行的东西(CUDA,像素着色器......)
我的视频可以RGB24和YUY2格式访问,因此如果这样的库能够处理这些格式会很棒.
假设我有一些基本接口是泛型驱动的:
public interface Inteface<T> {
void Foo(T t);
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个这个接口的具体实现,它也是通用的:
public class InterfaceImpl<T> {
public void Foo(T t) {
// Whatever
}
}
Run Code Online (Sandbox Code Playgroud)
这看起来不错,但现在让我说我有其他课程:
public class Ololo {
public void BadFunction<TShouldModelInterface>(TShouldModelInterface shouldModelInterface) {
// Whatever
}
}
Run Code Online (Sandbox Code Playgroud)
并且假设我想执行检查是否TShouldModelInterface实际实现了任何可能的Interface<T>.
如果界面不是通用的,我会写一些类似的东西where TShouldModelInterface : Interface.
但如果接口是一个declared as Interface<T>?有什么方法可以解决这个问题吗?
我尝试在谷歌和这里搜索,但我仍然无法找到简单的C\C++示例udp打孔算法.如果你知道我在哪里找到它,请帮忙.谢谢!
事实上,我有多个系统可以生成数字数据,它们存储在一些Web服务器上的文本文件中.一些系统使用小数点作为分数分隔符,一些系统使用十进制逗号作为相同.
应用程序(胖客户端,.net 2.0)也可以在任何一种系统上运行.
所以在经历了一些磕磕绊绊之后我做到了这一点:(http://pastebin.com/vhLXABDD)
public static bool HasDecimalComma;
public static bool HasDecimalPeriod;
public static double GetNumber(string NumberString)
{
if (!HasDecimalComma && !HasDecimalPeriod)
{
string s = string.Format("{0:0.0}", 123.123);
if (s.Contains('.'))
{
HasDecimalPeriod = true;
}
else if (s.Contains(','))
{
HasDecimalComma = true;
}
else
{
throw new SystemException(string.Format("strange number format '{0}'", s));
}
}
if (HasDecimalComma)
{
return double.Parse(NumberString.Replace('.', ','));
}
if (HasDecimalPeriod)
{
return double.Parse(NumberString.Replace(',', '.'));
}
throw new ArgumentException(string.Format("can't parse '{0}'", NumberString));
}
Run Code Online (Sandbox Code Playgroud)
你会建议更好,更优雅的方式吗?
编辑:
我很抱歉之前没有提及它,因为你的答案倾向于那个方向 …