2016-08-24 90 views
-2

我正在調試我的應用程序,並且想用我知道的某個GUID在項目上設置一個斷點。假設GUID如下:C5E46A52-E125-4A92-9C6B-8A6E775CDEE0。在Visual Studio中,我創建了一個斷點並設置了一個條件。以下哪項具有更小的性能影響:Visual Studio:使用已知的GUID值設置條件斷點

someGuid.Equals(Guid.Parse( 「C5E46A52-E125-4A92-9C6B-8A6E775CDEE0」))

OR

someGuid.ToString()。 Equals(「C5E46A52-E125-4A92-9C6B-8A6E775CDEE0」))

我的直覺是第二種選擇更好,因爲解析函數可能有更嚴格的驗證規則。我很想知道這是否屬實,如果我的直覺是準確的!

更新:我向一位朋友提到過,他跑了一些測試用例來檢查性能。在他的測試中,字符串比較的性能提高了約5倍。

+1

_「我很想知道這是否屬實 - 」然後測試它。回答「多快?」這個問題的唯一方法是_measure_。既然你是那個問題的人,那麼應該是你來衡量它,而不是Stack Overflow社區的其餘部分。 –

+1

說實話,我不確定爲什麼你擔心條件斷點的性能。 – phuzi

+0

@yourbuddypal,作爲您的更新,您對此問題有了更好的解決方案,請將其添加爲答案,以便對其他成員有所幫助。其實兩種方式都是不錯的選擇。 –

回答

0

更改您的代碼

if (someGuid.Equals(Guid.Parse("C5E46A52-E125-4A92-9C6B-8A6E775CDEE0"))) { 
    ; 
} 

,並放置斷點的空語句,如果你真的擔心性能。可選地,您顯然可以將GUID實例重構爲靜態字段,以避免一遍又一遍地創建它。

對於大多數情況下,坦率地說,我不會在乎。條件斷點很慢,但不是多,通常。當我有調試器不喜歡的表達式時,我傾向於使用上述技術,但對於性能恐懼也應該正常工作。

相關問題