我正在嘗試調試我的 Java 代碼的一些問題,該代碼建立了 http/https 連接。我想知道為什么在調試時連接會變得非常慢(下載一個小網頁超過一分鐘),即使是在跨過網絡工作的方法時也是如此。如果有一些補救措施。下面我發布了一個示例(您可以更改https:為http:,并嘗試從 Eclipse 按下調試它F11- 對于單步執行,在第一個main()語句中放置一個斷點,并F6在它在那里暫停時按下。我的結果(以毫秒為單位的時間): conn time total timehttp (not stepping) 60 350http (stepping over) 1100 1500https (not stepping) 570 1300https (stepping over) 21000 83000編輯:停用后,Show method result after a step operation選項(通過howlger的回答恰如其分地提出補救措施),時代變多更加合理(約十分之一用于HTTPS)。http (stepping over 2) 150 450https (stepping over 2) 2000 7000我的場景:Java 8 (1.8.0_121-b13),64 位,Win-7,Eclipse Photon(也體驗過 Oxygen)。import java.io.*;import java.net.*;import java.nio.charset.StandardCharsets;public class TestConn { public static void downloadFromUrl(final URL url) throws IOException { long t0 = System.currentTimeMillis(); URLConnection conn = url.openConnection(); System.out.println("conn msecs: " + (System.currentTimeMillis() - t0) + " url=" + url); System.out.println("====================================="); try (BufferedReader in = new BufferedReader( new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8))) { String line; int cont = 0; while ((line = in.readLine()) != null) { if (cont++ < 4) System.out.println(line); } if(cont >=4) System.out.printf("== total lines: %d (%d skipped)\n",cont,cont-4); System.out.println("==============done======================="); } }
1 回答
海綿寶寶撒
TA貢獻1809條經驗 獲得超8個贊
這就是為什么在Window > Preferences: Java > Debug 中有首選項Show method result after a step operation (如果 VM 支持;可能很慢)。
添加回答
舉報
0/150
提交
取消
