我正在调试我的应用程序,并希望在具有我知道的某个GUID的项目上设置断点。假设GUID如下:C5E46A52-E125-4A92-9C6B-8A6E775CDEE0。在Visual Studio中,我创建一个断点并设置条件。以下哪项性能影响较小:
someGuid.Equals(Guid.Parse( “C5E46A52-E125-4A92-9C6B-8A6E775CDEE0”))
OR
someGuid.ToString()。等于( “C5E46A52-E125-4A92-9C6B-8A6E775CDEE0”))
我的直觉是第二个选项更好,因为Parse函数可能有更严格的验证规则。我很想知道这是真的,如果我的直觉是准确的!
更新:我向朋友提到了这个,他运行了一些测试用例来检查性能。在他的测试中,字符串比较的性能提高了约5倍。
答案 0 :(得分:0)
将您的代码更改为
if (someGuid.Equals(Guid.Parse("C5E46A52-E125-4A92-9C6B-8A6E775CDEE0"))) {
;
}
如果您真的担心性能,请将断点放在空语句上。或者,您可以明显地将GUID实例重构为静态字段,以避免一次又一次地创建它。
在大多数情况下,老实说,我不在乎。条件断点很慢,但通常不是 。当我有调试器不喜欢的表达式时,我倾向于使用上面的技术,但是对于性能恐惧也应该可以正常工作。