成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

編寫一個并發(fā)性能測試的小程序

Michael_Lin / 1021人閱讀

摘要:并發(fā)線程測試循環(huán)新建線程類,并在線程體內(nèi)塞入單個的測試用例,以及全局的計數(shù)類。為了讓性能測試更充分,我編寫了不同的計算過程,并使用隨機(jī)函數(shù)隨機(jī)獲取并塞入線程執(zhí)行。

1.為了統(tǒng)計qps,我使用了Interlocked鎖

是的,是鎖總會有損耗,因?yàn)槭褂昧薎nterlocked鎖的緣故,肯定會對性能測試造成一定的干擾,那我們先來看看底噪是多少,開100個線程,寫個什么都不干的函數(shù),開始run。

cpu跑滿了,火力全開,qps達(dá)到了1.1億, 哦哦哦,我想我可以忽略這個影響了,你說是吧。

2編寫qps計數(shù)

這里記錄了qps、error、threads以及時間, 為了不再開啟線程和省事,甚至還增加了一個按照時間秒數(shù)打印輸出日志的功能。

一切就是這么簡單。

這是定義:

private volatile int Qps = 0;private volatile int Error = 0;private volatile int Threads = 0;private DateTime dtStart = DateTime.Now;private volatile int printSecond = 1;
我們提供個接口,增加qps計數(shù)public void AddQps(){    Interlocked.Increment(ref Qps);    Print();}

到整數(shù)時間就打印

if(Seconds == Interlocked.Exchange(ref printSecond,Seconds+1)){    Console.WriteLine($"time={Seconds}, threads= {MyThreads}, qps = {MyQps}, error = {MyError}");}

增加錯誤,和線程數(shù),類似增加qps接口。

提供訪問qps等的屬性:

public int Seconds => (int)((DateTime.Now - dtStart).TotalSeconds);public int MyQps => Qps / (Seconds==0 ? 1: Seconds);public int MyError => Error / (Seconds == 0 ? 1 : Seconds);public int MyThreads => Threads ;

3 使用計數(shù)

在我們內(nèi)部的測試用例內(nèi),我們需要調(diào)用計數(shù)類的增加qps等接口,這個計數(shù)類是全局的,各個線程共享計數(shù)類實(shí)例。

private void internalTest(){    var idx = random.Next(0, actions.Count);    try    {        actions[idx].Invoke();    }    catch (Exception ex)    {        calcValue.AddError();    }    finally    {        calcValue.AddQps();    }}

4.并發(fā)線程測試

循環(huán)新建線程類,并在線程體內(nèi)塞入單個的測試用例,以及全局的計數(shù)類。在建立好所有的線程后,耗時不計入性能的計算都預(yù)熱好,然后一塊開啟線程,開始測試。

為了讓性能測試更充分,我編寫了不同的計算過程,并使用隨機(jī)函數(shù)隨機(jī)獲取并塞入線程執(zhí)行。

當(dāng)然一切搞定后,調(diào)用就非常簡單了。

var test = new ParallelTest(nThread);test.Start<UTest1>(TimeSpan.FromSeconds(nSpan));

當(dāng)然.net core 開啟線程池限制, 避免性能問題。

 ThreadPool.SetMinThreads(1000, 1000); ThreadPool.SetMaxThreads(1500, 1500);

嗯嗯,相比底噪,差距還是蠻大的,因此盡可以使用。

5. 小結(jié)

8月更新完畢,其實(shí)還是蠻困難的,寫到最后都不知道寫啥了,生成速度完全跟不上啊。

例行小結(jié),理性看待!

結(jié)的是啥啊,結(jié)的是我想你點(diǎn)贊而不可得的寂寞。???

?都看到這了,還在乎點(diǎn)個贊嗎?

?都點(diǎn)贊了,還在乎一個收藏嗎?

?都收藏了,還在乎一個評論嗎?

?

以上筆者的經(jīng)歷更像一張橫向的知識網(wǎng),創(chuàng)建了一個交流平臺 914172719 ,群內(nèi)有各種技術(shù)同行交流、學(xué)習(xí)資料、面試經(jīng)驗(yàn)等。其中用到j(luò)enkins、docker、moutebank、python編程等,還需要花更多的精力去深入學(xué)習(xí),當(dāng)每項(xiàng)技能都能掌握到一定深度,才能稱為一個完整的知識體系。

