本文主要小結一下phantomjs的優化措施java
phantomjs至關於一個後臺瀏覽器,有點內嵌jetty的味道,一般在自動化測試或者爬蟲領域用。chrome
對於其餘語言進行進程間調用的話,頻繁地調用進程進行上下文切換以及頻繁建立對象及其消耗時間,所以能夠進行鏈接池優化處理api
在引入鏈接池以後,處理很差的話,難以免的帶來不少狀態的錯亂,相似java的threadlocal,在tomcat鏈接池中使用的話,若是上一個線程使用完沒有清除掉,則下個複用該線程的請求則會讀到髒數據。瀏覽器
phantomjs貌似沒有reset的接口,這裏可使用一個黑魔法,在每次get的時候,先打開一個blank,而後再進行請求。緩存
若是對同一個頁面訪問比較頻繁,則開啓cache緩存一些靜態資源,避免重複請求tomcat
若是你是使用selenium的封裝來調用的話,那麼能夠考慮直接使用原始api,更直接一些。性能優化
請求網絡資源的處理,多是很是耗時的,也及其不穩定,所以吞吐量確定不高,高併發的時候很容易出現瓶頸,必要的時候進行分佈式部署。網絡
除了phantomjs,chrome以及firefox也推出相似的headless版本,所以也多了幾個選擇,有待進行嘗試。併發