小编Dan*_*dor的帖子

管理不受管理的开销

在.NET中,有几个地方必须保留托管代码并进入非托管又名本机代码领域.仅举几例:

  • extern dll函数
  • COM调用

总是有关于从一侧跳到另一侧的开销的评论,我的问题是,如果有人测量了正在发生的确切开销,并且可以解释如何计算它.例如,也许byte[]可以转换为IntPtr甚至可以转换为byte*.NET,并帮助编组程序节省一些CPU周期.

.net performance unmanaged

8
推荐指数
2
解决办法
1762
查看次数

*FASTEST*目录列表

我有大量的目录,我想尽快读取所有文件.我的意思是,快速没有DirectoryInfo.GetFiles,而是"从磁盘低级别获取集群".

当然,.NET 2.0,c#

类似的问题在这里,但这种方法没有任何好处:

C#目录列出海量目录

有人建议在FindFirst/FindNext上使用pInvoke.有人试过这个并且能够分享结果吗?

c# directory file-io

6
推荐指数
1
解决办法
6034
查看次数

FFMPEG - 转换视频而不会丢失分辨率

我正在使用ffmpeg从youtube转换mp4视频.该视频是HD 1080.当我将其转换为mpeg2video时,无论-s 1920x1080参数如何,视频都会失去清晰度.如何在不丢失图像清晰度的情况下转换视频?我使用的命令是:

ffmpeg -i BBB.mp4 -vcodec mpeg2video -s1920x1080 -acodec copy -f mpegts BBB.ts

video ffmpeg transport-stream

6
推荐指数
2
解决办法
2万
查看次数

列出<long> vs long [],内存使用情况

关于内存的大小

List<long> ListOfLongs;
long[] ArrayOfLongs;
Run Code Online (Sandbox Code Playgroud)

如果每个都有N个元素,他们吃了多少内存?

我问这是因为据我所知,.NET没有模板(泛型)专业化.

.net c# memory

6
推荐指数
2
解决办法
5411
查看次数

GPU编程——传输瓶颈

由于我希望 GPU 为我做一些计算,因此我对测量“纹理”上传和下载速度的主题感兴趣 - 因为我的“纹理”是 GPU 应该处理的数据。

我知道从主内存传输到 GPU 内存是首选方式,因此我预计只有在需要处理大量数据且读回的结果很少的情况下,此类应用程序才会高效。

不管怎样,有这样的基准应用程序吗?我的意思是,为了测量主内存<>GPU传输吞吐量......

编辑(问题澄清):

一旦有一个应用程序,您启动了它,它给出了 2 个数字:

  1. mb/s 主内存和显卡内存之间的传输速率,从主内存到图形、纹理上传

  2. mb/s 主内存和显卡内存之间的传输速率,从图形到主,纹理下载

我只想再次把手放在上面。

另一个编辑(发现了一些东西):

这里http://www.benchmarkhq.ru/english.html?/be_mm.html(搜索TexBench)是一个以一种方式测量吞吐量的应用程序......

benchmarking cuda gpu

5
推荐指数
1
解决办法
2918
查看次数

为什么要使用初始化器呢?(.净)

我有这个:

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属性 - 我在这里观察的是设计对象的人可能是设计它的方式,只有那些必须真正输入的值才是通过真正的构造函数输入,所有其他可以在以后自由修改.

.net c# visual-studio-2008

5
推荐指数
2
解决办法
266
查看次数

色度键移除算法/库

我正在开发适用于Windows XP/7的台式机录像机软件.我希望能够通过色度键控从录制的视频中删除背景.

示例http://www.kudlian.net/products/screen/images/0002-large.jpg

这些算法的任何信息,完整的库,开源项目?我需要它可以从c#访问,最好是在GPU上运行的东西(CUDA,像素着色器......)

我的视频可以RGB24和YUY2格式访问,因此如果这样的库能够处理这些格式会很棒.

.net c# graphics computer-vision

5
推荐指数
1
解决办法
1万
查看次数

C#泛型问题 - 通用接口约束

假设我有一些基本接口是泛型驱动的:

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# generics

5
推荐指数
1
解决办法
433
查看次数

UDP NAT打孔示例

我尝试在谷歌和这里搜索,但我仍然无法找到简单的C\C++示例udp打孔算法.如果你知道我在哪里找到它,请帮忙.谢谢!

c++ udp nat hole-punching

5
推荐指数
1
解决办法
3491
查看次数

跨区域十进制/双重解析

事实上,我有多个系统可以生成数字数据,它们存储在一些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)

你会建议更好,更优雅的方式吗?

编辑:

我很抱歉之前没有提及它,因为你的答案倾向于那个方向 …

c# parsing regional-settings

5
推荐指数
1
解决办法
2141
查看次数