
1.為了統計qps,我使用了Interlocked鎖
是的,是鎖總會有損耗,因為使用了Interlocked鎖的緣故,肯定會對性能測驗造成一定的干擾,那我們先來看看底噪是多少,開100個執行緒,寫個什么都不干的函式,開始run,

cpu跑滿了,火力全開,qps達到了1.1億, 哦哦哦,我想我可以忽略這個影響了,你說是吧,
2撰寫qps計數
這里記錄了qps、error、threads以及時間, 為了不再開啟執行緒和省事,甚至還增加了一個按照時間秒數列印輸出日志的功能,
一切就是這么簡單,
這是定義:
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計數
public void AddQps()
{
Interlocked.Increment(ref Qps);
Print();
}
到整數時間就列印
if(Seconds == Interlocked.Exchange(ref printSecond,Seconds+1))
{
Console.WriteLine($"time={Seconds}, threads= {MyThreads}, qps = {MyQps}, error = {MyError}");
}
增加錯誤,和執行緒數,類似增加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 使用計數
在我們內部的測驗用例內,我們需要呼叫計數類的增加qps等介面,這個計數類是全域的,各個執行緒共享計數類實體,
private void internalTest()
{
var idx = random.Next(0, actions.Count);
try
{
actions[idx].Invoke();
}
catch (Exception ex)
{
calcValue.AddError();
}
finally
{
calcValue.AddQps();
}
}
4.并發執行緒測驗
回圈新建執行緒類,并在執行緒體內塞入單個的測驗用例,以及全域的計數類,在建立好所有的執行緒后,耗時不計入性能的計算都預熱好,然后一塊開啟執行緒,開始測驗,
為了讓性能測驗更充分,我撰寫了不同的計算程序,并使用隨機函式隨機獲取并塞入執行緒執行,
當然一切搞定后,呼叫就非常簡單了,
var test = new ParallelTest(nThread);
test.Start<UTest1>(TimeSpan.FromSeconds(nSpan));
當然.net core 開啟執行緒池限制, 避免性能問題,
ThreadPool.SetMinThreads(1000, 1000);
ThreadPool.SetMaxThreads(1500, 1500);

嗯嗯,相比底噪,差距還是蠻大的,因此盡可以使用,
5. 小結
8月更新完畢,其實還是蠻困難的,寫到最后都不知道寫啥了,生成速度完全跟不上啊,
例行小結,理性看待!
結的是啥啊,結的是我想你點贊而不可得的寂寞,😳😳😳
👓都看到這了,還在乎點個贊嗎?
👓都點贊了,還在乎一個收藏嗎?
👓都收藏了,還在乎一個評論嗎?
?
以上筆者的經歷更像一張橫向的知識網,創建了一個交流平臺 914172719 ,群內有各種技術同行交流、學習資料、面試經驗等,其中用到jenkins、docker、moutebank、python編程等,還需要花更多的精力去深入學習,當每項技能都能掌握到一定深度,才能稱為一個完整的知識體系,

最后: 可以關注公眾號:傷心的辣條 ! 進去有許多資料共享!資料都是面試時面試官必問的知識點,也包括了很多測驗行業常見知識,其中包括了有基礎知識、Linux必備、Shell、互聯網程式原理、Mysql資料庫、抓包工具專題、介面測驗工具、測驗進階-Python編程、Web自動化測驗、APP自動化測驗、介面自動化測驗、測驗高級持續集成、測驗架構開發測驗框架、性能測驗、安全測驗等,
如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!
好文推薦
轉行面試,跳槽面試,軟體測驗人員都必須知道的這幾種面試技巧!
面試經:一線城市搬磚!又面軟體測驗崗,5000就知足了…
面試官:作業三年,還來面初級測驗?恐怕你的軟體測驗工程師的頭銜要加雙引號…
什么樣的人適合從事軟體測驗作業?
那個準點下班的人,比我先升職了…
測驗崗反復跳槽,跳著跳著就跳沒了…
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298062.html
標籤:其他
