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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

为什么在生产中进行调试是如此诱人?

發(fā)布時(shí)間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为什么在生产中进行调试是如此诱人? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

生產(chǎn)調(diào)試

為什么在生產(chǎn)中進(jìn)行調(diào)試是如此誘人?

在我的第一份工作中,我要做的任務(wù)之一是修復(fù)一個(gè)錯(cuò)誤,該錯(cuò)誤過(guò)去在非常復(fù)雜的生產(chǎn)系統(tǒng)中有時(shí)會(huì)發(fā)生。 很簡(jiǎn)單! - 我想。 我將在開發(fā)環(huán)境中重現(xiàn)同樣的情況,找到虛線,實(shí)施快速修復(fù),然后完成! 但是,事實(shí)證明,無(wú)法復(fù)制與生產(chǎn)中完全相同的場(chǎng)景-因此一段時(shí)間后,我放棄了這個(gè)想法。 我被迫花費(fèi)數(shù)天時(shí)間分析日志并嘗試關(guān)聯(lián)許多不同的事件,以弄清可能發(fā)生的事情。 很快,我意識(shí)到這就像在大海撈針中一樣乏味。 經(jīng)過(guò)幾天沒(méi)有結(jié)果的結(jié)果,我得出的結(jié)論是,我需要在這里和那里添加更多的日志記錄,然后等待幾天甚至幾個(gè)月,以查看該錯(cuò)誤是否再次發(fā)生。 然后,我認(rèn)為與開發(fā)應(yīng)用程序時(shí)使用的復(fù)雜工具相比,在生產(chǎn)中尋找錯(cuò)誤是有點(diǎn)粗糙的。 您正在實(shí)現(xiàn)一項(xiàng)新功能,并且看到服務(wù)返回的結(jié)果不是您所期望的嗎? 您只需放置幾個(gè)斷點(diǎn),然后單擊“調(diào)試”按鈕即可! 片刻之后,您確切地知道發(fā)生了什么。 在生產(chǎn)環(huán)境中執(zhí)行相同的操作會(huì)很棒嗎?

為什么在生產(chǎn)中進(jìn)行調(diào)試是如此困難?

等一下! –您可能已經(jīng)想到了。 但是我們不是在大多數(shù)現(xiàn)代IDE中都具有遠(yuǎn)程調(diào)試功能嗎? 我們不能像在本地環(huán)境中那樣連接到正在運(yùn)行的生產(chǎn)應(yīng)用程序并對(duì)其進(jìn)行調(diào)試嗎? 盡管有可能,但另一個(gè)問(wèn)題出現(xiàn)了:我們的大多數(shù)業(yè)務(wù)應(yīng)用程序每秒處理許多請(qǐng)求。 當(dāng)對(duì)應(yīng)用程序進(jìn)行遠(yuǎn)程調(diào)試時(shí),沒(méi)有簡(jiǎn)單的方法可以控制在任何地方觸發(fā)的斷點(diǎn)。 您可以想象,當(dāng)我們決定調(diào)試它時(shí),我們不想阻止所有用戶使用我們的應(yīng)用程序。 通常,我們也不能僅僅強(qiáng)迫我們的應(yīng)用程序重現(xiàn)昨天發(fā)生的錯(cuò)誤-有時(shí)唯一的方法就是等到我們的一個(gè)用戶再次發(fā)生該錯(cuò)誤為止。 因此,在生產(chǎn)環(huán)境中保持遠(yuǎn)程調(diào)試會(huì)話而無(wú)須嚴(yán)格控制斷點(diǎn)的觸發(fā)方式,就像在森林中放置地雷并邀請(qǐng)我們的用戶穿越地雷一樣。

更好,更安全的方法

FusionReactor是一個(gè)應(yīng)用程序性能監(jiān)視器,具有許多高級(jí)功能,您通常不會(huì)在監(jiān)視解決方案中找到這些功能。 生產(chǎn)調(diào)試器是其中之一,該調(diào)試器旨在允許您從生產(chǎn)運(yùn)行時(shí)環(huán)境中獲取底層調(diào)試信息。

使用某些傳統(tǒng)的調(diào)試器時(shí),您將面臨的主要問(wèn)題之一是:一旦設(shè)置了斷點(diǎn),它將對(duì)任何跨越代碼點(diǎn)的線程觸發(fā)。 FusionReactor通過(guò)采用一系列控制斷點(diǎn)觸發(fā)方式的技術(shù)來(lái)克服這一問(wèn)題。 例如,它可以限制給定斷點(diǎn)將觸發(fā)的次數(shù)(線程),從而解決了影響太多用戶的問(wèn)題。 需要更多控制方式嗎? 您甚至可以配置一個(gè)斷點(diǎn),以從特定的IP地址(會(huì)話)向用戶觸發(fā),或者在特定變量與值匹配或發(fā)生特定異常時(shí)向用戶觸發(fā)。 但是,如果在我們團(tuán)隊(duì)中沒(méi)人在看的夜晚觸發(fā)斷點(diǎn)怎么辦? FusionReactor允許您定義線程暫停超時(shí),因此,如果您在特定時(shí)間內(nèi)不截取暫停的線程,則調(diào)試器將釋放鎖定并允許線程繼續(xù)執(zhí)行。 當(dāng)與線程限制一起使用時(shí),這可以將可能的影響減少到僅一個(gè)線程,并且僅持續(xù)n秒。

另一個(gè)好處是,FusionReactor可以在觸發(fā)器觸發(fā)時(shí)發(fā)送帶有堆棧跟蹤和變量的電子郵件。 這為您提供了一種非常靈活,簡(jiǎn)便的方式來(lái)獲取大量信息的通知,從而使調(diào)試比以往任何時(shí)候都更加容易。

生產(chǎn)中的調(diào)試不必太麻煩。 FusionReactor帶有完全集成的IDE樣式的調(diào)試器,該調(diào)試器可直接在您的瀏覽器中運(yùn)行-無(wú)需安裝其他胖客戶端即可啟動(dòng)遠(yuǎn)程調(diào)試。 一切都是內(nèi)置的,隨時(shí)可以使用。

翻譯自: https://www.javacodegeeks.com/2018/05/why-debugging-in-production-is-so-tempting.html

總結(jié)

以上是生活随笔為你收集整理的为什么在生产中进行调试是如此诱人?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。