6
我正在使用ning異步http客戶端來實現非阻塞優勢。做一個蘋果vs蘋果測試(非阻塞與阻塞),我看到非阻塞版本正在提供更多的請求示例,但異步http客戶端正在創建更多的線程與其阻塞對象相比。這是預期的還是我錯過的東西?異步http客戶端(寧)創建更多的線程?
下面是從壓力測試
Async Http Client
jMeter - 2 threads, 120 seconds, 1 sec ramp up
Peak threads : 270
Heap usage: 600mb
Peak cpu usage: 30%
Total samples: 18228
Blocking version
jMeter - 2 threads, 120 seconds, 1 sec ramp up
Peak threads: 118
heap usage: 260mb
cpu usage: 18%
total samples: 1472
我創建連接的線程池的數量(重複使用它們)
AsyncHttpClientConfig.Builder builder = new AsyncHttpClientConfig.Builder();
builder.setRequestTimeoutInMs(2000);
builder.setMaximumConnectionsPerHost(10);
builder.setMaximumConnectionsTotal(100);
client = new AsyncHttpClient(builder.build());
有我丟失的東西嗎?我試着看看線程轉儲,看看什麼是創建線程,但沒有發現任何有用的東西。 我敢打賭,每個http連接都有一個線程用於在異步http客戶端的I/O完成時觸發回調。
大,非常感謝 – Vinodh
https://github.com/AsyncHttpClient/async-http-client/blob/master/api/src/main/java/org/asynchttpclient/AsyncHttpClientConfig.java 你不介意查明160行多一點(如函數名稱,看到那裏),因爲它在最近的版本中更改 –
這裏的鏈接不工作! –