Inheritance: RecordReaderBenchmarkArguments
コード例 #1
0
		public static void ReadAll_DataStreams(FixedRecordReaderBenchmarkArguments args)
		{
			using (var reader = new FixedWidthReader(new StreamReader(args.Path, args.Encoding, true, args.BufferSize)))
			{
				reader.Settings.CaptureRawRecord = false;

				for (int i = 0; i < ColumnCount; i++)
					reader.Columns.Add(ColumnWidth);

				string s;

				if (args.FieldIndex < 0)
				{
					while (reader.ReadRecord())
					{
						for (int i = 0; i < reader.Columns.Count - 1; i++)
							s = reader[i];
					}
				}
				else
				{
					while (reader.ReadRecord())
					{
						for (int i = 0; i < args.FieldIndex + 1; i++)
							s = reader[i];
					}
				}
			}
		}
コード例 #2
0
        public static void ReadAll_DataStreams(FixedRecordReaderBenchmarkArguments args)
        {
            using (var reader = new FixedWidthReader(new StreamReader(args.Path, args.Encoding, true, args.BufferSize)))
            {
                reader.Settings.CaptureRawRecord = false;

                for (int i = 0; i < ColumnCount; i++)
                {
                    reader.Columns.Add(ColumnWidth);
                }

                string s;

                if (args.FieldIndex < 0)
                {
                    while (reader.ReadRecord())
                    {
                        for (int i = 0; i < reader.Columns.Count - 1; i++)
                        {
                            s = reader[i];
                        }
                    }
                }
                else
                {
                    while (reader.ReadRecord())
                    {
                        for (int i = 0; i < args.FieldIndex + 1; i++)
                        {
                            s = reader[i];
                        }
                    }
                }
            }
        }
コード例 #3
0
		public static void ReadAll(FixedRecordReaderBenchmarkArguments args)
		{
			using (var reader = new FixedWidthRecordReader(new StreamReader(args.Path, args.Encoding, true, args.BufferSize), args.BufferSize))
			{
				reader.SkipEmptyLines = args.SkipEmptyLines;

				for (int i = 0; i < ColumnCount; i++)
					reader.Columns.Add(new FixedWidthRecordColumn(reader.GetDefaultColumnName(i), typeof(string), string.Empty, i * ColumnWidth, ColumnWidth));

				string s;

				if (args.FieldIndex < 0)
				{
					while (reader.Read() != ReadResult.EndOfFile)
					{
						for (int i = 0; i < reader.Columns.Count - 1; i++)
							s = reader[i];
					}
				}
				else
				{
					while (reader.Read() != ReadResult.EndOfFile)
					{
						for (int i = 0; i < args.FieldIndex + 1; i++)
							s = reader[i];
					}
				}
			}
		}
