void uploadFile(string filename, string ToSendPath, string savePath) { string fqname = System.IO.Path.Combine(ToSendPath, filename); try { hrt.Start(); using (var inputStream = new FileStream(System.IO.Path.GetFullPath(fqname), FileMode.Open)) { FileTransferMessage msg = new FileTransferMessage(); msg.filename = filename; msg.transferStream = inputStream; msg.savePath = savePath; channel.upLoadFile(msg); } hrt.Stop(); Console.Write("\n Uploaded file \"{0}\" in {1} microsec.", filename, hrt.ElapsedMicroseconds); } catch { Console.Write("\n can't find \"{0}\"", fqname); } }
public void upLoadFile(FileTransferMessage msg) { int totalBytes = 0; hrt.Start(); filename = msg.filename; string rfilename = Path.Combine(savePath, filename); if (!Directory.Exists(savePath)) Directory.CreateDirectory(savePath); using (var outputStream = new FileStream(rfilename, FileMode.Create)) { while (true) { int bytesRead = msg.transferStream.Read(block, 0, BlockSize); totalBytes += bytesRead; if (bytesRead > 0) outputStream.Write(block, 0, bytesRead); else break; } } hrt.Stop(); Console.Write( "\n Received file \"{0}\" of {1} bytes in {2} microsec.", filename, totalBytes, hrt.ElapsedMicroseconds ); }
void caseRequestFile(CommandData cmdData)//command to request file { success = true; IFileService fs = null; int count = 0; while (true) { try { fs = TestHarness.fileSender.CreateChannel(THFRcvr); break; } catch { Console.Write("\n connection to service failed {0} times - trying again", ++count); Thread.Sleep(500); continue; } } Console.Write("\n Connected to {0}\n", THFRcvr); string filepath = Path.GetFullPath(relativeFilePath); List <string> dllFiles; dllFiles = XmlDecoder.getDLLFiles("../../../repo/" + cmdData.testAuthor + "_" + cmdData.dateTime + "_" + cmdData.xmlFile); dllFiles.Add(cmdData.xmlFile); foreach (string dllfile in dllFiles) { Console.WriteLine("-------------this is for requirement 2----------:\nthe file required in the XML include:" + dllfile); string file = filepath + cmdData.testAuthor + "_" + cmdData.dateTime + "_" + dllfile; timer.Start(); if (!fileSender.SendFile(fs, file)) { timer.Stop(); Console.Write("\n could not send file"); cmdData.command = "FileNotMatch"; cmdData.from = "Repository"; cmdData.to = "TestHarness"; success = false; } else { timer.Stop(); Console.WriteLine("send file :{0} in {1} ", file, timer.ElapsedTimeSpan); } Console.Write("\n\n"); } if (success == true) { sendRunTest(cmdData); } else { sendFileNotMatch(cmdData); } }
//----< process query requests and frame appropriate reply message >----- public Message ProcessQuery(Message msg) { Console.WriteLine("Received Query Request"); string queryString; int queryType; parser.decodeQuery(msg, out queryType, out queryString); Message result; perfTimer.Start(); if (queryType == 0) { string content = QueryOperations(queryString); content = "<Value>" + content + "</Value>"; result = maker.makeQueryReult(msg, content); } else { List <string> keys = QueryOperations(queryType, queryString); result = maker.makeQueryReult(msg, keys); } perfTimer.Stop(); reqCount++; totalTime += perfTimer.ElapsedMicroseconds; Console.WriteLine("Sent Query Result"); return(result); }
void EmulateCyclesWithout1541() { #if TIMERS uint lc = CycleCounter; HiResTimer timer = new HiResTimer(); timer.Start(); const uint cycleCount = 4000000; #endif thread_running = true; while (!quit_thyself) { // The order of calls is important here if (TheVIC.EmulateCycle()) { TheSID.EmulateLine(); } TheCIA1.CheckIRQs(); TheCIA2.CheckIRQs(); TheCIA1.EmulateCycle(); TheCIA2.EmulateCycle(); TheCPU.EmulateCycle(); CycleCounter++; #if TIMERS if (CycleCounter - lc == cycleCount) { timer.Stop(); lc = CycleCounter; double elapsedSec = timer.ElapsedMilliseconds / 1000.0f; Console.WriteLine("------------------------------------"); Console.WriteLine("{0} ms elapsed for {1:N} cycles", timer.ElapsedMilliseconds, cycleCount); Console.WriteLine("CIA1: TA Interrupts: {0} -> int/s: {1}", TheCIA1.ta_interrupts, TheCIA1.ta_interrupts / elapsedSec); Console.WriteLine("CPU Instructions: {0} -> ins/s: {1}", TheCPU.ins_counter, TheCPU.ins_counter / elapsedSec); // reset counters TheCIA1.ta_interrupts = 0; TheCIA1.tb_interrupts = 0; TheCIA2.ta_interrupts = 0; TheCIA2.tb_interrupts = 0; TheCPU.ins_counter = 0; timer.Reset(); timer.Start(); //TheDisplay.Surface.Update(); } #endif } }
//retrun bool public bool run(ITest testDriver, string testDriverName, Logger objLogger) { bool status = false; try { Console.Write(" Running test driver : {0} in Domain {1} ", testDriverName, AppDomain.CurrentDomain.FriendlyName); objLogger.log("Running test driver " + testDriverName); hrt.Start(); if (testDriver.test() == true) { status = true; Console.WriteLine("\n test passed"); hrt.Stop(); Console.WriteLine("******Requirement 12: Time Taken for executings test"); Console.WriteLine("Time for executing test {0}", hrt.ElapsedMicroseconds); objLogger.log("test driver " + testDriverName + " Passed"); } else { Console.WriteLine("\n test failed"); objLogger.log("test driver " + testDriverName + " Failed"); } } catch (Exception ex) { Console.WriteLine(""); Console.WriteLine("Caught Exception in Test Driver {0}", testDriverName, ex); objLogger.log("test driver " + testDriverName + " Failed"); objLogger.log("Caught Exception in Test Driver " + testDriverName + " Exception:" + ex); } return(status); }
private void bnInvoke_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; try { Init(); HiResTimer hrt = new HiResTimer(); hrt.Start(); object result = wsp.InvokeCall(); hrt.Stop(); tbElapsedTime.Text = hrt.ElapsedMicroseconds.ToString(); tbResult.Text = result.ToString(); if (wsp.EnableMessageAccess) { string tmpReqFile = SaveRequestToTempFile(wsp.SoapRequest); string tmpRespFile = SaveResponseToTempFile(wsp.SoapResponse); object obj = null; webBrowserRequest.Navigate("file://" + tmpReqFile, ref obj, ref obj, ref obj, ref obj); webBrowserResponse.Navigate("file://" + tmpRespFile, ref obj, ref obj, ref obj, ref obj); } } catch (Exception ex) { MessageBox.Show(ex.Message); } this.Cursor = Cursors.Default; }
public Stream downLoadFile(string ToSendPath, string filename) { hrt.Start(); string sfilename = Path.Combine(ToSendPath, filename); FileStream outStream = null; if (File.Exists(sfilename)) { outStream = new FileStream(sfilename, FileMode.Open); } else { throw new Exception("open failed for \"" + filename + "\""); } hrt.Stop(); Console.Write("\n Sent \"{0}\" in {1} microsec.", filename, hrt.ElapsedMicroseconds); return(outStream); }
//----< Entry point into Write Client >------------------------------ static void Main(string[] args) { WriteClient clnt = new WriteClient(); bool success = clnt.ProcessCommandArgsAndFile(clnt, args); if (!success) { return; } HiResTimer timer = new HiResTimer(); timer.Start(); List <Message> messageList = clnt.ProcessXML("MessagePrototype.xml"); clnt.latencyTimers.Add(new HiResTimer()); clnt.latencyValues.Add(new ulong()); foreach (Message message in messageList) { if (clnt.sndr.sendMessage(message)) { HiResTimer temp = new HiResTimer(); temp.Start(); clnt.latencyTimers.Add(temp); clnt.latencyValues.Add(new ulong()); Console.Write("\n Request ID: {0}\n", message.messageID); Console.WriteLine(message.content); } else { Console.Write("\n could not connect in {0} attempts", clnt.sndr.MaxConnectAttempts); clnt.sndr.shutdown(); clnt.rcvr.shutDown(); return; } } timer.Stop(); Console.WriteLine("\n ====================================================="); Console.WriteLine("\n Total time to send all the messages: {0} microseconds", timer.ElapsedMicroseconds); Console.WriteLine("\n ====================================================="); Message msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; msg.content = "done"; clnt.sndr.sendMessage(msg); while (true) { if (clnt.rcvCount == messageList.Count()) { Thread.Sleep(50); clnt.performanceAnalysis(); break; } } Util.waitForUser(); clnt.rcvr.shutDown(); clnt.sndr.shutdown(); Console.Write("\n\n"); }
static void Main(string[] args) { HiResTimer hrt = new HiResTimer(); hrt.Start(); M(); hrt.Stop(); Console.WriteLine("{0}", hrt.ElapsedMicroseconds); Console.ReadLine(); }
//----< run client demo >---------------------------------------- static void Main(string[] args) { Console.Title = "Client 1 Console"; Console.Write("\n Testing Client Demo"); Console.Write("\n =====================\n"); Client clnt = new Client(); clnt.comm.sndr.channel = Sender.CreateServiceChannel("http://localhost:8082/StreamService"); HiResTimer hrt = new HiResTimer(); hrt.Start(); clnt.comm.sndr.uploadFile("TestDriver.dll"); clnt.comm.sndr.uploadFile("TestedCode.dll"); hrt.Stop(); Console.WriteLine("\n**********************************************************************"); Console.WriteLine("\nDemonstrating requirement 12 latency"); Console.Write( "\n\n total elapsed time for uploading = {0} microsec.\n", hrt.ElapsedMicroseconds ); Message msg = clnt.makeMessage("Brahma", clnt.endPoint, clnt.endPoint); msg.type = "TestRequest"; msg = clnt.makeMessage("Brahma", clnt.endPoint, clnt.endPoint); msg.body = MessageTest.makeTestRequest(); Console.WriteLine("\n**********************************************************************"); Console.WriteLine("\n Demonstrating requirement 2 : XML messages"); msg.showMsg(); string remoteEndPoint = Comm <Client> .makeEndPoint("http://localhost", 8080); msg = msg.copy(); msg.to = remoteEndPoint; clnt.comm.sndr.PostMessage(msg); string repository = Comm <Client> .makeEndPoint("http://localhost", 8082); msg = clnt.makeMessage("Brahma", clnt.endPoint, repository); msg.type = "testlogs"; msg.body = "brahma"; clnt.comm.sndr.PostMessage(msg); Console.Write("\n press key to exit: "); Console.ReadKey(); msg.body = "quit"; clnt.comm.sndr.PostMessage(msg); msg.showMsg(); Console.Write("\n\n Press key to terminate client"); Console.ReadKey(); Console.Write("\n\n"); clnt.wait(); ((IChannel)clnt.comm.sndr).Close(); Console.Write("\n\n"); }
public void ThreadProc(InternalMessage imsg) //all file loading exceptions are handled here { FileClient clnt = new FileClient();; HiResTimer hrt = new HiResTimer(); MessageClient msgSender = new MessageClient(); Message msgToClient = new Message(); Console.WriteLine(""); Console.WriteLine("==============================================================="); try { clnt.CreateFileChannel(imsg.connectMessage.fileConnectAddress); Console.WriteLine("\n Identifying Load request message..."); if (imsg.fileMessage.loadType == "Download") { foreach (string file in imsg.fileMessage.fileNames) { clnt.download(file, imsg.fileMessage.loadPath); } msgToClient = msgSender.SetupMessages(true, "Files successfully downloaded by Repository.", imsg.recipient); } else { foreach (string file in imsg.fileMessage.fileNames) { clnt.upload(file, imsg.fileMessage.loadPath); } msgToClient = msgSender.SetupMessages(true, "Files successfully uploaded from Repository.", imsg.recipient); } } catch (Exception ex) { msgToClient = msgSender.SetupMessages(false, "\n[Error message]:" + ex.Message, imsg.recipient); } finally { Console.WriteLine("\nConnecting to message channel..."); msgSender.CreateMessageChannel(imsg.connectMessage.MessageConnectAddress); Console.WriteLine("\nSending message about loading status back..."); hrt.Start(); msgSender.channel.PostMessage(msgToClient); hrt.Stop(); Console.WriteLine(""); Console.WriteLine("\nMessage sent back in {0} microsec.", hrt.ElapsedMicroseconds); Console.WriteLine(""); } }
public void THMsgProc() { while (true) { HiResTimer hrt = new HiResTimer(); Message msg = msgReciever.TryGetTHMessage(); Console.WriteLine("\n<--------------------------------------------------------->"); Console.WriteLine("\nMessage recieved from test harness."); if (msg.recipient == "AboutLog") { Console.WriteLine("\nDemonstrating test logs and results:"); TestResults tr = msgReciever.ParseResultMsg(msg); Console.WriteLine(tr.log); Console.WriteLine("\nDemonstrating querying results from repository:"); Console.WriteLine("\nSending message to repository..."); clientUtil.SetupQueryMessageToRepo(msgToRepoQuery, tr, "http://localhost:4244/ICommService/BasicHttp", "http://localhost:8284/ICommService/BasicHttp", "Upload"); msgSenderwithRepo.channel.PostMessage(msgToRepoQuery); Console.WriteLine("\nWaiting for message from repository..."); hrt.Start(); Message repoReply = msgReciever.TryGetRepoMessage("Query"); hrt.Stop(); Console.WriteLine(""); Console.WriteLine("\nRecieved message in {0} microsec.", hrt.ElapsedMicroseconds); Console.WriteLine(""); TestLoadStatus loadStatus = msgReciever.ParseLoadMsg(repoReply); Console.WriteLine(loadStatus.loadMessage); using (FileStream fs = new FileStream(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..\\..\\..\\TestResults", tr.LogName + "Summary.txt"), FileMode.Open)) using (StreamReader sr = new StreamReader(fs)) { Dispatcher.Invoke( new Action <string>(ShowStringResult), System.Windows.Threading.DispatcherPriority.Background, new string[] { sr.ReadToEnd() }); } } else { Console.WriteLine("\nDemonstrating dll load status in test harness:"); Dispatcher.Invoke( new Action <string>(ShowLoadMsg), System.Windows.Threading.DispatcherPriority.Background, new string[] { msgReciever.ParseLoadMsg(msg).loadMessage }); } } }
public void THMsgProc() { while (true) { HiResTimer hrt = new HiResTimer(); Message msg = msgReciever.TryGetTHMessage(); Console.WriteLine("\n<--------------------------------------------------------->"); Console.WriteLine("\nMessage recieved from test harness."); if (msg.recipient == "AboutLog") { Console.WriteLine("\nDemonstrating test logs and results:"); TestResults tr = msgReciever.ParseResultMsg(msg); Console.WriteLine(tr.log); Console.WriteLine("\nDemonstrating querying results from repository:"); Console.WriteLine("\nSending message to repository..."); SetupQueryMessageToRepo(tr, "http://localhost:4048/ICommService/BasicHttp", "http://localhost:8088/ICommService/BasicHttp", "Upload"); msgSenderwithRepo.channel.PostMessage(msgToRepoQuery); Console.WriteLine("\nWaiting for message from repository..."); hrt.Start(); Message repoReply = msgReciever.TryGetRepoMessage("Query"); hrt.Stop(); Console.WriteLine(""); Console.WriteLine("\nRecieved message in {0} microsec.", hrt.ElapsedMicroseconds); Console.WriteLine(""); TestLoadStatus loadStatus = msgReciever.ParseLoadMsg(repoReply); Console.WriteLine(loadStatus.loadMessage); if (loadStatus.status) { using (FileStream fs = new FileStream(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..\\..\\..\\TestResults", tr.LogName + "Summary.txt"), FileMode.Open)) using (StreamReader sr = new StreamReader(fs)) { Console.WriteLine(sr.ReadToEnd()); } } } else { Console.WriteLine("\nDemonstrating dll load status in test harness:"); Console.WriteLine(msgReciever.ParseLoadMsg(msg).loadMessage); } } }
static void Main(string[] args) { object locker = new object(); lock (locker) { Client client = new Client(); client.ClientSetup(client); Thread childTH = new Thread(new ThreadStart(client.THMsgProc)); childTH.Start(); try { client.GetRequestFiles(); foreach (info_In_One_Request_Folder info in client.folderInfoList) { HiResTimer hrt = new HiResTimer(); client.SetupLoadMessageToRepo(info, "http://localhost:4048/ICommService/BasicHttp", "http://localhost:8088/ICommService/BasicHttp", "Download"); client.msgSenderwithRepo.channel.PostMessage(client.msgToRepoLoad); Console.WriteLine("\nWaiting for message from repository"); hrt.Start(); Message msgFromRepo = client.msgReciever.TryGetRepoMessage("Load"); hrt.Stop(); TestLoadStatus loadStatus = client.msgReciever.ParseLoadMsg(msgFromRepo); Console.WriteLine(""); Console.WriteLine("\nRecieved message from repository in {0} microsec", hrt.ElapsedMicroseconds); Console.WriteLine(""); Console.WriteLine(loadStatus.loadMessage); if (loadStatus.status) { Console.WriteLine("\nSending message to TH"); client.SetupMessageToTH(info, "http://localhost:4048/ICommService/BasicHttp", "http://localhost:8088/ICommService/BasicHttp"); client.msgSenderwithTH.channel.PostMessage(client.msgToTH); } } childTH.Join(); Console.ReadKey(); } catch (Exception ex) { Console.Write("\n\n {0}", ex.Message); } Console.Write("\n\n"); } }
//----< create local directory and load from Repository >-------- RequestInfo processRequestAndLoadFiles(Message testRequest) { HiResTimer hrt = new HiResTimer(); string localDir_ = ""; RequestInfo rqi = new RequestInfo(); rqi.requestInfo = extractTests(testRequest); List <string> files = extractCode(rqi.requestInfo); localDir_ = makeKey(testRequest.author); Console.WriteLine(" \n Key :", localDir_); Console.WriteLine("\n**********************************************************************"); Console.WriteLine("\nDemonstrating requirement 8 ,unique key"); // name of temporary dir to hold test files rqi.tempDirName = localDir_; lock (sync_) { filePath_ = System.IO.Path.GetFullPath(localDir_); // LoadAndTest will use this path TLS[Thread.CurrentThread.ManagedThreadId] = filePath_; } Console.Write("\n creating local test directory \"" + localDir_ + "\""); System.IO.Directory.CreateDirectory(localDir_); //for file streaming to download files this.comm.sndr.channel = Sender.CreateServiceChannel("http://localhost:8082/StreamService"); Console.Write("\n loading code from Repository"); foreach (string file in files) { hrt.Start(); try { string name = System.IO.Path.GetFileName(file); this.comm.sndr.changepath(System.IO.Path.GetFullPath(localDir_)); this.comm.sndr.download(file); } catch (Exception message) { Console.Write("Exception of file", message); Console.Write("\n TID" + Thread.CurrentThread.ManagedThreadId + ": could not retrieve file \"" + file + "\""); } hrt.Stop(); Console.Write( "\n\n Total elapsed time for downloading = {0}", hrt.ElapsedMicroseconds); Console.Write("\n TID" + Thread.CurrentThread.ManagedThreadId + ": retrieved file \"" + file + "\""); } Console.WriteLine(); return(rqi); }
void changeNameAndSendToRepo(string filename, CommandData cmd)//change name so that every file will have a unique name in repository { if (File.Exists(filename)) { string newname = System.IO.Path.GetDirectoryName(filename) + "/" + cmd.testAuthor + "_" + cmd.dateTime + "_" + System.IO.Path.GetFileName(filename); File.Move(filename, newname); IFileService fs = null; int count = 0; while (true) { try { fs = TestHarness.fileSender.CreateChannel(RepoFRcvr); break; } catch { textBox7.Text += ("\n connection to service failed " + count + " times - trying again"); count++; Thread.Sleep(500); continue; } } textBox7.Text += ("\n Connected to " + RepoFRcvr); textBox7.Text += ("\n sending file:" + newname); timer.Start(); if (!fileSender.SendFile(fs, newname)) { Console.Write("\n could not send file"); timer.Stop(); } else { timer.Stop(); textBox7.Text += ("\nfile send success, usingtime: " + timer.ElapsedTimeSpan); } File.Move(newname, filename); } }
//Main function parses and sends the messages to server// static void Main(string[] args) { Util.verbose = false; Server srvr = new Server(); srvr.ProcessCommandLine(args); Console.Title = "Server"; Console.Write(String.Format("\n Starting CommService server listening on port {0}", srvr.port)); Console.Write("\n ====================================================\n"); Sender sndr = new Sender(Util.makeUrl(srvr.address, srvr.port)); Receiver rcvr = new Receiver(srvr.port, srvr.address); Action serviceAction = () => { Message msg = null; DBEngine<int, DBElement<int, string>> dbserver = new DBEngine<int, DBElement<int, string>>(); //new DBEngine QueryEngine QE = new QueryEngine(); HiResTimer timer = new HiResTimer(); //new object for timer while (true) { msg = rcvr.getMessage(); // note use of non-service method to deQ messages Console.Write("\n Received message:"); Console.Write("\n sender is {0}", msg.fromUrl); Console.Write("\n content is {0}\n", msg.content); if (msg.content == "connection start message") continue; // don't send back start message if (msg.content == "done") { Console.Write("\n client has finished\n");continue; } if (msg.content == "closeServer") { Console.Write("received closeServer"); break; } timer.Start(); //start timer XElement insertelem = XElement.Parse(msg.content); XElement res = new XElement("result", "not found"); processor rdbserver = new processor(); Console.WriteLine("\n----------write client operations----------"); Console.WriteLine("\n"); //----------select the required method to perform operations------------// if (insertelem.Element("Type").Value.Equals("Insert")) res = rdbserver.insert(insertelem, dbserver); else if (insertelem.Element("Type").Value.Equals("Delete")) res = rdbserver.Delete(insertelem, dbserver); else if (insertelem.Element("Type").Value.Equals("EditName")) res = rdbserver.EditName(insertelem, dbserver); else if (insertelem.Element("Type").Value.Equals("getvalue")) res = rdbserver.getvalue(insertelem, dbserver, QE); else if (insertelem.Element("Type").Value.Equals("EditDescr")) res = rdbserver.editdescr(insertelem, dbserver); else if (insertelem.Element("Type").Value.Equals("getchildren")) res = rdbserver.getchildren(insertelem, dbserver, QE); else if (insertelem.Element("Type").Value.Equals("Persist")) res = rdbserver.persistdb(insertelem, dbserver); else Console.Write(" operation failed "); Console.WriteLine("\n-------------server response----------"); XElement response = new XElement("resonse"); response.Add(res); timer.Stop(); //stop timer Console.WriteLine("the time taken for operation is {0}", timer.ElapsedMicroseconds + " MicroSeconds "); srvr.send_wpf_msg(timer.ElapsedMicroseconds, sndr); Util.swapUrls(ref msg); msg.content = response.ToString(); sndr.sendMessage(msg); //sending message } }; if (rcvr.StartService()) rcvr.doService(serviceAction); // This serviceAction is asynchronous so the call doesn't block. Util.waitForUser(); } }
private void bnInvoke_Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; try { Init(); HiResTimer hrt = new HiResTimer(); hrt.Start(); object result = wsp.InvokeCall(); hrt.Stop(); tbElapsedTime.Text = hrt.ElapsedMicroseconds.ToString(); tbResult.Text = result.ToString(); if(wsp.EnableMessageAccess) { string tmpReqFile = SaveRequestToTempFile(wsp.SoapRequest); string tmpRespFile = SaveResponseToTempFile(wsp.SoapResponse); object obj = null; webBrowserRequest.Navigate ("file://" + tmpReqFile, ref obj, ref obj, ref obj, ref obj); webBrowserResponse.Navigate ("file://" + tmpRespFile, ref obj, ref obj, ref obj, ref obj); } } catch(Exception ex) { MessageBox.Show(ex.Message); } this.Cursor = Cursors.Default; }
/// <summary> /// GetByKeyCriteria criteria for the query type /// </summary> /// <param name="hres"></param> /// <param name="msg"></param> /// <param name="clnt"></param> /// <param name="sndr"></param> /// <param name="timerH"></param> /// <param name="docTemp"></param> /// <param name="msgid"></param> private static void GetByKeyCriteria(HiResTimer hres, Message msg, ReadClient clnt, Sender sndr, HiResTimer timerH, out XDocument docTemp, out string msgid) { docTemp = XDocument.Load("Input.xml"); clnt.RemoveOtherReads(ref docTemp, "GetKeyCriteria"); clnt.RemoveOtherWrites(ref docTemp, "GetKeyCriteria"); XElement k = docTemp.Descendants("OperationMessage").Where(d => d.Element("QueryType").Value == "GetKeyCriteria").Select(j => j).Single(); clnt.numMsgs = int.Parse(k.Elements("Count").Single().Value); clnt.total += clnt.numMsgs; hres.Start(); timerH.Start();//High resolution timer started msgid = ""; for (int i = 0; i < clnt.numMsgs; i++) { docTemp = XDocument.Load("Input.xml"); clnt.RemoveOtherReads(ref docTemp, "GetKeyCriteria"); clnt.RemoveOtherWrites(ref docTemp, "GetKeyCriteria"); msgid = clnt.msgRand++.ToString(); XElement y = null; y = docTemp.Descendants("OperationMessage").Where(d => d.Element("QueryType").Value == "GetKeyCriteria").Select(j => j).Single(); y.Elements("MessageID").Single().Value = msgid; y.Elements("InsertTime").Single().Value = DateTime.Now.Ticks.ToString(); msg.content = docTemp.ToString(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; if (sndr.sendMessage(msg)) { Console.Write("Sent message(Message ID {0}) to GetCriteria from key\n", msgid); Thread.Sleep(50); } } }
private void processEvaluate() { String[] sarray = { }; try { toolStripStatusLabelMessage.Text = "Processing..."; statusStrip1.Update(); // Get URL, username and password from registry RetrieveSettings(); // Clear spreadsheet (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.Cells.ClearContents(); DeleteCharts(); (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.Cells.ClearFormats(); /* * Excel.Range range; * range = (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.get_Range("A5", Missing.Value); * range = range.get_Resize(maxRows, colCount); * range.Cells.ClearFormats(); */ HiResTimer hrt = new HiResTimer(); // Remove comments String queryString = System.Text.RegularExpressions.Regex.Replace(syntaxEditBES.Text, @"//.*", string.Empty); queryString = System.Text.RegularExpressions.Regex.Replace(queryString, @"/\*[^/]*/", string.Empty); hrt.Start(); bes.Timeout = Timeout.Infinite; sarray = bes.GetRelevanceResult(queryString, userName, password); hrt.Stop(); TimeSpan t = TimeSpan.FromMilliseconds(hrt.ElapsedMicroseconds / 1000); // toolStripStatusLabelEvalTime.Text = "Evaluation time: " + (hrt.ElapsedMicroseconds / 1000).ToString() + " ms"; toolStripStatusLabelEvalTime.Text = "Query time: " + t.ToString().Remove(t.ToString().Length - 4); toolStripStatusLabelConnectedUser.Text = "Connected as " + userName; toolStripStatusLabelConnectedUser.BackColor = System.Drawing.SystemColors.Control; Array.Sort(sarray); for (int i = 0; i < sarray.Length; i++) { if (toolStripMenuItemSplit.Checked) { oneRow = SplitResults(sarray[i]); for (int j = 0; j < oneRow.Length; j++) { (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.Cells[i + 2, j + 1] = oneRow[j]; } } else { (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.Cells[i + 2, 1] = sarray[i]; } } (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.Columns.AutoFit(); for (int i = 0; i < oneRow.Length; i++) { Excel.Range rangeCol; rangeCol = (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.get_Range(excelColumnLetter(i) + "1", excelColumnLetter(i) + "1"); if (Convert.ToInt32(rangeCol.ColumnWidth) > maxColumnWidth) { rangeCol.ColumnWidth = maxColumnWidth; } } (AddinExpress.MSO.ADXAddinModule.CurrentInstance as AddinModule).ExcelApp.get_Range("A1", "A1").Select(); // Just to make the results look good, when only 1 item returned, it will say 1 item, rather than 1 items. if (sarray.Length == 0) { toolStripStatusLabelMessage.Text = "Results: " + sarray.Length + " items returned"; toolStripStatusLabelMessage.BackColor = System.Drawing.Color.LightGreen; return; } else if (sarray.Length == 1) { toolStripStatusLabelMessage.Text = "Results: " + sarray.Length + " item returned"; toolStripStatusLabelMessage.BackColor = System.Drawing.SystemColors.Control; } else if (sarray.Length <= Convert.ToInt32(2000)) { toolStripStatusLabelMessage.Text = "Results: " + sarray.Length + " items returned"; toolStripStatusLabelMessage.BackColor = System.Drawing.SystemColors.Control; } else { toolStripStatusLabelMessage.Text = "Results: " + sarray.Length + " items returned. " + "2000 items displayed"; toolStripStatusLabelMessage.BackColor = System.Drawing.SystemColors.Control; } } catch (Exception ex) { toolStripStatusLabelMessage.Text = "Error: " + ex.Message; toolStripStatusLabelMessage.BackColor = System.Drawing.Color.LightCoral; if ((ex.Message.ToLower().Contains("login failed")) || (ex.Message.ToLower().Contains("remote name could not be resolved")) || (ex.Message.ToLower().Contains("unable to connect to the remote server")) || (ex.Message.ToLower().Contains("invalid uri")) || (ex.Message.ToLower().Contains("uri prefix")) || (ex.Message.ToLower().Contains("connection was closed")) ) { toolStripStatusLabelConnectedUser.Text = "Not connected"; toolStripStatusLabelConnectedUser.BackColor = System.Drawing.Color.LightCoral; } if (ex.Message.ToLower().Contains("object reference not set to an instance of an object")) { toolStripStatusLabelMessage.Text = "Error: " + ex.Message + " - Note that this BigFix AddIn only works for BES 7.2 or above."; toolStripStatusLabelMessage.BackColor = System.Drawing.Color.LightCoral; toolStripStatusLabelConnectedUser.Text = "Not connected"; toolStripStatusLabelConnectedUser.BackColor = System.Drawing.Color.LightCoral; } toolStripStatusLabelEvalTime.Text = ""; } }
static void Main(string[] args) { Console.Write("{0}{1}", "\n Time Parsing Operations ", "\n =========================\n" ); OpTimer ot = new OpTimer(); ot.Verbose = false; string fileName = "../../Test.cs"; ot.ParseFile(fileName); HiResTimer hrt = new HiResTimer(); hrt.Start(); int N = 1000; for(int i=0; i<N; ++i) ot.HashLookUp("class"); hrt.Stop(); ulong lookUpTime = hrt.ElapsedMicroseconds; Console.Write("\n {0} lookups took {1} microseconds",N,lookUpTime); Console.Write("\n\n"); ot.showTable(); Console.Write("\n\n"); }
/// <summary> /// Proces wheh the response has been received /// </summary> /// <param name="srvr"></param> /// <param name="sndr"></param> /// <param name="msg"></param> /// <param name="msgid"></param> private static void ProcessResponse(Server srvr, Sender sndr, ref Message msg, ref string msgid) { HiResTimer hres = new HiResTimer(); //High Resolution Timer hres.Start(); XDocument doc = XDocument.Load(new StringReader(msg.content)); string op = doc.Descendants("Operation").Select(i => i).Single().Value; if (op == "Read") srvr.ProcessReadMessage(ref msg, ref msgid); else srvr.ProcessMessage(ref msg, ref msgid); hres.Stop(); Console.WriteLine("Server execution time for processing message(MsgID:{0}) is {1} microseconds \n", msgid, hres.ElapsedMicroseconds); Util.swapUrls(ref msg); // swap urls for outgoing message if (srvr.tot.ContainsKey(msg.toUrl)) { ulong x = ulong.Parse(srvr.tot[msg.toUrl].ToString()); x += hres.ElapsedMicroseconds; srvr.tot[msg.toUrl] = x.ToString(); } else srvr.tot[msg.toUrl] = hres.ElapsedMicroseconds; sndr.sendMessage(msg); }
/// <summary> /// Insert performance results writer client /// </summary> /// <param name="hres"></param> /// <param name="msg"></param> /// <param name="clnt"></param> /// <param name="sndr"></param> /// <param name="xmlStr"></param> /// <param name="docTemp"></param> /// <param name="key"></param> /// <param name="msgid"></param> /// <returns></returns> private static string InsertPerformance(HiResTimer hres, Message msg, WriterClient clnt, Sender sndr, string xmlStr, out XDocument docTemp, out string key, out string msgid) { docTemp = XDocument.Load("Input.xml"); XElement k = docTemp.Descendants("OperationMessage").Where(d => d.Element("Operation").Value == "Insert").Select(i => i).Single(); if (k.Elements("Count").Single().Value != "") clnt.numMsgs = int.Parse(k.Elements("Count").Single().Value); clnt.total += clnt.numMsgs; hres.Start(); //High resolution timer started key = ""; msgid = ""; for (int i = 0; i < clnt.numMsgs; i++) { docTemp = XDocument.Load("Input.xml"); xmlStr = clnt.InsertGenerator(docTemp, ref msgid, ref key, "int"); //Generate data using the xml structure msg.content = xmlStr; msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; if (sndr.sendMessage(msg)) { Console.Write("Sent message(Message ID {0}) to insert into DB successfully\n", msgid); Thread.Sleep(50); } } return xmlStr; }
/// <summary> /// Performance testing by inserting items /// </summary> /// <param name="hres"></param> /// <param name="msg"></param> /// <param name="clnt"></param> /// <param name="rcvr"></param> /// <param name="sndr"></param> private static void PerformanceTesting(HiResTimer hres, Message msg, WriterClient clnt, Receiver rcvr, Sender sndr) { try { XmlTextReader textReader = new XmlTextReader("Input.xml"); string xmlStr = ""; HiResTimer t = new HiResTimer(); t.Start(); if (File.Exists("Input.xml")) { XDocument docTemp; string key, msgid; xmlStr = InsertPerformance(hres, msg, clnt, sndr, xmlStr, out docTemp, out key, out msgid); string keyUp; XElement l; UpdatePerformance(msg, clnt, sndr, ref xmlStr, out docTemp, key, ref msgid, out keyUp, out l); //Delete entries docTemp = DeletePerformance(msg, clnt, sndr, ref xmlStr, key, ref msgid, ref keyUp, l); } t.Stop(); clnt.WriteClientTime = t.ElapsedMicroseconds; msg = new Message(); msg.fromUrl = clnt.localUrl; msg.toUrl = clnt.remoteUrl; msg.content = "done"; sndr.sendMessage(msg); // Wait for user to press a key to quit. Util.waitForUser(); // shut down this client's Receiver and Sender by sending close messages rcvr.shutDown(); sndr.shutdown(); Console.Write("\n\n"); } catch (CustomException ex) { throw new CustomException("Error in main of peformance testing", ex); } }
public void ThreadMethod() { Delegate[] preCleanupFunctions = _preClean.GetInvocationList(); Delegate[] testCases = _testCaseDel.GetInvocationList(); Delegate[] postCleanupFunctions = _postClean.GetInvocationList(); Delegate[] checkFunctions = _testValidity.GetInvocationList(); //get run ordering and initialise Int32 numberTestCases = testCases.GetLength(0); Int32 totalNumberRuns = numberTestCases * _numberRuns; TestResult[] results = new TestResult[numberTestCases]; TimeSpan[,] runTimes = new TimeSpan[numberTestCases, _numberRuns]; string[,] errTxt = new string[numberTestCases, _numberRuns]; Int32[] runsSoFar = new Int32[numberTestCases]; Int32[] runNumberOrder = GetRandomSequence(numberTestCases, totalNumberRuns); //run tests for (Int32 i = 0; i < totalNumberRuns; ++i) { PercentageDone = i * 100 / totalNumberRuns; Int32 testCaseToRun = runNumberOrder[i]; TestCleanup preClean = (TestCleanup)preCleanupFunctions[testCaseToRun]; if (preClean != null) { preClean(); } TestCase tc = (TestCase)testCases[testCaseToRun]; bool testOK = false; string testError; if (tc == null) { throw new ArgumentException("Null test case delegates are not allowed"); } HiResTimer hrt = new HiResTimer(); for (int count = 0; count < _testReReuns && !testOK; ++count) { hrt.Start(); try{ tc(_numberIterations); } catch (Exception e) { if (e is ThreadAbortException) { return; //this exception occurs when test cancelled } System.Windows.Forms.MessageBox.Show(String.Format("Exception caught: {0}", e.Message)); PercentageDone = 100; _testsStoppedEvent.Set(); return; } hrt.Stop(); TestCleanup postClean = (TestCleanup)postCleanupFunctions[testCaseToRun]; if (postClean != null) { postClean(); } TestValidity tv = (TestValidity)checkFunctions[testCaseToRun]; if (tv != null) { testOK = tv(out testError); } else { testError = String.Empty; } runTimes[testCaseToRun, runsSoFar[testCaseToRun]] = hrt.ElapsedTimeSpan; errTxt[testCaseToRun, runsSoFar[testCaseToRun]] = testError; } ++runsSoFar[testCaseToRun]; } //post-process _results = PostProcessResults(testCases, runTimes, errTxt); TestsDone = true; _testsStoppedEvent.Set(); PercentageDone = 100; }
// //----< parse file into identifiers and store in Hashtable >------- public void ParseFile(string fileName) { HiResTimer total = new HiResTimer(); HiResTimer open = new HiResTimer(); HiResTimer parse = new HiResTimer(); try { total.Start(); open.Start(); StreamReader fs = new StreamReader(fileName); open.Stop(); openTime = open.ElapsedMicroseconds; parse.Start(); int size = 0; string line; while((line = fs.ReadLine()) != null) { string[] tokens = line.Split(); foreach(string token in tokens) { if(token == "\n" | token.Length == 0) continue; if(Verbose) Console.Write("\n {0}",token); string tok, compositeToken = token; while(compositeToken != "") { tok = extractIdent(ref compositeToken); if(tok == "") continue; if(Verbose) Console.Write("\n {0}",tok); if(table.Contains(tok)) table[tok] = 1 + (int)table[tok]; else { table[tok] = 1; size += tok.Length; } } } } parse.Stop(); parseTime = parse.ElapsedMicroseconds; total.Stop(); totalTime = total.ElapsedMicroseconds; Console.Write("\n Open time: {0} microsec",openTime); Console.Write("\n Parse time: {0} microsec",parseTime); Console.Write("\n total time: {0} microsec",totalTime); Console.Write("\n Hash size: {0} bytes",size); } catch { Console.Write("\n Could not open file \"{0}\"\n\n",fileName); } }