日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

modbus调试时间超时_Java调试器和超时

發布時間:2023/12/3 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 modbus调试时间超时_Java调试器和超时 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

modbus調試時間超時

在代碼中存在超時的情況下如何使用調試器。

我的調試器王國!

因此,您一直忙于編寫一個項目,一切順利,直到出現錯誤為止。 您可以進入開發人員的工具箱,然后拔出調試器。 很棒–您可以設置斷點,可以在出現異常時中斷,還可以在運行時檢查表達式。 無論等待什么挑戰,您都可以肯定,調試器將為您提供幫助!

不幸的是生活并不那么輕松。 許多代碼都需要某種形式的超時 -一段時間后發生的事件。 問題在于超時會破壞調試體驗。 您坐在那里看著斷點,想著“現在為什么x是2而不是1?” of! 超時開始,您將無法繼續。 更糟糕的是,JVM本身退出了! 因此,您要經歷增加超時,調試和解決問題的過程。 之后,您要么將超時返回到其原始設置,然后必須再次執行相同的繁瑣過程,要么將修復意外地提交到源代碼樹中,從而破壞了測試甚至是生產。 在我看來,這似乎并不理想。

“出于某種原因,這是超時病,不信任任何朋友”

人們引入超時有很多原因。 我在下面列出了一些優點和缺點,而且我敢肯定,您自己還會想到一些。

  • 檢查在一定時間內是否已響應異步事件。
  • 避免餓死基于時間的資源,例如線程池。
  • 您的比賽條件需要快速解決。
  • 您正在等待事件發生,并決定用硬編碼假設將花費多長時間。 (在測試中最常見)

現在很明顯,如果你超時被引入作為一個黑客那么它是一個很好的時間來清潔的童子軍的代碼。 如果您需要依賴于測試中發生的事件,則應將這些測試視為API的客戶端,并能夠知道事件何時發生。 這可能涉及注入在事件發生時被調用的模擬程序,或訂閱事件流。 如果您有比賽狀況,請解決它! 我知道這很痛苦而且很辛苦,但是您是否真的想讓代碼庫中的定時炸彈準備好在凌晨3點生成支持電話?

管理超時

前面已經說過,我們應該刪除超時的不良用法,很顯然,超時是完全合法的用法。 它們在事件驅動和異步代碼中尤其常見。 能夠與他們一起調試仍然會很好。 不管其他因素如何,良好實踐都是為了使超時標準化為可在運行時設置的配置屬性。 這樣,當您在本地IDE與生產環境中運行時,可以輕松更改它們。 它還可以幫助管理從不同的硬件設置中遇到的不同性能屬性。

將超時從代碼中外部化為配置后,然后可以檢測代碼是否在調試器中運行,并在這種情況下將超時設置為明顯更長的時間。 這樣做的技巧是認識到調試器涉及運行Java代理,該代理會修改運行該程序的程序的命令行參數。 您可以檢查這些命令行參數是否包含正確的代理匹配器。 下面的代碼片段顯示了如何執行此操作,并且已經過測試,可以在Eclipse和Intellij IDEA下工作。

RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); String jvmArguments = runtimeMXBean.getInputArguments().toString(); boolean hasDebuggerAttached = jvmArguments.contains("-agentlib:jdwp");

我可以理解為什么有些人也將其視為黑客,您通過查看自己的命令行參數然后圍繞它進行調整,從而積極地發現有關您環境的某些信息。 從我的角度來看,我發現這是一種有用的技術。 它確實使在存在超時的情況下調試起來更加容易。

翻譯自: https://www.javacodegeeks.com/2014/07/java-debuggers-and-timeouts.html

modbus調試時間超時

總結

以上是生活随笔為你收集整理的modbus调试时间超时_Java调试器和超时的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。