最后: 可以關(guān)注公眾號:傷心的辣條 ! 進(jìn)去有許多資料共享!資料都是面試時面試官必問的知識點(diǎn),也包括了很多測試行業(yè)常見知識,其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進(jìn)階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。

如果我的博客對你有幫助、如果你喜歡我的博客內(nèi)容,請 “點(diǎn)贊” “評論” “收藏” 一鍵三連哦!


好文推薦

轉(zhuǎn)行面試,跳槽面試,軟件測試人員都必須知道的這幾種面試技巧!

面試經(jīng):一線城市搬磚!又面軟件測試崗,5000就知足了…

面試官:工作三年,還來面初級測試?恐怕你的軟件測試工程師的頭銜要加雙引號…

什么樣的人適合從事軟件測試工作?

那個準(zhǔn)點(diǎn)下班的人,比我先升職了…

測試崗反復(fù)跳槽,跳著跳著就跳沒了…

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/119391.html

相關(guān)文章

  • 函數(shù)式編程與面向?qū)ο缶幊蘙5]:編程的本質(zhì)

    摘要:函數(shù)式編程與面向?qū)ο缶幊叹幊痰谋举|(zhì)之劍目錄編程的本質(zhì)讀到兩篇文章寫的不錯綜合摘錄一下復(fù)合是編程的本質(zhì)函數(shù)式程序員在洞察問題方面會遵循一個奇特的路線。在面向?qū)ο缶幊讨?,類或接口的聲明就是表面? 函數(shù)式編程與面向?qū)ο缶幊蘙5]:編程的本質(zhì) 之劍 2016.5.6 01:26:31 編程的本質(zhì) 讀到兩篇文章,寫的不錯, 綜合摘錄一下 復(fù)合是編程的本質(zhì) 函數(shù)式程序員在洞察問題方面會遵循...

    miracledan 評論0 收藏0
  • Akka系列(一):Akka簡介與Actor模型

    摘要:是一個構(gòu)建在上,基于模型的的并發(fā)框架,為構(gòu)建伸縮性強(qiáng),有彈性的響應(yīng)式并發(fā)應(yīng)用提高更好的平臺。上述例子中的信件就相當(dāng)于中的消息,與之間只能通過消息通信。當(dāng)然模型比這要復(fù)雜的多,這里主要是簡潔的闡述一下模型的概念。模型的出現(xiàn)解決了這個問題。 Akka是一個構(gòu)建在JVM上,基于Actor模型的的并發(fā)框架,為構(gòu)建伸縮性強(qiáng),有彈性的響應(yīng)式并發(fā)應(yīng)用提高更好的平臺。本文主要是個人對Akka的學(xué)習(xí)和應(yīng)...

    PingCAP 評論0 收藏0
  • 代碼整潔之道

    摘要:在代碼整潔之道,提出一種軟件質(zhì)量,可持續(xù)開發(fā)不僅在于項(xiàng)目架構(gòu)設(shè)計,還與代碼質(zhì)量密切相關(guān),代碼的整潔度和質(zhì)量成正比,一份整潔的代碼在質(zhì)量上是可靠的,為團(tuán)隊(duì)開發(fā),后期維護(hù),重構(gòu)奠定了良好的基礎(chǔ)。 現(xiàn)在的軟件系統(tǒng)開發(fā)難度主要在于其復(fù)雜度和規(guī)模,客戶需求也不再像Winston Royce瀑布模型期望那樣在系統(tǒng)編碼前完成所有的設(shè)計滿足用戶軟件需求。在這個信息爆炸技術(shù)日新月異的時代,需求總是在不停...

    icattlecoder 評論0 收藏0
  • 性能Java代碼的最佳實(shí)踐

    摘要:高性能代碼的最佳實(shí)踐前言在這篇文章中,我們將討論幾個有助于提升應(yīng)用程序性能的方法。要獲得有關(guān)應(yīng)用程序需求的最好最可靠的方法是對應(yīng)用程序執(zhí)行實(shí)際的負(fù)載測試,并在運(yùn)行時跟蹤性能指標(biāo)。 showImg(https://segmentfault.com/img/bVbtgk4?w=256&h=254); 高性能Java代碼的最佳實(shí)踐前言 在這篇文章中,我們將討論幾個有助于提升Java應(yīng)用程序性...

    stackfing 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<