コード例 #4
0
        public static void ReadAll(FixedRecordReaderBenchmarkArguments args)
        {
            using (var reader = new FixedWidthRecordReader(new StreamReader(args.Path, args.Encoding, true, args.BufferSize), args.BufferSize))
            {
                reader.SkipEmptyLines = args.SkipEmptyLines;

                for (int i = 0; i < ColumnCount; i++)
                {
                    reader.Columns.Add(new FixedWidthRecordColumn(reader.GetDefaultColumnName(i), typeof(string), string.Empty, i * ColumnWidth, ColumnWidth));
                }

                string s;

                if (args.FieldIndex < 0)
                {
                    while (reader.Read() != ReadResult.EndOfFile)
                    {
                        for (int i = 0; i < reader.Columns.Count - 1; i++)
                        {
                            s = reader[i];
                        }
                    }
                }
                else
                {
                    while (reader.Read() != ReadResult.EndOfFile)
                    {
                        for (int i = 0; i < args.FieldIndex + 1; i++)
                        {
                            s = reader[i];
                        }
                    }
                }
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: slorion/nlight
		//TODO: for now, the main program code is very tied to IO benchmarks. Needs to refactor to make it more modular.

		static void Main(string[] args)
		{
			AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

			var benchmarkOptions = new BenchmarkOptions { ActionIterationCount = 1, BenchmarkIterationCount = 3, ConcurrencyLevel = 1 };

			var tests = BenchmarkTests.All;
			bool profiling = false;

			var converter = new StringValueConverter();

			if (args.Length > 0)
			{
				tests = (BenchmarkTests) converter.ConvertTo(args[0], TrimmingOptions.Both, typeof(BenchmarkTests), BenchmarkTests.All);

				if (args.Length > 1)
					benchmarkOptions.BenchmarkIterationCount = converter.ConvertToInt64(args[1], TrimmingOptions.Both, benchmarkOptions.BenchmarkIterationCount, null);

				if (args.Length > 2)
					profiling = converter.ConvertToBoolean(args[2], TrimmingOptions.Both, false, null);
			}

			#region FixedWidthReader

			if (tests.HasFlag(BenchmarkTests.FixedWidthReader))
			{
				var files = profiling
					? new string[] { @"IO\Text\files\fixed.txt" }
					: new string[] { @"IO\Text\files\fixed.txt", @"IO\Text\files\test1.csv", @"IO\Text\files\test2.csv" };

				foreach (var file in files)
				{
					Console.WriteLine("--- FixedWidthReader - {0} ---", file);

					var benchmarkArgs = new FixedRecordReaderBenchmarkArguments();
					benchmarkArgs.Path = file;

					Benchmark.Execute("NLight", benchmarkOptions, benchmarkArgs, OutputResults, FixedRecordReaderBenchmarks.ReadAll);
					Benchmark.Execute("DataStreams", benchmarkOptions, benchmarkArgs, OutputResults, FixedRecordReaderBenchmarks.ReadAll_DataStreams);
				}
			}

			#endregion

			#region DelimitedReader

			if (tests.HasFlag(BenchmarkTests.DelimitedReader))
			{
				var files = profiling
					? new string[] { @"IO\Text\files\test1.csv" }
					: new string[] { @"IO\Text\files\test1.csv", @"IO\Text\files\test2.csv", @"IO\Text\files\test3.csv", @"IO\Text\files\test4.csv", @"IO\Text\files\test5.csv" };

				foreach (var file in files)
				{
					Console.WriteLine("--- DelimitedReader - {0} ---", file);

					var benchmarkArgs = new DelimitedRecordReaderBenchmarkArguments();
					benchmarkArgs.Path = file;
					benchmarkArgs.TrimWhiteSpaces = true;

					Benchmark.Execute("LumenWorks", benchmarkOptions, benchmarkArgs, OutputResults, DelimitedRecordReaderBenchmarks.ReadAll_LumenWorks);
					Benchmark.Execute("NLight", benchmarkOptions, benchmarkArgs, OutputResults, DelimitedRecordReaderBenchmarks.ReadAll);
					Benchmark.Execute("DataStreams", benchmarkOptions, benchmarkArgs, OutputResults, DelimitedRecordReaderBenchmarks.ReadAll_DataStreams);
					Benchmark.Execute("CsvHelper", benchmarkOptions, benchmarkArgs, OutputResults, DelimitedRecordReaderBenchmarks.ReadAll_CsvHelper);
					//Benchmark.Execute("OleDb", benchmarkOptions, benchmarkArgs, OutputResults, DelimitedRecordReaderBenchmarks.ReadAll_OleDb);
					//Benchmark.Execute("Regex", benchmarkOptions, benchmarkArgs, OutputResults, DelimitedRecordReaderBenchmarks.ReadAll_Regex);
				}
			}

			#endregion

			#region DelimitedReaderAdvancedEscaping

			if (tests.HasFlag(BenchmarkTests.DelimitedReaderAdvancedEscaping))
			{
				var files = profiling
					? new string[] { @"IO\Text\files\test4.csv" }
					: new string[] { @"IO\Text\files\test3.csv", @"IO\Text\files\test4.csv" };

				foreach (var file in files)
				{
					Console.WriteLine("--- DelimitedReader with advanced escaping - {0} ---", file);

					var benchmarkArgs = new DelimitedRecordReaderBenchmarkArguments();
					benchmarkArgs.Path = file;
					benchmarkArgs.TrimWhiteSpaces = true;
					benchmarkArgs.AdvancedEscapingEnabled = true;

					Benchmark.Execute("NLight", benchmarkOptions, benchmarkArgs, OutputResults, DelimitedRecordReaderBenchmarks.ReadAll);
					Benchmark.Execute("DataStreams", benchmarkOptions, benchmarkArgs, OutputResults, DelimitedRecordReaderBenchmarks.ReadAll_DataStreams);
				}
			}

			#endregion

			Console.WriteLine("\nDone");
			Console.ReadLine();
		}