private void perfGetOneRecordVerifyResult(ManualResetEvent mre, CAS.KeyIn54BitCASHashTable hashTable, ConcurrentDictionary <string, int> SBPHashTable, List <Record> record, int index) { mre.WaitOne(); byte[] output = null; var u8 = Encoding.UTF8; int InputParametersError = 0; int NoExists = 0; int IsDeleted = 0; int ExceptionError = 0; int GetSuccessfully = 0; int ResultMatch = 0; int ResultNotMatch = 0; int Zero = 0; int result = -100; var externalStopWatch = new Stopwatch(); externalStopWatch.Start(); var internalStopWatch = new Stopwatch(); for (var i = 0; i < perfTestAttemptsForGetOneKeyword; i++) { try { internalStopWatch.Start(); result = hashTable.TryGet(record[index].linkId, record[index].clcId, SBPHashTable[record[index].sbp], out output); internalStopWatch.Stop(); } catch (Exception ex) { Interlocked.Increment(ref ExceptionError); if (log.IsFatalEnabled) { log.Fatal(ex.Message + "\t" + ex.StackTrace); } } switch (result) { case 0: Interlocked.Increment(ref GetSuccessfully); if (String.Compare(u8.GetString(record[index].url), u8.GetString(output)) == 0) { Interlocked.Increment(ref ResultMatch); } else { Interlocked.Increment(ref ResultNotMatch); } break; case -1: Interlocked.Increment(ref InputParametersError); break; case -2: Interlocked.Increment(ref NoExists); break; case -3: Interlocked.Increment(ref IsDeleted); break; default: Interlocked.Increment(ref Zero); break; } ; } var internalTs = internalStopWatch.Elapsed; externalStopWatch.Stop(); var externalTs = externalStopWatch.Elapsed; Console.WriteLine( "TaskId" + "\t" + Task.CurrentId + "\t" + "perfGetOneRecordVerifyResult" + "\t" + perfTestAttemptsForGetOneKeyword + "\t" + "InternalAPICallTotalTime" + "\t" + internalTs.ToString() + "\t" + "TestingTotalTime" + "\t" + externalTs.ToString() + "\t" + "GetSuccessfully" + "\t" + GetSuccessfully + "\t" + "ResultMatch" + "\t" + ResultMatch + "\t" + "ResultNotMatch" + "\t" + ResultNotMatch + "\t" + "InputParametersError" + "\t" + InputParametersError + "\t" + "NoExists" + "\t" + NoExists + "\t" + "IsDeleted" + "\t" + IsDeleted + "\t" + "ExceptionError" + "\t" + ExceptionError + "\t" + "Zero" + "\t" + Zero + "\t" ); }
private void perfUpdateOneRecordVerifyResult(ManualResetEvent mre, CAS.KeyIn54BitCASHashTable hashTable, ConcurrentDictionary <string, int> SBPHashTable, List <Record> record, int index) { mre.WaitOne(); var u8 = Encoding.UTF8; int InputParametersError = 0; int ExceptionError = 0; int AddSuccessfully = 0; int UpdateSuccessfully = 0; int Zero = 0; int result = -100; var externalStopWatch = new Stopwatch(); externalStopWatch.Start(); var internalStopWatch = new Stopwatch(); for (var i = 0; i < perfTestAttemptsForUpdateOneKeyword; i++) { try { internalStopWatch.Start(); result = hashTable.TrySet(record[index].linkId, record[index].clcId, SBPHashTable[record[index].sbp], record[index].url); internalStopWatch.Stop(); } catch (Exception ex) { Interlocked.Increment(ref ExceptionError); if (log.IsFatalEnabled) { log.Fatal(ex.Message + "\t" + ex.StackTrace); } } switch (result) { case 0: Interlocked.Increment(ref AddSuccessfully); break; case 1: Interlocked.Increment(ref UpdateSuccessfully); break; case -1: Interlocked.Increment(ref InputParametersError); break; default: Interlocked.Increment(ref Zero); break; } ; } var internalTs = internalStopWatch.Elapsed; externalStopWatch.Stop(); var externalTs = externalStopWatch.Elapsed; Console.WriteLine( "TaskId" + "\t" + Task.CurrentId + "\t" + "perfUpdateOneRecordVerifyResult" + "\t" + perfTestAttemptsForUpdateOneKeyword + "\t" + "InternalAPICallTotalTime" + "\t" + internalTs.ToString() + "\t" + "TestingTotalTime" + "\t" + externalTs.ToString() + "\t" + "AddSuccessfully" + "\t" + AddSuccessfully + "\t" + "UpdateSuccessfully" + "\t" + UpdateSuccessfully + "\t" + "InputParametersError" + "\t" + InputParametersError + "\t" + "ExceptionError" + "\t" + ExceptionError + "\t" + "Zero" + "\t" + Zero + "\t" ); }
private void perfDeleteRandomVerifyResult(ManualResetEvent mre, CAS.KeyIn54BitCASHashTable hashTable, ConcurrentDictionary <string, int> SBPHashTable, List <Record> record) { mre.WaitOne(); int totoalRecord = record.Count; var rndTemp = new Random(); int seed = rndTemp.Next(totoalRecord); var rnd = new Random(seed); int index = 0; var u8 = Encoding.UTF8; int InputParametersError = 0; int NoExists = 0; int IsDeleted = 0; int ExceptionError = 0; int DeleteSuccessfully = 0; int Zero = 0; int result = -100; var externalStopWatch = new Stopwatch(); externalStopWatch.Start(); var internalStopWatch = new Stopwatch(); for (var i = 0; i < perfTestAttemptsForDelete; i++) { index = rnd.Next(totoalRecord); try { internalStopWatch.Start(); result = hashTable.TryDelete(record[index].linkId, record[index].clcId, SBPHashTable[record[index].sbp]); internalStopWatch.Stop(); } catch (Exception ex) { Interlocked.Increment(ref ExceptionError); if (log.IsFatalEnabled) { log.Fatal(ex.Message + "\t" + ex.StackTrace); } } switch (result) { case 0: Interlocked.Increment(ref DeleteSuccessfully); break; case -1: Interlocked.Increment(ref InputParametersError); break; case -2: Interlocked.Increment(ref NoExists); break; case -3: Interlocked.Increment(ref IsDeleted); break; default: Interlocked.Increment(ref Zero); break; } ; } var internalTs = internalStopWatch.Elapsed; externalStopWatch.Stop(); var externalTs = externalStopWatch.Elapsed; Console.WriteLine( "TaskId" + "\t" + Task.CurrentId + "\t" + "perfDeleteRandomVerifyResult" + "\t" + perfTestAttemptsForDelete + "\t" + "InternalAPICallTotalTime" + "\t" + internalTs.ToString() + "\t" + "TestingTotalTime" + "\t" + externalTs.ToString() + "\t" + "DeleteSuccessfully" + "\t" + DeleteSuccessfully + "\t" + "InputParametersError" + "\t" + InputParametersError + "\t" + "NoExists" + "\t" + NoExists + "\t" + "IsDeleted" + "\t" + IsDeleted + "\t" + "ExceptionError" + "\t" + ExceptionError + "\t" + "Zero" + "\t" + Zero + "\t" ); }