小编wlu*_*den的帖子

在.NET应用程序中处理大型数组的性能

我不确定这是否是我遇到的一个基本问题,但我现在几天都无法解决这个问题......

我目前正在用C#编写.NET库(使用.NET 3.5).除此之外,它还包括将三重Int32数组(每个几MB)写入远程缓存(memcached服务器)和读回这些数组的功能.问题是,即使memcached服务器在本地计算机上运行,​​我可以提出的每个实现花费大约1.2秒来写入10MB数据,另外大约1.2秒用于读取相同数据.

但是,为了比较性能,我只需写入剪贴板就将写入替换为缓存服务器,并注意到执行写入仍需要1.2秒.我打电话给测试方法(如下所示),包括一个stopwatch开始/停止基准测试.方法是:

public void writeCachedImageData(int[,] atoms, int[,] noAtoms, int[,] dark, int cameraID, int runID, int seqID)
{

  Clipboard.SetData(DataFormats.Serializable, atoms);
  Clipboard.SetData(DataFormats.Serializable, noAtoms);
  Clipboard.SetData(DataFormats.Serializable, dark);

}
Run Code Online (Sandbox Code Playgroud)

对于基准测试,每个阵列为1000x1000.基本上,我的问题是:

1)从这次测试得出的结论是否正确,我的瓶颈是某种方式从应用程序到外部的数据传输速率?和

2)如果是这样,我可以做些什么来提高从应用程序到剪贴板或最终memcached服务器的数据传输速率?

.net c# arrays

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

标签 统计

.net ×1

arrays ×1

c# ×1