【发布时间】:2019-09-16 01:03:40
【问题描述】:
我正在从文件中读取和写入数据。文件中的数据可以是浮点数、双精度数、整数等。直到运行时才知道类型。我将存储在文件中的数据类型称为 Tin。从 Tout 类型的数组中读取或写入数据。这种类型也是直到运行时才知道的。
代码序列是这样的。在已知的 Open 方法 Tin 和 Tout 中,我们可以为已知的数据类型创建读写方法。
Open(...)
{
MethodInfo ReadMethod = typeof(...)GetMethod("ReadGeneric").MakeGenericMethod(new Type[] {typeof(Tin), typeof(Tout)}));
}
读写循环重复数百万次,并依靠反射调用适当的方法,如下所示。
Read loop
{
var values = (Tout[])ReadMethod.Invoke(this,new object[]{index});
process ...
}
当使用性能分析器检查此代码时,我发现如果时间仅用于调用运行时读写方法,则 c 的数量会很大。
如何加快速度。
【问题讨论】: