public void MarcRecordUtility_BeginUpdate_2() { MarcRecord record = new MarcRecord(); record.BeginUpdate(10); RecordField field = new RecordField(100); record.Fields.Add(field); Assert.AreEqual(0, field.Repeat); field = new RecordField(200); record.Fields.Add(field); Assert.AreEqual(0, field.Repeat); field = new RecordField(300); record.Fields.Add(field); Assert.AreEqual(0, field.Repeat); record.EndUpdate(); field = new RecordField(400); record.Fields.Add(field); Assert.AreEqual(1, field.Repeat); }
static void Main(string[] args) { if (args.Length != 1) { Console.WriteLine("Usage: DirectWriterBenchmark <path-to-MST>"); return; } Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); string masterPath = args[0]; try { DirectUtility.CreateDatabase64(masterPath); using (DirectAccess64 accessor = new DirectAccess64(masterPath)) { for (int i = 0; i < 10000; i++) { if (i % 1000 == 0) { Console.Write("."); } MarcRecord record = new MarcRecord(); record.BeginUpdate(100); for (int tag = 200; tag < 300; tag++) { record.Fields.Add ( new RecordField ( tag, "Это поле номер " + tag ) ); } record.EndUpdate(); accessor.WriteRecord(record); } Console.WriteLine(); for (int approach = 0; approach < 10; approach++) { Console.WriteLine("Approach {0}", approach + 1); for (int mfn = 1; mfn <= 1000; mfn++) { MarcRecord record = accessor.ReadRecord(mfn) .ThrowIfNull("accessor.ReadRecord(mfn)"); record.Fields.Add ( new RecordField ( 300, "Запись отредактирована " + DateTime.Now ) ); accessor.WriteRecord(record); } } } stopwatch.Stop(); Console.WriteLine ( "Elapsed: {0}", stopwatch.Elapsed ); } catch (Exception exception) { Console.WriteLine(exception); } }