Я работал над проектом с CsvHelper в Visual Studio 2015. Он работал нормально.Затем я переключился на Visual Studio 2013, чтобы провести некоторый тест, и CsvHelper работал очень медленно.Когда в VS 2015 требуется максимум 2 секунды, чтобы прочитать большой файл, в VS2013 требуется более 5 минут.
Я тестирую тот же проект, открытый в VS2013 и VS2015.В VS2013 работает медленно, в VS2015 наоборот.Тот же проект.
Итак, VS2013 должен что-то делать, чтобы вызвать медленную скорость CsvHelper.Есть идеи?
РЕДАКТИРОВАТЬ: Чтобы уточнить, я запускаю каждый тест в режиме отладки.
Я добавляю свою фактическую функцию чтения:
internal void ReadInCSVPoint3DNew(string absolutePath)
{
CultureInfo Culture = new CultureInfo("en-US");
List<Point3D> result = new List<Point3D>();
string value;
using (TextReader fileReader = File.OpenText(absolutePath))
{
var csv = new CsvReader(fileReader);
csv.Configuration.HasHeaderRecord = false; // The head is not in good format, so, setting it true doesn't work.
csv.Read(); // Skip Head
while (csv.Read())
{
string[] Strings = new String[13];
for (int i = 0; csv.TryGetField<string>(i, out value); i++)
{
Strings[i] = value;
}
Point3D point = new Point3D()
{
PointX = (decimal)float.Parse(Strings[0], Culture),
PointY = (decimal)float.Parse(Strings[1], Culture),
PointZ = (decimal)float.Parse(Strings[2], Culture),
X = (decimal)float.Parse(Strings[3], Culture),
Y = (decimal)float.Parse(Strings[4], Culture),
Z = (decimal)float.Parse(Strings[5], Culture),
Intensity = (int)float.Parse(Strings[6], Culture),
LaserIndex = (int)float.Parse(Strings[7], Culture),
Azimuth = (int)float.Parse(Strings[8], Culture),
Distance = (decimal)float.Parse(Strings[9], Culture),
AdjustTime = (long)float.Parse(Strings[10], Culture),
TimeStamp = (long)float.Parse(Strings[11], Culture),
VerticalAngle = (int)float.Parse(Strings[12], Culture)
};
result.Add(point);
}
}
this.Data = result;
}