您好,登錄后才能下訂單哦!
本篇文章為大家展示了Java Stopwatch類之性能與時間計時器的示例分析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
在研究性能的時候,完全可以使用Stopwatch計時器計算一項技術的效率。但是有時想知道某想技術的性能的時候,又常常想不起可以運用Stopwatch這個東西,太可悲了。
屬性:
Elapsed 獲取當前實例測量得出的總運行時間。
ElapsedMilliseconds 獲取當前實例測量得出的總運行時間(以毫秒為單位)。
ElapsedTicks 獲取當前實例測量得出的總運行時間(用計時器計時周期表示)。
IsRunning 獲取一個指示 Stopwatch 計時器是否在運行的值。
方法
GetTimestamp 獲取計時器機制中的當前最小時間單位數。
Reset 停止時間間隔測量,并將運行時間重置為零。
Restart 停止時間間隔測量,將運行時間重置為零,然后開始測量運行時間。
Start 開始或繼續測量某個時間間隔的運行時間。
StartNew 對新的 Stopwatch 實例進行初始化,將運行時間屬性設置為零,然后開始測量運行時間。
Stop 停止測量某個時間間隔的運行時間。
示例:
static void Main(string[] args) { Stopwatch sw = new Stopwatch(); sw.Start(); //開始計時 WebClient wc = new WebClient(); string str = wc.DownloadString("http://www.jmeii.com/"); Console.WriteLine(sw.IsRunning); //輸出 true 計時器是否在運行。 sw.Stop(); //計時結束 Console.WriteLine(sw.Elapsed); //輸出 00:00:00.3452873 Console.WriteLine(sw.ElapsedMilliseconds); //輸出 223 Console.WriteLine(sw.ElapsedTicks); //輸出501838 Console.WriteLine(sw.IsRunning); //輸出 flase Console.WriteLine(Stopwatch.GetTimestamp()); //輸出56151531319 獲取計時器機制中的當前最小時間單位數。 sw.Reset(); //重置 Console.WriteLine(sw.Elapsed.ToString()); //輸出 00:00:00 //返回的是TimeSpan類型,可以任意處理 sw.Restart(); //重新開始 FileStream fs = new FileStream(@"D:\admin_b.txt", FileMode.Open, FileAccess.Read); //string str = byte[] byteArr = new byte[fs.Length]; fs.Read(byteArr, 0, (int)fs.Length); Stopwatch sw2 = Stopwatch.StartNew(); //創建一個新的計時器 string str2 = Encoding.UTF8.GetString(byteArr); sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); //輸出 10 Console.WriteLine(sw2.ElapsedMilliseconds); //輸出 9 sw2.Stop(); Console.ReadKey(); }
對比FileStream與File類:
static void Main(string[] args) { Stopwatch sw = new Stopwatch(); sw.Start(); FileStream fs = new FileStream(@"D:\admin_b.txt", FileMode.Open, FileAccess.Read); //string str = byte[] byteArr = new byte[fs.Length]; fs.Read(byteArr, 0, (int)fs.Length); string str = Encoding.UTF8.GetString(byteArr); sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); //輸出 12 Stopwatch sw2 = new Stopwatch(); sw2.Start(); File.ReadAllText(@"E:\admin_b.txt"); sw2.Stop(); Console.WriteLine(sw2.ElapsedMilliseconds); //輸出 11 Console.ReadKey(); }
Linq示例:
public class Program { static void Main(string[] args) { //獲取到一個隨機數集合 List<int> ListInt = new List<int>(); Random r = new Random(); for (int i = 0; i < 1000000; i++) //生成一個1百萬數字的集合 { ListInt.Add(r.Next(1000)); } Stopwatch sw = new Stopwatch(); sw.Start(); int count = 0; foreach (var i in ListInt) { count = count + i; } Console.WriteLine("遍歷計算結果:" + count); sw.Stop(); Console.WriteLine("遍歷用時:" + sw.ElapsedMilliseconds); //輸出 13 Stopwatch sw2 = new Stopwatch(); sw2.Start(); int count2 = 0; count2 = ListInt.Sum(); Console.WriteLine("Linq的計算結果:" + count2); Console.WriteLine("Linq的使用時間:" + sw2.ElapsedMilliseconds); //輸出 12 sw2.Stop(); Console.ReadKey(); } }
運行了3,5次,Linq的性能的確厲害。有幾次相等,有幾次少1毫秒。看來Linq to OBJECT還真是靠譜。效率,優雅度都相當好,不愧是高手做的控件。
上述內容就是Java Stopwatch類之性能與時間計時器的示例分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。