static void TestJ() { Console.WriteLine(); long m_fst = GC.GetTotalMemory(false); Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); IDynaRecord dynaRecord = dataMod.GetDynaRecord("InvoCut"); /* * using (FileStream rfs = new FileStream("Invoice_Params.json", FileMode.Open)) * { * //считываем параметры запроса из входного json-потока * dynaRecord.ReadPropStream(rfs, "sel"); * } */ using (Stream fs = new FileStream("InvoCut.json", FileMode.Create), bs = new BufferedStream(fs, 16 * 1024)) { dynaRecord.SelectToStream(bs, CommandBehavior.SequentialAccess); } stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; long m_lst = GC.GetTotalMemory(false); //вся таблица выгружается в json-файл размером 381Kb за 14 - 27 ms (TextStreamWriter), лучшее 15 ms //вся таблица выгружается в json-файл размером 381Kb за 35 - 40 ms (JsonStreamWriter), //Core EF читает и пишет данные в поток за 78 - 90 ms Console.WriteLine("Done J: Время {0} ms", ts.Milliseconds); Console.WriteLine("Выделено памяти {0} байт", m_lst - m_fst); }
static void TestM(string queryName, int num) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); IDynaRecord dynaRecord = dataMod.GetDynaRecord(queryName); using (MemoryStream ms = new MemoryStream(1000000)) dynaRecord.SelectToStream(ms, CommandBehavior.SequentialAccess); stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; //long i_len = dynaObject.StreamWriter.Result.Length; //Console.WriteLine("Done M{0}: Время {1} ms, размер {2}", num, ts.Milliseconds, i_len); timeList.Add(ts.Milliseconds); }