我不确定这是否是我遇到的一个基本问题,但我现在几天都无法解决这个问题......
我目前正在用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服务器的数据传输速率?