{"id":916,"date":"2026-02-11T11:14:03","date_gmt":"2026-02-11T03:14:03","guid":{"rendered":"https:\/\/www.ixriver.com\/?p=916"},"modified":"2026-02-11T11:14:03","modified_gmt":"2026-02-11T03:14:03","slug":"windows-%e6%80%a7%e8%83%bd%e5%b7%a5%e5%85%b7","status":"publish","type":"post","link":"https:\/\/ixriver.com\/?p=916","title":{"rendered":"Windows \u6027\u80fd\u5de5\u5177"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_65 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/ixriver.com\/?p=916\/#Windows_%E6%80%A7%E8%83%BD%E5%B7%A5%E5%85%B7\" title=\"Windows \u6027\u80fd\u5de5\u5177\">Windows \u6027\u80fd\u5de5\u5177<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/ixriver.com\/?p=916\/#%E7%9B%AE%E5%BD%95\" title=\"\u76ee\u5f55\">\u76ee\u5f55<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%B8%80%E3%80%81%E6%A6%82%E8%A7%88\" title=\"\u4e00\u3001\u6982\u89c8\">\u4e00\u3001\u6982\u89c8<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/ixriver.com\/?p=916\/#11_%E6%80%A7%E8%83%BD%E5%B7%A5%E5%85%B7%E5%88%86%E7%B1%BB\" title=\"1.1 \u6027\u80fd\u5de5\u5177\u5206\u7c7b\">1.1 \u6027\u80fd\u5de5\u5177\u5206\u7c7b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/ixriver.com\/?p=916\/#12_%E5%B7%A5%E5%85%B7%E9%80%89%E6%8B%A9%E5%BB%BA%E8%AE%AE\" title=\"1.2 \u5de5\u5177\u9009\u62e9\u5efa\u8bae\">1.2 \u5de5\u5177\u9009\u62e9\u5efa\u8bae<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/ixriver.com\/?p=916\/#13_%E4%B8%9A%E7%95%8C%E6%88%90%E7%86%9F%E5%B7%A5%E5%85%B7%E6%A6%82%E8%A7%88\" title=\"1.3 \u4e1a\u754c\u6210\u719f\u5de5\u5177\u6982\u89c8\">1.3 \u4e1a\u754c\u6210\u719f\u5de5\u5177\u6982\u89c8<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/ixriver.com\/?p=916\/#Windows_%E5%AE%98%E6%96%B9%E5%B7%A5%E5%85%B7\" title=\"Windows \u5b98\u65b9\u5de5\u5177\">Windows \u5b98\u65b9\u5de5\u5177<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/ixriver.com\/?p=916\/#Sysinternals_%E5%B7%A5%E5%85%B7%E9%9B%86\" title=\"Sysinternals \u5de5\u5177\u96c6\">Sysinternals \u5de5\u5177\u96c6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/ixriver.com\/?p=916\/#%E7%AC%AC%E4%B8%89%E6%96%B9%E4%B8%93%E4%B8%9A%E5%B7%A5%E5%85%B7\" title=\"\u7b2c\u4e09\u65b9\u4e13\u4e1a\u5de5\u5177\">\u7b2c\u4e09\u65b9\u4e13\u4e1a\u5de5\u5177<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/ixriver.com\/?p=916\/#%E5%86%85%E5%AD%98%E6%A3%80%E6%B5%8B%E5%B7%A5%E5%85%B7\" title=\"\u5185\u5b58\u68c0\u6d4b\u5de5\u5177\">\u5185\u5b58\u68c0\u6d4b\u5de5\u5177<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%BC%81%E4%B8%9A%E7%BA%A7%E7%9B%91%E6%8E%A7%E5%B7%A5%E5%85%B7\" title=\"\u4f01\u4e1a\u7ea7\u76d1\u63a7\u5de5\u5177\">\u4f01\u4e1a\u7ea7\u76d1\u63a7\u5de5\u5177<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/ixriver.com\/?p=916\/#%E7%A1%AC%E4%BB%B6%E7%9B%91%E6%B5%8B%E5%B7%A5%E5%85%B7\" title=\"\u786c\u4ef6\u76d1\u6d4b\u5de5\u5177\">\u786c\u4ef6\u76d1\u6d4b\u5de5\u5177<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/ixriver.com\/?p=916\/#%E5%9F%BA%E5%87%86%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7\" title=\"\u57fa\u51c6\u6d4b\u8bd5\u5de5\u5177\">\u57fa\u51c6\u6d4b\u8bd5\u5de5\u5177<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%BA%8C%E3%80%81%E5%86%85%E5%AD%98%E5%B7%A5%E5%85%B7\" title=\"\u4e8c\u3001\u5185\u5b58\u5de5\u5177\">\u4e8c\u3001\u5185\u5b58\u5de5\u5177<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A6%82%E8%BF%B0\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/ixriver.com\/?p=916\/#21_tcmalloc\" title=\"2.1 tcmalloc\">2.1 tcmalloc<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A6%82%E8%BF%B0-2\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%BD%BF%E7%94%A8\" title=\"\u4f7f\u7528\">\u4f7f\u7528<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90\" title=\"\u6e90\u7801\u5206\u6790\">\u6e90\u7801\u5206\u6790<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9\" title=\"\u6ce8\u610f\u4e8b\u9879\">\u6ce8\u610f\u4e8b\u9879<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/ixriver.com\/?p=916\/#22_UMDH\" title=\"2.2 UMDH\">2.2 UMDH<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A6%82%E8%BF%B0-3\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/ixriver.com\/?p=916\/#%E5%8F%AF%E4%BB%A5%E6%A3%80%E6%B5%8B%E7%9A%84%E5%86%85%E5%AD%98%E7%B1%BB%E5%9E%8B\" title=\"\u53ef\u4ee5\u68c0\u6d4b\u7684\u5185\u5b58\u7c7b\u578b\">\u53ef\u4ee5\u68c0\u6d4b\u7684\u5185\u5b58\u7c7b\u578b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%BD%BF%E7%94%A8%E6%AD%A5%E9%AA%A4\" title=\"\u4f7f\u7528\u6b65\u9aa4\">\u4f7f\u7528\u6b65\u9aa4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/ixriver.com\/?p=916\/#%E7%BB%93%E6%9E%9C%E5%88%86%E6%9E%90\" title=\"\u7ed3\u679c\u5206\u6790\">\u7ed3\u679c\u5206\u6790<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5\" title=\"\u6700\u4f73\u5b9e\u8df5\">\u6700\u4f73\u5b9e\u8df5<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/ixriver.com\/?p=916\/#23_CRTDBG_%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F%E6%A3%80%E6%B5%8B\" title=\"2.3 CRTDBG \u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b\">2.3 CRTDBG \u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A6%82%E8%BF%B0-4\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95\" title=\"\u4f7f\u7528\u65b9\u6cd5\">\u4f7f\u7528\u65b9\u6cd5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9-2\" title=\"\u6ce8\u610f\u4e8b\u9879\">\u6ce8\u610f\u4e8b\u9879<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/ixriver.com\/?p=916\/#24_%E5%8F%A5%E6%9F%84%E6%B3%84%E9%9C%B2%E6%A3%80%E6%B5%8B\" title=\"2.4 \u53e5\u67c4\u6cc4\u9732\u68c0\u6d4b\">2.4 \u53e5\u67c4\u6cc4\u9732\u68c0\u6d4b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/ixriver.com\/?p=916\/#25_AddressSanitizer_ASan\" title=\"2.5 AddressSanitizer (ASan)\">2.5 AddressSanitizer (ASan)<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A6%82%E8%BF%B0-5\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5\" title=\"\u652f\u6301\u60c5\u51b5\">\u652f\u6301\u60c5\u51b5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%BD%BF%E7%94%A8%E6%AD%A5%E9%AA%A4-2\" title=\"\u4f7f\u7528\u6b65\u9aa4\">\u4f7f\u7528\u6b65\u9aa4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A3%80%E6%B5%8B%E7%9A%84%E5%86%85%E5%AD%98%E9%94%99%E8%AF%AF%E7%B1%BB%E5%9E%8B\" title=\"\u68c0\u6d4b\u7684\u5185\u5b58\u9519\u8bef\u7c7b\u578b\">\u68c0\u6d4b\u7684\u5185\u5b58\u9519\u8bef\u7c7b\u578b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-37\" href=\"https:\/\/ixriver.com\/?p=916\/#%E9%99%90%E5%88%B6%E4%B8%8E%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9\" title=\"\u9650\u5236\u4e0e\u6ce8\u610f\u4e8b\u9879\">\u9650\u5236\u4e0e\u6ce8\u610f\u4e8b\u9879<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%B8%8E%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7%E5%AF%B9%E6%AF%94\" title=\"\u4e0e\u5176\u4ed6\u5de5\u5177\u5bf9\u6bd4\">\u4e0e\u5176\u4ed6\u5de5\u5177\u5bf9\u6bd4<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"https:\/\/ixriver.com\/?p=916\/#26_Dr_Memory\" title=\"2.6 Dr. Memory\">2.6 Dr. Memory<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-40\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A6%82%E8%BF%B0-6\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-41\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A3%80%E6%B5%8B%E7%9A%84%E5%86%85%E5%AD%98%E9%94%99%E8%AF%AF%E7%B1%BB%E5%9E%8B-2\" title=\"\u68c0\u6d4b\u7684\u5185\u5b58\u9519\u8bef\u7c7b\u578b\">\u68c0\u6d4b\u7684\u5185\u5b58\u9519\u8bef\u7c7b\u578b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-42\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%B8%8B%E8%BD%BD%E5%92%8C%E5%AE%89%E8%A3%85\" title=\"\u4e0b\u8f7d\u548c\u5b89\u88c5\">\u4e0b\u8f7d\u548c\u5b89\u88c5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-43\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95-2\" title=\"\u4f7f\u7528\u65b9\u6cd5\">\u4f7f\u7528\u65b9\u6cd5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-44\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%B8%8E%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7%E5%AF%B9%E6%AF%94-2\" title=\"\u4e0e\u5176\u4ed6\u5de5\u5177\u5bf9\u6bd4\">\u4e0e\u5176\u4ed6\u5de5\u5177\u5bf9\u6bd4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-45\" href=\"https:\/\/ixriver.com\/?p=916\/#%E9%99%90%E5%88%B6%E4%B8%8E%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9-2\" title=\"\u9650\u5236\u4e0e\u6ce8\u610f\u4e8b\u9879\">\u9650\u5236\u4e0e\u6ce8\u610f\u4e8b\u9879<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-46\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5-2\" title=\"\u6700\u4f73\u5b9e\u8df5\">\u6700\u4f73\u5b9e\u8df5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-47\" href=\"https:\/\/ixriver.com\/?p=916\/#%E7%A4%BA%E4%BE%8B%EF%BC%9A%E6%A3%80%E6%B5%8B%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F\" title=\"\u793a\u4f8b\uff1a\u68c0\u6d4b\u5185\u5b58\u6cc4\u6f0f\">\u793a\u4f8b\uff1a\u68c0\u6d4b\u5185\u5b58\u6cc4\u6f0f<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-48\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%B8%89%E3%80%81CPU_%E5%B7%A5%E5%85%B7\" title=\"\u4e09\u3001CPU \u5de5\u5177\">\u4e09\u3001CPU \u5de5\u5177<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-49\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A6%82%E8%BF%B0-7\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-50\" href=\"https:\/\/ixriver.com\/?p=916\/#31_WPT_Windows_Performance_Toolkit\" title=\"3.1 WPT (Windows Performance Toolkit)\">3.1 WPT (Windows Performance Toolkit)<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-51\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A6%82%E8%BF%B0-8\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-52\" href=\"https:\/\/ixriver.com\/?p=916\/#WPA_%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E\" title=\"WPA \u4f7f\u7528\u8bf4\u660e\">WPA \u4f7f\u7528\u8bf4\u660e<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-53\" href=\"https:\/\/ixriver.com\/?p=916\/#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE\" title=\"\u73af\u5883\u53d8\u91cf\u914d\u7f6e\">\u73af\u5883\u53d8\u91cf\u914d\u7f6e<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-54\" href=\"https:\/\/ixriver.com\/?p=916\/#UI_Delay_%E6%A3%80%E6%B5%8B\" title=\"UI Delay \u68c0\u6d4b\">UI Delay \u68c0\u6d4b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-55\" href=\"https:\/\/ixriver.com\/?p=916\/#%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4\" title=\"\u5e38\u7528\u547d\u4ee4\">\u5e38\u7528\u547d\u4ee4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-56\" href=\"https:\/\/ixriver.com\/?p=916\/#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98\" title=\"\u5e38\u89c1\u95ee\u9898\">\u5e38\u89c1\u95ee\u9898<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-57\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5-3\" title=\"\u6700\u4f73\u5b9e\u8df5\">\u6700\u4f73\u5b9e\u8df5<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-58\" href=\"https:\/\/ixriver.com\/?p=916\/#32_Very_Sleepy\" title=\"3.2 Very Sleepy\">3.2 Very Sleepy<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-59\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A6%82%E8%BF%B0-9\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-60\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95-3\" title=\"\u4f7f\u7528\u65b9\u6cd5\">\u4f7f\u7528\u65b9\u6cd5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-61\" href=\"https:\/\/ixriver.com\/?p=916\/#%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF\" title=\"\u9002\u7528\u573a\u666f\">\u9002\u7528\u573a\u666f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-62\" href=\"https:\/\/ixriver.com\/?p=916\/#33_AMD_uProf\" title=\"3.3 AMD uProf\">3.3 AMD uProf<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-63\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A6%82%E8%BF%B0-10\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-64\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%B8%BB%E8%A6%81%E5%8A%9F%E8%83%BD\" title=\"\u4e3b\u8981\u529f\u80fd\">\u4e3b\u8981\u529f\u80fd<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-65\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%B8%8B%E8%BD%BD%E5%92%8C%E5%AE%89%E8%A3%85-2\" title=\"\u4e0b\u8f7d\u548c\u5b89\u88c5\">\u4e0b\u8f7d\u548c\u5b89\u88c5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-66\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95-4\" title=\"\u4f7f\u7528\u65b9\u6cd5\">\u4f7f\u7528\u65b9\u6cd5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-67\" href=\"https:\/\/ixriver.com\/?p=916\/#%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF-2\" title=\"\u9002\u7528\u573a\u666f\">\u9002\u7528\u573a\u666f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-68\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9-3\" title=\"\u6ce8\u610f\u4e8b\u9879\">\u6ce8\u610f\u4e8b\u9879<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-69\" href=\"https:\/\/ixriver.com\/?p=916\/#%E4%B8%8E%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7%E5%AF%B9%E6%AF%94-3\" title=\"\u4e0e\u5176\u4ed6\u5de5\u5177\u5bf9\u6bd4\">\u4e0e\u5176\u4ed6\u5de5\u5177\u5bf9\u6bd4<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-70\" href=\"https:\/\/ixriver.com\/?p=916\/#34_Windows_%E6%80%A7%E8%83%BD%E6%89%93%E7%82%B9\" title=\"3.4 Windows \u6027\u80fd\u6253\u70b9\">3.4 Windows \u6027\u80fd\u6253\u70b9<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-71\" href=\"https:\/\/ixriver.com\/?p=916\/#%E7%94%9F%E6%88%90_Manifest_%E6%96%87%E4%BB%B6\" title=\"\u751f\u6210 Manifest \u6587\u4ef6\">\u751f\u6210 Manifest \u6587\u4ef6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-72\" href=\"https:\/\/ixriver.com\/?p=916\/#%E7%BC%96%E8%AF%91_Manifest_%E6%96%87%E4%BB%B6\" title=\"\u7f16\u8bd1 Manifest \u6587\u4ef6\">\u7f16\u8bd1 Manifest \u6587\u4ef6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-73\" href=\"https:\/\/ixriver.com\/?p=916\/#%E7%B3%BB%E7%BB%9F%E6%B3%A8%E5%86%8C_Providers\" title=\"\u7cfb\u7edf\u6ce8\u518c Providers\">\u7cfb\u7edf\u6ce8\u518c Providers<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-74\" href=\"https:\/\/ixriver.com\/?p=916\/#WPRUI_%E5%BD%95%E5%88%B6%E9%85%8D%E7%BD%AE\" title=\"WPRUI \u5f55\u5236\u914d\u7f6e\">WPRUI \u5f55\u5236\u914d\u7f6e<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-75\" href=\"https:\/\/ixriver.com\/?p=916\/#35_%E9%87%87%E9%9B%86%E5%A0%86%E6%A0%88%E6%A0%BC%E5%BC%8F\" title=\"3.5 \u91c7\u96c6\u5806\u6808\u683c\u5f0f\">3.5 \u91c7\u96c6\u5806\u6808\u683c\u5f0f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-76\" href=\"https:\/\/ixriver.com\/?p=916\/#%E5%9B%9B%E3%80%81%E7%AC%A6%E5%8F%B7%E8%BF%98%E5%8E%9F\" title=\"\u56db\u3001\u7b26\u53f7\u8fd8\u539f\">\u56db\u3001\u7b26\u53f7\u8fd8\u539f<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-77\" href=\"https:\/\/ixriver.com\/?p=916\/#%E6%A6%82%E8%BF%B0-11\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-78\" href=\"https:\/\/ixriver.com\/?p=916\/#41_%E7%AC%A6%E5%8F%B7%E4%B8%8B%E8%BD%BD\" title=\"4.1 \u7b26\u53f7\u4e0b\u8f7d\">4.1 \u7b26\u53f7\u4e0b\u8f7d<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-79\" href=\"https:\/\/ixriver.com\/?p=916\/#%E7%AC%A6%E5%8F%B7%E8%B7%AF%E5%BE%84%E6%A0%BC%E5%BC%8F\" title=\"\u7b26\u53f7\u8def\u5f84\u683c\u5f0f\">\u7b26\u53f7\u8def\u5f84\u683c\u5f0f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-80\" href=\"https:\/\/ixriver.com\/?p=916\/#%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%87%AA%E5%8A%A8%E4%B8%8B%E8%BD%BD%E7%AC%A6%E5%8F%B7\" title=\"\u547d\u4ee4\u884c\u81ea\u52a8\u4e0b\u8f7d\u7b26\u53f7\">\u547d\u4ee4\u884c\u81ea\u52a8\u4e0b\u8f7d\u7b26\u53f7<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-81\" href=\"https:\/\/ixriver.com\/?p=916\/#42_Dia2Dump\" title=\"4.2 Dia2Dump\">4.2 Dia2Dump<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-82\" href=\"https:\/\/ixriver.com\/?p=916\/#RVA_%E6%9F%A5%E8%AF%A2%E7%AC%A6%E5%8F%B7\" title=\"RVA \u67e5\u8be2\u7b26\u53f7\">RVA \u67e5\u8be2\u7b26\u53f7<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-83\" href=\"https:\/\/ixriver.com\/?p=916\/#RVA_%E6%9F%A5%E8%AF%A2%E8%A1%8C%E5%8F%B7\" title=\"RVA \u67e5\u8be2\u884c\u53f7\">RVA \u67e5\u8be2\u884c\u53f7<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-84\" href=\"https:\/\/ixriver.com\/?p=916\/#%E5%87%BD%E6%95%B0%E7%AC%A6%E5%8F%B7%E6%9F%A5%E8%AF%A2%E5%9C%B0%E5%9D%80\" title=\"\u51fd\u6570\u7b26\u53f7\u67e5\u8be2\u5730\u5740\">\u51fd\u6570\u7b26\u53f7\u67e5\u8be2\u5730\u5740<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-85\" href=\"https:\/\/ixriver.com\/?p=916\/#43_WinDbg_%E7%AC%A6%E5%8F%B7%E5%91%BD%E4%BB%A4\" title=\"4.3 WinDbg \u7b26\u53f7\u547d\u4ee4\">4.3 WinDbg \u7b26\u53f7\u547d\u4ee4<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-86\" href=\"https:\/\/ixriver.com\/?p=916\/#agestore_%E2%80%93_%E7%AE%A1%E7%90%86%E7%AC%A6%E5%8F%B7%E8%A1%A8\" title=\"agestore &#8211; \u7ba1\u7406\u7b26\u53f7\u8868\">agestore &#8211; \u7ba1\u7406\u7b26\u53f7\u8868<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-87\" href=\"https:\/\/ixriver.com\/?p=916\/#%E7%AC%A6%E5%8F%B7%E8%B7%AF%E5%BE%84%E7%9B%B8%E5%85%B3%E5%91%BD%E4%BB%A4\" title=\"\u7b26\u53f7\u8def\u5f84\u76f8\u5173\u547d\u4ee4\">\u7b26\u53f7\u8def\u5f84\u76f8\u5173\u547d\u4ee4<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"Windows_%E6%80%A7%E8%83%BD%E5%B7%A5%E5%85%B7\"><\/span>Windows \u6027\u80fd\u5de5\u5177<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"%E7%9B%AE%E5%BD%95\"><\/span>\u76ee\u5f55<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><a href=\"#\u4e00\u6982\u89c8\">\u4e00\u3001\u6982\u89c8<\/a><\/li>\n<li><a href=\"#11-\u6027\u80fd\u5de5\u5177\u5206\u7c7b\">1.1 \u6027\u80fd\u5de5\u5177\u5206\u7c7b<\/a><\/li>\n<li><a href=\"#12-\u5de5\u5177\u9009\u62e9\u5efa\u8bae\">1.2 \u5de5\u5177\u9009\u62e9\u5efa\u8bae<\/a><\/li>\n<li><a href=\"#13-\u4e1a\u754c\u6210\u719f\u5de5\u5177\u6982\u89c8\">1.3 \u4e1a\u754c\u6210\u719f\u5de5\u5177\u6982\u89c8<\/a><\/li>\n<li><a href=\"#\u4e8c\u5185\u5b58\u5de5\u5177\">\u4e8c\u3001\u5185\u5b58\u5de5\u5177<\/a><\/li>\n<li><a href=\"#21-tcmalloc\">2.1 tcmalloc<\/a><\/li>\n<li><a href=\"#22-umdh\">2.2 UMDH<\/a><\/li>\n<li><a href=\"#23-crtdbg\">2.3 CRTDBG<\/a><\/li>\n<li><a href=\"#24-\u53e5\u67c4\u6cc4\u9732\u68c0\u6d4b\">2.4 \u53e5\u67c4\u6cc4\u9732\u68c0\u6d4b<\/a><\/li>\n<li><a href=\"#25-addresssanitizer-asan\">2.5 AddressSanitizer (ASan)<\/a><\/li>\n<li><a href=\"#26-dr-memory\">2.6 Dr. Memory<\/a><\/li>\n<li><a href=\"#\u4e09cpu-\u5de5\u5177\">\u4e09\u3001CPU \u5de5\u5177<\/a><\/li>\n<li><a href=\"#31-wpt-windows-performance-toolkit\">3.1 WPT (Windows Performance Toolkit)<\/a><\/li>\n<li><a href=\"#32-very-sleepy\">3.2 Very Sleepy<\/a><\/li>\n<li><a href=\"#33-amd-uprof\">3.3 AMD uProf<\/a><\/li>\n<li><a href=\"#34-windows-\u6027\u80fd\u6253\u70b9\">3.4 Windows \u6027\u80fd\u6253\u70b9<\/a><\/li>\n<li><a href=\"#35-\u91c7\u96c6\u5806\u6808\u683c\u5f0f\">3.5 \u91c7\u96c6\u5806\u6808\u683c\u5f0f<\/a><\/li>\n<li><a href=\"#\u56db\u7b26\u53f7\u8fd8\u539f\">\u56db\u3001\u7b26\u53f7\u8fd8\u539f<\/a><\/li>\n<li><a href=\"#41-\u7b26\u53f7\u4e0b\u8f7d\">4.1 \u7b26\u53f7\u4e0b\u8f7d<\/a><\/li>\n<li><a href=\"#42-dia2dump\">4.2 Dia2Dump<\/a><\/li>\n<li><a href=\"#43-windbg-\u7b26\u53f7\u547d\u4ee4\">4.3 WinDbg \u7b26\u53f7\u547d\u4ee4<\/a><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%E4%B8%80%E3%80%81%E6%A6%82%E8%A7%88\"><\/span>\u4e00\u3001\u6982\u89c8<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"11_%E6%80%A7%E8%83%BD%E5%B7%A5%E5%85%B7%E5%88%86%E7%B1%BB\"><\/span>1.1 \u6027\u80fd\u5de5\u5177\u5206\u7c7b<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177\u7c7b\u578b<\/th>\n<th>\u539f\u7406<\/th>\n<th>\u4f18\u70b9<\/th>\n<th>\u7f3a\u70b9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u68c0\u6d4b\u5f0f\u5256\u6790\u5668<\/strong><\/td>\n<td>\u5728\u6e90\u4ee3\u7801\u91cc\u9762\u63d2\u5165\u6027\u80fd\u6d4b\u91cf\u4ee3\u7801<\/td>\n<td>\u7cbe\u51c6\u3001\u6570\u636e\u5b8c\u6574<\/td>\n<td>1. \u4fb5\u5165\u5f0f<br \/>2. \u6539\u53d8\u7a0b\u5e8f\u7684\u8fd0\u884c\u65f6\u884c\u4e3a<br \/>3. \u9700\u8981\u91cd\u65b0\u7f16\u8bd1<\/td>\n<\/tr>\n<tr>\n<td><strong>\u91c7\u6837\u578b\u5256\u6790\u5668<\/strong><\/td>\n<td>\u5468\u671f\u6027\u5730\u6355\u6349\u7a0b\u5e8f\u5f53\u524d\u8c03\u7528\u5806\u6808\u7684\u5feb\u7167<\/td>\n<td>\u975e\u4fb5\u5165\u5f0f\u3001\u65e0\u9700\u91cd\u65b0\u7f16\u8bd1<\/td>\n<td>1. \u53ef\u80fd\u6f0f\u91c7\u6837<br \/>2. \u6570\u636e\u91cf\u5927<br \/>3. \u7cbe\u5ea6\u76f8\u5bf9\u8f83\u4f4e<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span class=\"ez-toc-section\" id=\"12_%E5%B7%A5%E5%85%B7%E9%80%89%E6%8B%A9%E5%BB%BA%E8%AE%AE\"><\/span>1.2 \u5de5\u5177\u9009\u62e9\u5efa\u8bae<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>\u6309\u95ee\u9898\u7c7b\u578b\u9009\u62e9<\/strong>\uff1a<\/p>\n<ul>\n<li><strong>\u7cfb\u7edf\u7ea7\u95ee\u9898<\/strong>\uff08\u9a71\u52a8\u3001\u7535\u6e90\u3001\u591a\u8fdb\u7a0b\u4ea4\u4e92\uff09\uff1aWPT + WPA\u3001PerfView<\/li>\n<li><strong>\u5e94\u7528\u6027\u80fd\u95ee\u9898<\/strong>\uff08UI \u54cd\u5e94\u3001\u6570\u636e\u5e93\u8c03\u7528\uff09\uff1aVisual Studio Profiler\u3001PerfView\uff08.NET\uff09<\/li>\n<li><strong>\u5185\u5b58\u95ee\u9898<\/strong>\uff1aAddressSanitizer\u3001Dr. Memory\u3001UMDH\u3001VMMap<\/li>\n<li><strong>CPU \u70ed\u70b9\u5206\u6790<\/strong>\uff1aVery Sleepy\u3001Intel VTune\u3001WPT<\/li>\n<li><strong>GPU \u6027\u80fd\u95ee\u9898<\/strong>\uff1aNVIDIA Nsight\u3001AMD uProf<\/li>\n<li><strong>\u5d29\u6e83\u5206\u6790<\/strong>\uff1aProcDump\u3001WinDbg<\/li>\n<li><strong>\u5b9e\u65f6\u76d1\u63a7<\/strong>\uff1aResource Monitor\u3001Process Explorer\u3001HWiNFO<\/li>\n<li><strong>\u4f01\u4e1a\u7ea7\u76d1\u63a7<\/strong>\uff1aSCOM\u3001Datadog\u3001SolarWinds<\/li>\n<\/ul>\n<p><strong>\u6309\u4f7f\u7528\u9636\u6bb5\u9009\u62e9<\/strong>\uff1a<\/p>\n<ul>\n<li><strong>\u5f00\u53d1\u9636\u6bb5<\/strong>\uff1aVisual Studio Profiler\u3001AddressSanitizer\u3001Very Sleepy<\/li>\n<li><strong>\u6d4b\u8bd5\u9636\u6bb5<\/strong>\uff1aDr. Memory\u3001WPT\u3001PerfView<\/li>\n<li><strong>\u751f\u4ea7\u73af\u5883<\/strong>\uff1aPerfView\u3001ProcDump\u3001\u4f01\u4e1a\u76d1\u63a7\u5de5\u5177<\/li>\n<li><strong>\u95ee\u9898\u8bca\u65ad<\/strong>\uff1aWPT\u3001Process Monitor\u3001ProcDump<\/li>\n<\/ul>\n<p><strong>\u6309\u6027\u80fd\u5f00\u9500\u9009\u62e9<\/strong>\uff1a<\/p>\n<ul>\n<li><strong>\u4f4e\u5f00\u9500<\/strong>\uff1aUMDH\u3001CRTDBG\u3001Resource Monitor\u3001Process Explorer<\/li>\n<li><strong>\u4e2d\u7b49\u5f00\u9500<\/strong>\uff1aDr. Memory\u3001WPT\uff08\u8f7b\u91cf\u914d\u7f6e\uff09<\/li>\n<li><strong>\u9ad8\u5f00\u9500<\/strong>\uff1aAddressSanitizer\u3001WPT\uff08\u5b8c\u6574\u914d\u7f6e\uff09<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"13_%E4%B8%9A%E7%95%8C%E6%88%90%E7%86%9F%E5%B7%A5%E5%85%B7%E6%A6%82%E8%A7%88\"><\/span>1.3 \u4e1a\u754c\u6210\u719f\u5de5\u5177\u6982\u89c8<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"Windows_%E5%AE%98%E6%96%B9%E5%B7%A5%E5%85%B7\"><\/span>Windows \u5b98\u65b9\u5de5\u5177<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177\u540d\u79f0<\/th>\n<th>\u7c7b\u578b<\/th>\n<th>\u4e3b\u8981\u529f\u80fd<\/th>\n<th>\u9002\u7528\u573a\u666f<\/th>\n<th>\u4f18\u52bf<\/th>\n<th>\u5c40\u9650<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Windows Performance Toolkit (WPT)<\/strong><\/td>\n<td>\u7cfb\u7edf\u7ea7\u5206\u6790<\/td>\n<td>\u5305\u542b WPR\uff08\u5f55\u5236\uff09\u548c WPA\uff08\u5206\u6790\uff09\uff0c\u57fa\u4e8e ETW \u4e8b\u4ef6\u8ffd\u8e2a<\/td>\n<td>\u7cfb\u7edf\u7ea7\u6027\u80fd\u95ee\u9898\u3001\u9a71\u52a8\u95ee\u9898\u3001\u591a\u8fdb\u7a0b\u4ea4\u4e92<\/td>\n<td>\u529f\u80fd\u5f3a\u5927\u3001\u652f\u6301\u81ea\u5b9a\u4e49\u914d\u7f6e\u3001\u53ef\u8ffd\u8e2a\u9a71\u52a8\u548c\u786c\u4ef6\u4e8b\u4ef6<\/td>\n<td>\u5b66\u4e60\u66f2\u7ebf\u9661\u5ced\u3001\u6570\u636e\u91cf\u5927\u3001\u8d44\u6e90\u6d88\u8017\u9ad8<\/td>\n<\/tr>\n<tr>\n<td><strong>PerfView<\/strong><\/td>\n<td>\u5e94\u7528\u7ea7\u5206\u6790<\/td>\n<td>.NET \u5e94\u7528\u6027\u80fd\u5206\u6790\u3001GC \u5206\u6790\u3001\u5185\u5b58\u5206\u6790<\/td>\n<td>.NET \u5e94\u7528\u6027\u80fd\u8c03\u4f18\u3001\u6258\u7ba1\u4ee3\u7801\u5206\u6790<\/td>\n<td>\u5bf9 .NET \u6df1\u5165\u652f\u6301\u3001\u8de8\u8fdb\u7a0b\u8ffd\u8e2a\u3001\u8f7b\u91cf\u7ea7<\/td>\n<td>UI \u4e0d\u591f\u76f4\u89c2\u3001\u975e .NET \u652f\u6301\u6709\u9650<\/td>\n<\/tr>\n<tr>\n<td><strong>Visual Studio Performance Profiler<\/strong><\/td>\n<td>\u5f00\u53d1\u5de5\u5177\u96c6\u6210<\/td>\n<td>CPU\u3001\u5185\u5b58\u3001GPU \u6027\u80fd\u5206\u6790<\/td>\n<td>\u5f00\u53d1\u9636\u6bb5\u6027\u80fd\u4f18\u5316\u3001UI \u6e32\u67d3\u5206\u6790<\/td>\n<td>IDE \u96c6\u6210\u597d\u3001\u542f\u52a8\u5feb\u901f\u3001\u7528\u6237\u53cb\u597d<\/td>\n<td>\u7cfb\u7edf\u5c42\u9762\u95ee\u9898\u652f\u6301\u6709\u9650<\/td>\n<\/tr>\n<tr>\n<td><strong>Performance Monitor (PerfMon)<\/strong><\/td>\n<td>\u5b9e\u65f6\u76d1\u63a7<\/td>\n<td>\u6027\u80fd\u8ba1\u6570\u5668\u76d1\u63a7\u3001\u6570\u636e\u6536\u96c6<\/td>\n<td>\u957f\u671f\u8d8b\u52bf\u5206\u6790\u3001\u7cfb\u7edf\u7a33\u5b9a\u6027\u76d1\u63a7<\/td>\n<td>Windows \u81ea\u5e26\u3001\u652f\u6301\u5927\u91cf\u8ba1\u6570\u5668\u3001\u53ef\u5b9a\u65f6\u91c7\u96c6<\/td>\n<td>\u590d\u6742\u95ee\u9898\u96be\u4ee5\u6df1\u5165\u3001\u65e5\u5fd7\u7ba1\u7406\u590d\u6742<\/td>\n<\/tr>\n<tr>\n<td><strong>Resource Monitor (Resmon)<\/strong><\/td>\n<td>\u5b9e\u65f6\u76d1\u63a7<\/td>\n<td>CPU\u3001\u5185\u5b58\u3001\u78c1\u76d8\u3001\u7f51\u7edc\u5b9e\u65f6\u67e5\u770b<\/td>\n<td>\u5feb\u901f\u5b9a\u4f4d\u8d44\u6e90\u74f6\u9888<\/td>\n<td>\u754c\u9762\u76f4\u89c2\u3001\u5b9e\u65f6\u6027\u5f3a<\/td>\n<td>\u529f\u80fd\u76f8\u5bf9\u7b80\u5355<\/td>\n<\/tr>\n<tr>\n<td><strong>Process Explorer<\/strong><\/td>\n<td>\u8fdb\u7a0b\u8bca\u65ad<\/td>\n<td>\u8fdb\u7a0b\u6811\u3001\u53e5\u67c4\u3001DLL\u3001\u7ebf\u7a0b\u4fe1\u606f<\/td>\n<td>\u8fdb\u7a0b\u7ea7\u95ee\u9898\u8bca\u65ad\u3001\u8d44\u6e90\u5360\u7528\u5206\u6790<\/td>\n<td>\u6bd4\u4efb\u52a1\u7ba1\u7406\u5668\u66f4\u6df1\u5165\u3001\u529f\u80fd\u5f3a\u5927<\/td>\n<td>\u9700\u8981\u4e00\u5b9a\u5b66\u4e60\u6210\u672c<\/td>\n<\/tr>\n<tr>\n<td><strong>Process Monitor (ProcMon)<\/strong><\/td>\n<td>\u7cfb\u7edf\u884c\u4e3a\u8ffd\u8e2a<\/td>\n<td>\u6587\u4ef6\u7cfb\u7edf\u3001\u6ce8\u518c\u8868\u3001\u8fdb\u7a0b\u7ebf\u7a0b\u6d3b\u52a8\u8ffd\u8e2a<\/td>\n<td>\u6587\u4ef6\/\u6ce8\u518c\u8868\u8bbf\u95ee\u95ee\u9898\u6392\u67e5<\/td>\n<td>\u5b9e\u65f6\u6355\u83b7\u3001\u5f3a\u5927\u7b5b\u9009\u529f\u80fd<\/td>\n<td>\u6570\u636e\u91cf\u5927\u3001\u9700\u8981\u7b5b\u9009\u6280\u5de7<\/td>\n<\/tr>\n<tr>\n<td><strong>ProcDump<\/strong><\/td>\n<td>\u5d29\u6e83\u8bca\u65ad<\/td>\n<td>\u8fdb\u7a0b Dump \u6355\u83b7\uff08CPU \u5cf0\u503c\u3001\u5f02\u5e38\u7b49\uff09<\/td>\n<td>\u5d29\u6e83\u5206\u6790\u3001\u5f02\u5e38\u60c5\u51b5\u6355\u83b7<\/td>\n<td>\u89e6\u53d1\u6761\u4ef6\u7075\u6d3b\u3001\u547d\u4ee4\u884c\u53cb\u597d<\/td>\n<td>\u4ec5\u6355\u83b7\u77ac\u95f4\u72b6\u6001\u3001\u9700\u8981\u540e\u7eed\u5206\u6790<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span class=\"ez-toc-section\" id=\"Sysinternals_%E5%B7%A5%E5%85%B7%E9%9B%86\"><\/span>Sysinternals \u5de5\u5177\u96c6<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177\u540d\u79f0<\/th>\n<th>\u4e3b\u8981\u529f\u80fd<\/th>\n<th>\u9002\u7528\u573a\u666f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>VMMap<\/strong><\/td>\n<td>\u8fdb\u7a0b\u865a\u62df\/\u7269\u7406\u5185\u5b58\u5206\u6790<\/td>\n<td>\u5185\u5b58\u5360\u7528\u5206\u6790\u3001\u5185\u5b58\u6cc4\u6f0f\u5b9a\u4f4d<\/td>\n<\/tr>\n<tr>\n<td><strong>Sysmon<\/strong><\/td>\n<td>\u7cfb\u7edf\u5b89\u5168\u4e8b\u4ef6\u65e5\u5fd7\u8bb0\u5f55<\/td>\n<td>\u5b89\u5168\u5ba1\u8ba1\u3001\u884c\u4e3a\u5206\u6790<\/td>\n<\/tr>\n<tr>\n<td><strong>TCPView<\/strong><\/td>\n<td>TCP\/UDP \u8fde\u63a5\u72b6\u6001\u67e5\u770b<\/td>\n<td>\u7f51\u7edc\u8fde\u63a5\u95ee\u9898\u6392\u67e5<\/td>\n<\/tr>\n<tr>\n<td><strong>Handle<\/strong><\/td>\n<td>\u53e5\u67c4\u67e5\u770b\u548c\u7ba1\u7406<\/td>\n<td>\u53e5\u67c4\u6cc4\u6f0f\u8bca\u65ad<\/td>\n<\/tr>\n<tr>\n<td><strong>DiskMon<\/strong><\/td>\n<td>\u78c1\u76d8\u6d3b\u52a8\u76d1\u63a7<\/td>\n<td>\u78c1\u76d8 I\/O \u95ee\u9898\u5206\u6790<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span class=\"ez-toc-section\" id=\"%E7%AC%AC%E4%B8%89%E6%96%B9%E4%B8%93%E4%B8%9A%E5%B7%A5%E5%85%B7\"><\/span>\u7b2c\u4e09\u65b9\u4e13\u4e1a\u5de5\u5177<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177\u540d\u79f0<\/th>\n<th>\u7c7b\u578b<\/th>\n<th>\u4e3b\u8981\u529f\u80fd<\/th>\n<th>\u9002\u7528\u573a\u666f<\/th>\n<th>\u4f18\u52bf<\/th>\n<th>\u5c40\u9650<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Intel VTune Profiler<\/strong><\/td>\n<td>CPU\/GPU \u5206\u6790<\/td>\n<td>CPU \u6027\u80fd\u5206\u6790\u3001\u70ed\u70b9\u5206\u6790\u3001\u5185\u5b58\u5e26\u5bbd\u5206\u6790<\/td>\n<td>Intel \u5e73\u53f0\u6df1\u5ea6\u6027\u80fd\u5206\u6790<\/td>\n<td>\u529f\u80fd\u5f3a\u5927\u3001\u652f\u6301\u786c\u4ef6\u4e8b\u4ef6\u91c7\u6837<\/td>\n<td>\u5546\u4e1a\u8f6f\u4ef6\u3001\u4e3b\u8981\u9488\u5bf9 Intel \u5e73\u53f0<\/td>\n<\/tr>\n<tr>\n<td><strong>AMD uProf<\/strong><\/td>\n<td>CPU\/GPU \u5206\u6790<\/td>\n<td>AMD \u5e73\u53f0\u6027\u80fd\u5206\u6790\u3001\u786c\u4ef6\u8ba1\u6570\u5668\u5206\u6790<\/td>\n<td>AMD \u5e73\u53f0\u6027\u80fd\u4f18\u5316<\/td>\n<td>\u9488\u5bf9 AMD \u5e73\u53f0\u4f18\u5316\u3001\u514d\u8d39<\/td>\n<td>\u4ec5\u652f\u6301 AMD \u5e73\u53f0<\/td>\n<\/tr>\n<tr>\n<td><strong>NVIDIA Nsight<\/strong><\/td>\n<td>GPU \u5206\u6790<\/td>\n<td>GPU \u6027\u80fd\u5206\u6790\u3001CUDA \u8c03\u8bd5<\/td>\n<td>GPU \u5e94\u7528\u6027\u80fd\u4f18\u5316<\/td>\n<td>GPU \u5206\u6790\u529f\u80fd\u5f3a\u5927<\/td>\n<td>\u4e3b\u8981\u9488\u5bf9 NVIDIA GPU<\/td>\n<\/tr>\n<tr>\n<td><strong>JetBrains dotMemory<\/strong><\/td>\n<td>\u5185\u5b58\u5206\u6790<\/td>\n<td>.NET \u5185\u5b58\u5206\u6790\u3001\u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b<\/td>\n<td>.NET \u5e94\u7528\u5185\u5b58\u95ee\u9898\u8bca\u65ad<\/td>\n<td>\u754c\u9762\u53cb\u597d\u3001\u5206\u6790\u6df1\u5165<\/td>\n<td>\u5546\u4e1a\u8f6f\u4ef6\u3001\u4e3b\u8981\u9488\u5bf9 .NET<\/td>\n<\/tr>\n<tr>\n<td><strong>Very Sleepy<\/strong><\/td>\n<td>CPU \u91c7\u6837\u5206\u6790<\/td>\n<td>\u8f7b\u91cf\u7ea7 CPU \u91c7\u6837\u5206\u6790\u5668<\/td>\n<td>\u5feb\u901f CPU \u70ed\u70b9\u5b9a\u4f4d<\/td>\n<td>\u514d\u8d39\u3001\u8f7b\u91cf\u3001\u6613\u7528<\/td>\n<td>\u529f\u80fd\u76f8\u5bf9\u7b80\u5355<\/td>\n<\/tr>\n<tr>\n<td><strong>CodeXL<\/strong><\/td>\n<td>GPU \u5206\u6790<\/td>\n<td>AMD GPU \u6027\u80fd\u5206\u6790\u5de5\u5177<\/td>\n<td>AMD GPU \u5e94\u7528\u4f18\u5316<\/td>\n<td>\u514d\u8d39\u3001\u529f\u80fd\u5168\u9762<\/td>\n<td>\u5df2\u505c\u6b62\u66f4\u65b0\uff0c\u88ab uProf \u66ff\u4ee3<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span class=\"ez-toc-section\" id=\"%E5%86%85%E5%AD%98%E6%A3%80%E6%B5%8B%E5%B7%A5%E5%85%B7\"><\/span>\u5185\u5b58\u68c0\u6d4b\u5de5\u5177<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177\u540d\u79f0<\/th>\n<th>\u7c7b\u578b<\/th>\n<th>\u4e3b\u8981\u529f\u80fd<\/th>\n<th>\u9002\u7528\u573a\u666f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>AddressSanitizer (ASan)<\/strong><\/td>\n<td>\u7f16\u8bd1\u65f6\u63d2\u6869<\/td>\n<td>\u591a\u79cd\u5185\u5b58\u9519\u8bef\u68c0\u6d4b<\/td>\n<td>\u5f00\u53d1\u9636\u6bb5\u5185\u5b58\u9519\u8bef\u68c0\u6d4b<\/td>\n<\/tr>\n<tr>\n<td><strong>Dr. Memory<\/strong><\/td>\n<td>\u8fd0\u884c\u65f6\u63d2\u6869<\/td>\n<td>\u5185\u5b58\u9519\u8bef\u68c0\u6d4b\u3001\u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b<\/td>\n<td>\u65e0\u9700\u91cd\u65b0\u7f16\u8bd1\u7684\u5185\u5b58\u68c0\u6d4b<\/td>\n<\/tr>\n<tr>\n<td><strong>UMDH<\/strong><\/td>\n<td>\u5806\u5206\u6790<\/td>\n<td>\u5806\u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b<\/td>\n<td>Windows \u5806\u5185\u5b58\u6cc4\u6f0f\u5206\u6790<\/td>\n<\/tr>\n<tr>\n<td><strong>CRTDBG<\/strong><\/td>\n<td>\u8fd0\u884c\u65f6\u68c0\u6d4b<\/td>\n<td>malloc \u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b<\/td>\n<td>C \u8fd0\u884c\u65f6\u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b<\/td>\n<\/tr>\n<tr>\n<td><strong>tcmalloc<\/strong><\/td>\n<td>\u5185\u5b58\u5206\u914d\u5668<\/td>\n<td>\u9ad8\u6027\u80fd\u5185\u5b58\u5206\u914d\u3001\u5185\u5b58\u5206\u6790<\/td>\n<td>\u5185\u5b58\u5206\u914d\u6027\u80fd\u4f18\u5316<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span class=\"ez-toc-section\" id=\"%E4%BC%81%E4%B8%9A%E7%BA%A7%E7%9B%91%E6%8E%A7%E5%B7%A5%E5%85%B7\"><\/span>\u4f01\u4e1a\u7ea7\u76d1\u63a7\u5de5\u5177<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177\u540d\u79f0<\/th>\n<th>\u7c7b\u578b<\/th>\n<th>\u4e3b\u8981\u529f\u80fd<\/th>\n<th>\u9002\u7528\u573a\u666f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>System Center Operations Manager (SCOM)<\/strong><\/td>\n<td>\u4f01\u4e1a\u76d1\u63a7<\/td>\n<td>\u670d\u52a1\u5668\u3001\u5e94\u7528\u3001\u670d\u52a1\u76d1\u63a7<\/td>\n<td>\u4f01\u4e1a\u7ea7\u57fa\u7840\u8bbe\u65bd\u76d1\u63a7<\/td>\n<\/tr>\n<tr>\n<td><strong>SolarWinds Server &amp; Application Monitor<\/strong><\/td>\n<td>\u5e94\u7528\u76d1\u63a7<\/td>\n<td>\u670d\u52a1\u5668\u548c\u5e94\u7528\u6027\u80fd\u76d1\u63a7<\/td>\n<td>\u4f01\u4e1a\u5e94\u7528\u6027\u80fd\u76d1\u63a7<\/td>\n<\/tr>\n<tr>\n<td><strong>Datadog<\/strong><\/td>\n<td>\u4e91\u76d1\u63a7<\/td>\n<td>\u8de8\u5e73\u53f0\u76d1\u63a7\u3001APM\u3001\u65e5\u5fd7\u5206\u6790<\/td>\n<td>\u4e91\u73af\u5883\u548c\u6df7\u5408\u73af\u5883\u76d1\u63a7<\/td>\n<\/tr>\n<tr>\n<td><strong>New Relic<\/strong><\/td>\n<td>APM<\/td>\n<td>\u5e94\u7528\u6027\u80fd\u76d1\u63a7\u3001\u9519\u8bef\u8ffd\u8e2a<\/td>\n<td>\u5e94\u7528\u6027\u80fd\u76d1\u63a7\u548c\u5206\u6790<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span class=\"ez-toc-section\" id=\"%E7%A1%AC%E4%BB%B6%E7%9B%91%E6%B5%8B%E5%B7%A5%E5%85%B7\"><\/span>\u786c\u4ef6\u76d1\u6d4b\u5de5\u5177<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177\u540d\u79f0<\/th>\n<th>\u4e3b\u8981\u529f\u80fd<\/th>\n<th>\u9002\u7528\u573a\u666f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>HWiNFO<\/strong><\/td>\n<td>\u786c\u4ef6\u4f20\u611f\u5668\u76d1\u63a7\uff08\u6e29\u5ea6\u3001\u7535\u538b\u3001\u98ce\u6247\u3001GPU\uff09<\/td>\n<td>\u786c\u4ef6\u5065\u5eb7\u72b6\u6001\u76d1\u6d4b<\/td>\n<\/tr>\n<tr>\n<td><strong>CPU-Z<\/strong><\/td>\n<td>CPU \u548c\u7cfb\u7edf\u4fe1\u606f\u67e5\u770b<\/td>\n<td>\u786c\u4ef6\u4fe1\u606f\u67e5\u8be2<\/td>\n<\/tr>\n<tr>\n<td><strong>GPU-Z<\/strong><\/td>\n<td>GPU \u4fe1\u606f\u67e5\u770b<\/td>\n<td>GPU \u4fe1\u606f\u67e5\u8be2<\/td>\n<\/tr>\n<tr>\n<td><strong>Core Temp<\/strong><\/td>\n<td>CPU \u6e29\u5ea6\u76d1\u63a7<\/td>\n<td>CPU \u6e29\u5ea6\u5b9e\u65f6\u76d1\u63a7<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span class=\"ez-toc-section\" id=\"%E5%9F%BA%E5%87%86%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7\"><\/span>\u57fa\u51c6\u6d4b\u8bd5\u5de5\u5177<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177\u540d\u79f0<\/th>\n<th>\u4e3b\u8981\u529f\u80fd<\/th>\n<th>\u9002\u7528\u573a\u666f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>DiskSpd<\/strong><\/td>\n<td>\u5b58\u50a8\u8bbe\u5907 I\/O \u57fa\u51c6\u6d4b\u8bd5<\/td>\n<td>\u78c1\u76d8\u6027\u80fd\u6d4b\u8bd5<\/td>\n<\/tr>\n<tr>\n<td><strong>CrystalDiskMark<\/strong><\/td>\n<td>\u78c1\u76d8\u6027\u80fd\u6d4b\u8bd5<\/td>\n<td>\u78c1\u76d8\u8bfb\u5199\u901f\u5ea6\u6d4b\u8bd5<\/td>\n<\/tr>\n<tr>\n<td><strong>3DMark<\/strong><\/td>\n<td>GPU \u6027\u80fd\u57fa\u51c6\u6d4b\u8bd5<\/td>\n<td>GPU \u6027\u80fd\u6d4b\u8bd5<\/td>\n<\/tr>\n<tr>\n<td><strong>Cinebench<\/strong><\/td>\n<td>CPU \u6e32\u67d3\u6027\u80fd\u6d4b\u8bd5<\/td>\n<td>CPU \u6027\u80fd\u6d4b\u8bd5<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"%E4%BA%8C%E3%80%81%E5%86%85%E5%AD%98%E5%B7%A5%E5%85%B7\"><\/span>\u4e8c\u3001\u5185\u5b58\u5de5\u5177<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u5185\u5b58\u95ee\u9898\u662f Windows \u5e94\u7528\u5f00\u53d1\u4e2d\u6700\u5e38\u89c1\u7684\u6027\u80fd\u95ee\u9898\u4e4b\u4e00\u3002\u672c\u7ae0\u8282\u4ecb\u7ecd\u5404\u79cd\u5185\u5b58\u68c0\u6d4b\u548c\u5206\u6790\u5de5\u5177\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u5feb\u901f\u5b9a\u4f4d\u5185\u5b58\u6cc4\u6f0f\u3001\u5185\u5b58\u9519\u8bef\u7b49\u95ee\u9898\u3002<\/p>\n<p><strong>\u5de5\u5177\u5bf9\u6bd4<\/strong>\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177<\/th>\n<th>\u68c0\u6d4b\u7c7b\u578b<\/th>\n<th>\u6027\u80fd\u5f00\u9500<\/th>\n<th>\u4fb5\u5165\u6027<\/th>\n<th>\u9002\u7528\u573a\u666f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>tcmalloc<\/strong><\/td>\n<td>\u5185\u5b58\u5206\u914d\u6027\u80fd<\/td>\n<td>\u4f4e<\/td>\n<td>\u4e2d\u7b49\uff08\u9700\u94fe\u63a5\u5e93\uff09<\/td>\n<td>\u5185\u5b58\u5206\u914d\u6027\u80fd\u4f18\u5316<\/td>\n<\/tr>\n<tr>\n<td><strong>UMDH<\/strong><\/td>\n<td>\u5806\u5185\u5b58\u6cc4\u6f0f<\/td>\n<td>\u4f4e<\/td>\n<td>\u4f4e\uff08\u8fd0\u884c\u65f6\uff09<\/td>\n<td>Windows \u5806\u5185\u5b58\u6cc4\u6f0f\u5206\u6790<\/td>\n<\/tr>\n<tr>\n<td><strong>CRTDBG<\/strong><\/td>\n<td>malloc \u6cc4\u6f0f<\/td>\n<td>\u4f4e<\/td>\n<td>\u4f4e\uff08\u8fd0\u884c\u65f6\uff09<\/td>\n<td>C \u8fd0\u884c\u65f6\u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b<\/td>\n<\/tr>\n<tr>\n<td><strong>AddressSanitizer<\/strong><\/td>\n<td>\u591a\u79cd\u5185\u5b58\u9519\u8bef<\/td>\n<td>\u9ad8\uff082-3\u500d\uff09<\/td>\n<td>\u4f4e\uff08\u7f16\u8bd1\u65f6\u542f\u7528\uff09<\/td>\n<td>\u5f00\u53d1\u9636\u6bb5\u5185\u5b58\u9519\u8bef\u68c0\u6d4b<\/td>\n<\/tr>\n<tr>\n<td><strong>Dr. Memory<\/strong><\/td>\n<td>\u591a\u79cd\u5185\u5b58\u9519\u8bef<\/td>\n<td>\u4e2d\u7b49\uff085-10\u500d\uff09<\/td>\n<td>\u65e0\uff08\u4e8c\u8fdb\u5236\u63d2\u6869\uff09<\/td>\n<td>\u65e0\u9700\u91cd\u65b0\u7f16\u8bd1\u7684\u5185\u5b58\u68c0\u6d4b<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span class=\"ez-toc-section\" id=\"21_tcmalloc\"><\/span>2.1 tcmalloc<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0-2\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>tcmalloc\uff08Thread-Caching Malloc\uff09\u662f Google \u5f00\u53d1\u7684\u9ad8\u6027\u80fd\u5185\u5b58\u5206\u914d\u5668\uff0c\u76f8\u6bd4\u6807\u51c6 malloc \u5177\u6709\u66f4\u597d\u7684\u591a\u7ebf\u7a0b\u6027\u80fd\u548c\u66f4\u4f4e\u7684\u5185\u5b58\u788e\u7247\u3002<\/p>\n<p><strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n&#8211; \u2705 \u9ad8\u6027\u80fd\u5185\u5b58\u5206\u914d<br \/>\n&#8211; \u2705 \u4f4e\u5185\u5b58\u788e\u7247<br \/>\n&#8211; \u2705 \u5185\u7f6e\u5185\u5b58\u5206\u6790\u529f\u80fd<br \/>\n&#8211; \u2705 \u652f\u6301\u5806\u5206\u6790\u5de5\u5177<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8\"><\/span>\u4f7f\u7528<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>1. \u4e0b\u8f7d\u548c\u7f16\u8bd1<\/strong><\/p>\n<ol>\n<li>\u4e0b\u8f7d <a href=\"https:\/\/github.com\/gperftools\/gperftools\">gperftools<\/a><\/li>\n<li>\u6253\u5f00 <code>gperftools.sln<\/code> \u7f16\u8bd1 <code>libtcmalloc_minimal<\/code><\/li>\n<li>\u4fee\u6539\u5f15\u5165\u5de5\u7a0b\u5c5e\u6027\uff1a<\/li>\n<li>\u9644\u52a0\u4f9d\u8d56\u9879\u8f93\u5165\uff1a<code>libtcmalloc_minimal.lib<\/code><\/li>\n<li>\u5f3a\u5236\u7b26\u53f7\u5f15\u7528\u6dfb\u52a0\uff1a<code>__tcmalloc<\/code><\/li>\n<\/ol>\n<p><img decoding=\"async\" alt=\"\u914d\u7f6e\u793a\u4f8b\" src=\"https:\/\/www.ixriver.com\/wp-content\/uploads\/2026\/02\/image_1-3.png\" \/><\/p>\n<p><strong>2. \u4f7f\u7528\u5806\u5206\u6790\u5de5\u5177\uff08\u53ef\u9009\uff09<\/strong><\/p>\n<p>tcmalloc \u5185\u7f6e\u4e86\u5806\u5206\u6790\u5de5\u5177\uff0c\u53ef\u4ee5\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u542f\u7528\uff1a<\/p>\n<pre><code class=\"language-cmd\">set HEAPPROFILE=heap_profile\nset HEAPCHECK=normal\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90\"><\/span>\u6e90\u7801\u5206\u6790<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>\u8c03\u7528\u6d41\u7a0b<\/strong>\uff1a<\/p>\n<pre><code class=\"language-text\">malloc -&gt; Perftools_malloc(path_function.cc)\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9\"><\/span>\u6ce8\u610f\u4e8b\u9879<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\u9700\u8981\u94fe\u63a5 tcmalloc \u5e93\uff0c\u4f1a\u589e\u52a0\u4e8c\u8fdb\u5236\u6587\u4ef6\u5927\u5c0f<\/li>\n<li>\u67d0\u4e9b\u7b2c\u4e09\u65b9\u5e93\u53ef\u80fd\u4e0e tcmalloc \u4e0d\u517c\u5bb9<\/li>\n<li>\u5efa\u8bae\u5728\u6027\u80fd\u5173\u952e\u7684\u5e94\u7528\u4e2d\u4f7f\u7528<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"22_UMDH\"><\/span>2.2 UMDH<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0-3\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>UMDH\uff08User-Mode Dump Heap\uff09\u662f Windows SDK \u63d0\u4f9b\u7684\u5806\u5185\u5b58\u5206\u6790\u5de5\u5177\uff0c\u7528\u4e8e\u68c0\u6d4b\u5806\u5185\u5b58\u6cc4\u6f0f\u3002\u5b83\u901a\u8fc7\u5bf9\u6bd4\u4e0d\u540c\u65f6\u95f4\u70b9\u7684\u5806\u5feb\u7167\u6765\u627e\u51fa\u5185\u5b58\u6cc4\u6f0f\u3002<\/p>\n<p><strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n&#8211; \u2705 \u65e0\u9700\u91cd\u65b0\u7f16\u8bd1\u7a0b\u5e8f<br \/>\n&#8211; \u2705 \u4f4e\u6027\u80fd\u5f00\u9500<br \/>\n&#8211; \u2705 \u53ef\u4ee5\u68c0\u6d4b <code>malloc<\/code>\u3001<code>heap_alloc<\/code> \u5185\u5b58\u5206\u914d\u8bf7\u6c42<br \/>\n&#8211; \u274c <code>alloc-free<\/code> \u914d\u5bf9\u7684\u5185\u5b58\u4e0d\u4f1a\u4f53\u73b0\u5728\u5185\u5b58\u5feb\u7167\u4e2d<br \/>\n&#8211; \u274c \u65e0\u6cd5\u68c0\u6d4b <code>VirtualAlloc<\/code> \u5185\u5b58\u6cc4\u6f0f<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E5%8F%AF%E4%BB%A5%E6%A3%80%E6%B5%8B%E7%9A%84%E5%86%85%E5%AD%98%E7%B1%BB%E5%9E%8B\"><\/span>\u53ef\u4ee5\u68c0\u6d4b\u7684\u5185\u5b58\u7c7b\u578b<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\u2705 \u53ef\u4ee5\u68c0\u6d4b <code>malloc<\/code>\u3001<code>heap_alloc<\/code> \u5185\u5b58\u5206\u914d\u8bf7\u6c42<\/li>\n<li>\u274c <code>alloc-free<\/code> \u914d\u5bf9\u7684\u5185\u5b58\u4e0d\u4f1a\u4f53\u73b0\u5728\u5185\u5b58\u5feb\u7167\u4e2d<\/li>\n<li>\u274c \u65e0\u6cd5\u68c0\u6d4b <code>VirtualAlloc<\/code> \u5185\u5b58\u6cc4\u6f0f<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E6%AD%A5%E9%AA%A4\"><\/span>\u4f7f\u7528\u6b65\u9aa4<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>1. \u73af\u5883\u914d\u7f6e<\/strong><\/p>\n<p>\u8bbe\u7f6e UMDH \u73af\u5883\u53d8\u91cf\uff1a<\/p>\n<pre><code class=\"language-text\">C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x86\n<\/code><\/pre>\n<blockquote>\n<p><strong>\u6ce8\u610f<\/strong>\uff1a\u82e5\u8981\u786e\u4fdd\u51c6\u786e\u7684\u7ed3\u679c\uff0c\u5fc5\u987b\u7981\u7528 BSTR \u7f13\u5b58\u3002\u4e3a\u6b64\uff0c\u8bf7\u5c06 <code>OANOCACHE<\/code> \u73af\u5883\u53d8\u91cf\u8bbe\u7f6e\u4e3a\u7b49\u4e8e 1\uff08\u5728\u542f\u52a8\u8981\u8ddf\u8e2a\u5176\u5206\u914d\u7684\u5e94\u7528\u7a0b\u5e8f\u4e4b\u524d\uff0c\u8bf7\u8fdb\u884c\u6b64\u8bbe\u7f6e\uff09\u3002<\/p>\n<\/blockquote>\n<p><strong>2. \u5f00\u542f\u7528\u6237\u6001 heap check<\/strong><\/p>\n<p>\u4f7f\u7528 gflags \u5f00\u542f\u7528\u6237\u6001 heap check\uff1a<\/p>\n<p><img decoding=\"async\" alt=\"gflags \u914d\u7f6e\" src=\"https:\/\/www.ixriver.com\/wp-content\/uploads\/2026\/02\/image_2-3.png\" \/><\/p>\n<p><img decoding=\"async\" alt=\"gflags \u8bbe\u7f6e\" src=\"https:\/\/www.ixriver.com\/wp-content\/uploads\/2026\/02\/image_3-3.png\" \/><\/p>\n<p><strong>3. \u6ce8\u5165\u6d4b\u8bd5\u7a0b\u5e8f<\/strong><\/p>\n<pre><code class=\"language-cmd\">set OANOCACHE=1\ngflags.exe \/i wemeetapp.exe +ust\n\n\/\/ \u53d6\u6d88\u8bbe\u7f6e\ngflags.exe \/i wemeetapp.exe -ust\n<\/code><\/pre>\n<p><strong>4. \u521b\u5efa heap \u5feb\u7167<\/strong><\/p>\n<p>\u542f\u52a8\u6d4b\u8bd5\u7a0b\u5e8f\uff08wemeetapp.exe\uff09\uff0c\u4f1a\u8bae\u5f53\u524d\u5728\u5927\u5385\uff1a<\/p>\n<pre><code class=\"language-cmd\">umdh -p:[pid] -f:home.log\n<\/code><\/pre>\n<p>\u4f1a\u8bae\u8fdb\u623f\uff0c\u5e76\u5f00\u542f\u97f3\u89c6\u9891\uff0c\u8fd0\u884c\u4e00\u6bb5\u65f6\u95f4\u540e\uff1a<\/p>\n<pre><code class=\"language-cmd\">umdh -p:[pid] -f:room.log\n<\/code><\/pre>\n<p><strong>5. \u5bf9\u6bd4\u4e24\u4e2a\u5feb\u7167\u7684 heap \u5dee\u5f02<\/strong><\/p>\n<pre><code class=\"language-cmd\">umdh -d home.log room.log -f:diff.txt\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"%E7%BB%93%E6%9E%9C%E5%88%86%E6%9E%90\"><\/span>\u7ed3\u679c\u5206\u6790<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u5bf9\u6bd4\u6587\u4ef6\u4f1a\u663e\u793a\uff1a<br \/>\n&#8211; <strong>\u5185\u5b58\u589e\u957f<\/strong>\uff1a\u663e\u793a\u54ea\u4e9b\u8c03\u7528\u6808\u5206\u914d\u4e86\u66f4\u591a\u5185\u5b58<br \/>\n&#8211; <strong>\u8c03\u7528\u6808\u4fe1\u606f<\/strong>\uff1a\u663e\u793a\u5185\u5b58\u5206\u914d\u7684\u8c03\u7528\u6808\uff0c\u5e2e\u52a9\u5b9a\u4f4d\u6cc4\u6f0f\u4f4d\u7f6e<br \/>\n&#8211; <strong>\u5185\u5b58\u5927\u5c0f<\/strong>\uff1a\u663e\u793a\u6cc4\u6f0f\u7684\u5185\u5b58\u5927\u5c0f<\/p>\n<p><strong>\u793a\u4f8b\u8f93\u51fa<\/strong>\uff1a<\/p>\n<pre><code class=\"language-text\">+   1000000 (  1000000 -       0)     1 allocs BackTrace00\n+       +    1 (       1 -       0) BackTrace00 allocations\n\n    ntdll!RtlDebugAllocateHeap+0x0000000000000030\n    ntdll!RtlAllocateHeap+0x0000000000000076\n    msvcr120!malloc+0x0000000000000019\n    MyApp!LeakFunction+0x0000000000000010\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5\"><\/span>\u6700\u4f73\u5b9e\u8df5<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ol>\n<li><strong>\u9009\u62e9\u5408\u9002\u7684\u5feb\u7167\u65f6\u673a<\/strong>\uff1a<\/li>\n<li>\u7b2c\u4e00\u4e2a\u5feb\u7167\uff1a\u7a0b\u5e8f\u542f\u52a8\u540e\u3001\u6267\u884c\u5173\u952e\u64cd\u4f5c\u524d<\/li>\n<li>\n<p>\u7b2c\u4e8c\u4e2a\u5feb\u7167\uff1a\u6267\u884c\u5173\u952e\u64cd\u4f5c\u540e\u3001\u8fd0\u884c\u4e00\u6bb5\u65f6\u95f4<\/p>\n<\/li>\n<li>\n<p><strong>\u591a\u6b21\u5bf9\u6bd4<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u53ef\u4ee5\u521b\u5efa\u591a\u4e2a\u5feb\u7167\uff0c\u5bf9\u6bd4\u4e0d\u540c\u9636\u6bb5\u7684\u5806\u53d8\u5316<\/li>\n<li>\n<p>\u6709\u52a9\u4e8e\u8bc6\u522b\u6e10\u8fdb\u5f0f\u5185\u5b58\u6cc4\u6f0f<\/p>\n<\/li>\n<li>\n<p><strong>\u7ed3\u5408\u5176\u4ed6\u5de5\u5177<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u4e0e Process Explorer \u7ed3\u5408\u4f7f\u7528\uff0c\u67e5\u770b\u8fdb\u7a0b\u5185\u5b58\u8d8b\u52bf<\/li>\n<li>\n<p>\u4e0e WinDbg \u7ed3\u5408\u4f7f\u7528\uff0c\u6df1\u5165\u5206\u6790\u5185\u5b58\u95ee\u9898<\/p>\n<\/li>\n<li>\n<p><strong>\u6ce8\u610f\u4e8b\u9879<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u786e\u4fdd\u7a0b\u5e8f\u5728\u4e24\u6b21\u5feb\u7167\u4e4b\u95f4\u6267\u884c\u4e86\u53ef\u80fd\u6cc4\u6f0f\u7684\u64cd\u4f5c<\/li>\n<li>\u907f\u514d\u5728\u7a0b\u5e8f\u9000\u51fa\u65f6\u521b\u5efa\u5feb\u7167\uff08\u53ef\u80fd\u663e\u793a\u6240\u6709\u672a\u91ca\u653e\u7684\u5185\u5b58\uff09<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"23_CRTDBG_%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F%E6%A3%80%E6%B5%8B\"><\/span>2.3 CRTDBG \u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0-4\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>CRTDBG \u662f Visual C++ \u8fd0\u884c\u65f6\u5e93\u63d0\u4f9b\u7684\u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b\u529f\u80fd\uff0c\u53ef\u4ee5\u5728\u7a0b\u5e8f\u9000\u51fa\u65f6\u68c0\u6d4b\u672a\u91ca\u653e\u7684\u5185\u5b58\u3002<\/p>\n<p><strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n&#8211; \u2705 Windows \u81ea\u5e26\uff0c\u65e0\u9700\u989d\u5916\u5de5\u5177<br \/>\n&#8211; \u2705 \u7b80\u5355\u6613\u7528<br \/>\n&#8211; \u2705 \u53ef\u4ee5\u663e\u793a\u6cc4\u6f0f\u5185\u5b58\u7684\u8c03\u7528\u6808<br \/>\n&#8211; \u274c \u53ea\u80fd\u68c0\u6d4b <code>malloc<\/code> \u51fd\u6570\u7684\u5185\u5b58\u6cc4\u6f0f\uff0c\u65e0\u6cd5\u68c0\u6d4b <code>heap_alloc<\/code><br \/>\n&#8211; \u274c \u9700\u8981\u5728\u7a0b\u5e8f\u9000\u51fa\u65f6\u8c03\u7528<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95\"><\/span>\u4f7f\u7528\u65b9\u6cd5<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>1. \u57fa\u672c\u4f7f\u7528<\/strong><\/p>\n<pre><code class=\"language-c\">#define _CRTDBG_MAP_ALLOC\n#include &lt;stdlib.h&gt;\n#include &lt;crtdbg.h&gt;\n\nint main(int argc, char** argv)\n{\n    \/\/ \u542f\u7528\u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b\n    _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);\n\n    char *str = (char*)malloc(20 * sizeof(char));\n\n    \/\/ \u5728\u7a0b\u5e8f\u9000\u51fa\u524d\u8f93\u51fa\u5185\u5b58\u6cc4\u6f0f\u4fe1\u606f\n    _CrtDumpMemoryLeaks();\n    return 0;\n}\n<\/code><\/pre>\n<p><strong>2. \u8f93\u51fa\u5230\u6587\u4ef6<\/strong><\/p>\n<pre><code class=\"language-c\">_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);\n_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);\n<\/code><\/pre>\n<p><strong>3. \u8bbe\u7f6e\u65ad\u70b9<\/strong><\/p>\n<p>\u5f53\u68c0\u6d4b\u5230\u5185\u5b58\u6cc4\u6f0f\u65f6\uff0c\u53ef\u4ee5\u5728\u7279\u5b9a\u5206\u914d\u5904\u8bbe\u7f6e\u65ad\u70b9\uff1a<\/p>\n<pre><code class=\"language-c\">\/\/ \u5728\u8c03\u8bd5\u5668\u4e2d\uff0c\u5f53\u5206\u914d\u7f16\u53f7\u4e3a 123 \u7684\u5185\u5b58\u65f6\u4e2d\u65ad\n_CrtSetBreakAlloc(123);\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9-2\"><\/span>\u6ce8\u610f\u4e8b\u9879<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\u9700\u8981\u5728 Debug \u6a21\u5f0f\u4e0b\u7f16\u8bd1\u624d\u80fd\u83b7\u5f97\u5b8c\u6574\u7684\u8c03\u7528\u6808\u4fe1\u606f<\/li>\n<li>\u67d0\u4e9b\u7b2c\u4e09\u65b9\u5e93\u53ef\u80fd\u4ea7\u751f\u8bef\u62a5<\/li>\n<li>\u9002\u5408\u5f00\u53d1\u9636\u6bb5\u4f7f\u7528\uff0c\u4e0d\u9002\u5408\u751f\u4ea7\u73af\u5883<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"24_%E5%8F%A5%E6%9F%84%E6%B3%84%E9%9C%B2%E6%A3%80%E6%B5%8B\"><\/span>2.4 \u53e5\u67c4\u6cc4\u9732\u68c0\u6d4b<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u4f7f\u7528 WinDbg \u547d\u4ee4\u68c0\u6d4b\u53e5\u67c4\u6cc4\u9732\uff1a<\/p>\n<pre><code class=\"language-windbg\">!htrace -enable\n!htrace -diff\n!handle [\u53e5\u67c4]\n<\/code><\/pre>\n<p><strong>\u4f7f\u7528\u6b65\u9aa4<\/strong>\uff1a<\/p>\n<ol>\n<li>\u5728 WinDbg \u4e2d\u9644\u52a0\u5230\u76ee\u6807\u8fdb\u7a0b<\/li>\n<li>\u6267\u884c <code>!htrace -enable<\/code> \u542f\u7528\u53e5\u67c4\u8ffd\u8e2a<\/li>\n<li>\u6267\u884c\u9700\u8981\u68c0\u6d4b\u7684\u64cd\u4f5c<\/li>\n<li>\u6267\u884c <code>!htrace -diff<\/code> \u67e5\u770b\u53e5\u67c4\u53d8\u5316<\/li>\n<li>\u4f7f\u7528 <code>!handle [\u53e5\u67c4\u503c]<\/code> \u67e5\u770b\u5177\u4f53\u53e5\u67c4\u4fe1\u606f<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"25_AddressSanitizer_ASan\"><\/span>2.5 AddressSanitizer (ASan)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0-5\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>AddressSanitizer\uff08ASan\uff09\u662f\u4e00\u79cd\u8fd0\u884c\u65f6\u5185\u5b58\u9519\u8bef\u68c0\u6d4b\u5668\uff0c\u7528\u4e8e\u6355\u83b7\u8bf8\u5982\u8d8a\u754c\u8bbf\u95ee\uff08out-of-bounds\uff09\u3001\u4f7f\u7528\u5df2\u91ca\u653e\u5185\u5b58\uff08use-after-free\uff09\u3001\u6808\u6ea2\u51fa\u3001\u5806\u6ea2\u51fa\u3001\u5185\u5b58\u6cc4\u6f0f\u7b49\u95ee\u9898\u3002\u6700\u521d\u7531 LLVM\/Clang \u5b9e\u73b0\uff0c\u73b0\u5728 Windows \u4e0a\u7684 MSVC \u548c Clang-CL \u90fd\u63d0\u4f9b\u4e86\u652f\u6301\u3002<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5\"><\/span>\u652f\u6301\u60c5\u51b5<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177\/\u7f16\u8bd1\u5668<\/th>\n<th>\u652f\u6301\u60c5\u51b5<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>MSVC (cl.exe)<\/td>\n<td>Visual Studio 2019 16.9 \u8d77\u63d0\u4f9b\u652f\u6301<\/td>\n<\/tr>\n<tr>\n<td>Clang\/Clang-CL<\/td>\n<td>\u5b8c\u6574\u652f\u6301 ASan<\/td>\n<\/tr>\n<tr>\n<td>\u67b6\u6784\u652f\u6301<\/td>\n<td>x86\u3001x64\uff08ARM64 \u5728 VS 2026 \u4e2d\u652f\u6301\uff0c\u9884\u89c8\u7248\uff09<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E6%AD%A5%E9%AA%A4-2\"><\/span>\u4f7f\u7528\u6b65\u9aa4<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>1. \u73af\u5883\u8981\u6c42<\/strong><\/p>\n<ul>\n<li>Visual Studio 2019 16.9 \u6216\u66f4\u9ad8\u7248\u672c<\/li>\n<li>\u786e\u4fdd\u5b89\u88c5\u4e86 C++ \u5de5\u4f5c\u8d1f\u8f7d\uff08Desktop development with C++\uff09<\/li>\n<\/ul>\n<p><strong>2. MSVC \u7f16\u8bd1\u5668\u542f\u7528 ASan<\/strong><\/p>\n<p>\u5728\u9879\u76ee\u5c5e\u6027\u4e2d\u914d\u7f6e\uff1a<\/p>\n<ul>\n<li><strong>C\/C++ \u2192 \u5e38\u89c4 \u2192 \u542f\u7528 AddressSanitizer<\/strong>\uff1a\u9009\u62e9&#8221;\u662f (\/fsanitize=address)&#8221;<\/li>\n<li>\u6216\u8005\u76f4\u63a5\u5728\u547d\u4ee4\u884c\u6dfb\u52a0\uff1a<code>\/fsanitize=address<\/code><\/li>\n<\/ul>\n<p><strong>\u793a\u4f8b\u9879\u76ee\u914d\u7f6e<\/strong>\uff1a<\/p>\n<pre><code class=\"language-text\">\u9879\u76ee\u5c5e\u6027 \u2192 C\/C++ \u2192 \u5e38\u89c4\n\u542f\u7528 AddressSanitizer: \u662f (\/fsanitize=address)\n<\/code><\/pre>\n<p><strong>3. Clang-CL \u7f16\u8bd1\u5668\u542f\u7528 ASan<\/strong><\/p>\n<p>\u4f7f\u7528 Clang-CL \u65f6\uff0c\u6dfb\u52a0\u7f16\u8bd1\u9009\u9879\uff1a<\/p>\n<pre><code class=\"language-cmd\">clang-cl -fsanitize=address main.cpp -o main.exe\n<\/code><\/pre>\n<p><strong>4. \u73af\u5883\u53d8\u91cf\u914d\u7f6e\uff08\u53ef\u9009\uff09<\/strong><\/p>\n<p>\u53ef\u4ee5\u901a\u8fc7 <code>ASAN_OPTIONS<\/code> \u73af\u5883\u53d8\u91cf\u8c03\u6574 ASan \u884c\u4e3a\uff1a<\/p>\n<pre><code class=\"language-cmd\">set ASAN_OPTIONS=windows_hook_rtl_allocators=true\n<\/code><\/pre>\n<p>\u5e38\u7528\u9009\u9879\uff1a<br \/>\n&#8211; <code>windows_hook_rtl_allocators=true<\/code>\uff1a\u542f\u7528\u5bf9 Windows RTL \u5206\u914d\u5668\u7684\u94a9\u6302<br \/>\n&#8211; <code>detect_leaks=1<\/code>\uff1a\u542f\u7528\u5185\u5b58\u6cc4\u6f0f\u68c0\u6d4b<br \/>\n&#8211; <code>abort_on_error=1<\/code>\uff1a\u68c0\u6d4b\u5230\u9519\u8bef\u65f6\u7acb\u5373\u7ec8\u6b62\u7a0b\u5e8f<\/p>\n<p><strong>5. \u8fd0\u884c\u548c\u8c03\u8bd5<\/strong><\/p>\n<ul>\n<li>\u5728 Visual Studio \u4e2d\u8fd0\u884c\u542f\u7528\u4e86 ASan \u7684\u7a0b\u5e8f\u65f6\uff0c\u8c03\u8bd5\u5668\u4f1a\u81ea\u52a8\u6355\u83b7\u5185\u5b58\u9519\u8bef<\/li>\n<li>\u9519\u8bef\u4fe1\u606f\u4f1a\u663e\u793a\u5728\u8f93\u51fa\u7a97\u53e3\uff0c\u5305\u62ec\u9519\u8bef\u7c7b\u578b\u3001\u5185\u5b58\u5730\u5740\u3001\u8c03\u7528\u5806\u6808\u7b49<\/li>\n<li>ASan \u4f1a\u5728\u68c0\u6d4b\u5230\u9519\u8bef\u65f6\u81ea\u52a8\u4e2d\u65ad\u7a0b\u5e8f\u6267\u884c<\/li>\n<\/ul>\n<p><strong>\u793a\u4f8b\u8f93\u51fa<\/strong>\uff1a<\/p>\n<pre><code class=\"language-text\">=================================================================\n==12345==ERROR: AddressSanitizer: heap-use-after-free on address 0x...\n    #0 0x7ff... in main main.cpp:10\n    #1 0x7ff... in __scrt_common_main_seh\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"%E6%A3%80%E6%B5%8B%E7%9A%84%E5%86%85%E5%AD%98%E9%94%99%E8%AF%AF%E7%B1%BB%E5%9E%8B\"><\/span>\u68c0\u6d4b\u7684\u5185\u5b58\u9519\u8bef\u7c7b\u578b<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\u2705 <strong>\u5806\u7f13\u51b2\u533a\u6ea2\u51fa<\/strong>\uff1a\u8bbf\u95ee\u5806\u5206\u914d\u7684\u5185\u5b58\u8fb9\u754c\u4e4b\u5916<\/li>\n<li>\u2705 <strong>\u6808\u7f13\u51b2\u533a\u6ea2\u51fa<\/strong>\uff1a\u8bbf\u95ee\u6808\u5206\u914d\u7684\u5185\u5b58\u8fb9\u754c\u4e4b\u5916<\/li>\n<li>\u2705 <strong>\u4f7f\u7528\u5df2\u91ca\u653e\u5185\u5b58<\/strong>\uff1a\u8bbf\u95ee\u5df2\u7ecf\u88ab free\/delete \u7684\u5185\u5b58<\/li>\n<li>\u2705 <strong>\u4f7f\u7528\u4f5c\u7528\u57df\u5916\u5185\u5b58<\/strong>\uff1a\u8bbf\u95ee\u8d85\u51fa\u4f5c\u7528\u57df\u7684\u6808\u53d8\u91cf<\/li>\n<li>\u2705 <strong>\u5185\u5b58\u6cc4\u6f0f<\/strong>\uff1a\u5206\u914d\u7684\u5185\u5b58\u672a\u91ca\u653e\uff08\u9700\u8981\u542f\u7528 <code>detect_leaks<\/code>\uff09<\/li>\n<li>\u2705 <strong>\u53cc\u91cd\u91ca\u653e<\/strong>\uff1a\u5bf9\u540c\u4e00\u5757\u5185\u5b58\u91ca\u653e\u4e24\u6b21<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%E9%99%90%E5%88%B6%E4%B8%8E%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9\"><\/span>\u9650\u5236\u4e0e\u6ce8\u610f\u4e8b\u9879<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ol>\n<li><strong>\u6027\u80fd\u5f00\u9500<\/strong>\uff1a<\/li>\n<li>\u7f16\u8bd1\u901f\u5ea6\u53d8\u6162<\/li>\n<li>\u8fd0\u884c\u65f6\u5185\u5b58\u5f00\u9500\u663e\u8457\u589e\u52a0\uff08shadow memory\u3001\u989d\u5916\u7684\u8fd0\u884c\u65f6\u68c0\u67e5\uff09<\/li>\n<li>\n<p>\u901a\u5e38\u4f1a\u4f7f\u7a0b\u5e8f\u8fd0\u884c\u901f\u5ea6\u964d\u4f4e 2-3 \u500d<\/p>\n<\/li>\n<li>\n<p><strong>\u5e93\u517c\u5bb9\u6027<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u6240\u6709\u88ab\u5f15\u7528\u7684\u5e93\u6700\u597d\u4e5f\u7528 ASan \u6784\u5efa<\/li>\n<li>\n<p>\u6df7\u5408\u4f7f\u7528\uff08\u4e00\u4e9b\u5e93\u4e0d\u5e26 ASan\uff09\u53ef\u80fd\u5bfc\u81f4\u67d0\u4e9b\u9519\u8bef\u68c0\u6d4b\u5931\u6548\u6216\u8bef\u62a5<\/p>\n<\/li>\n<li>\n<p><strong>\u8c03\u8bd5\u7b26\u53f7<\/strong>\uff1a<\/p>\n<\/li>\n<li>\n<p>\u5efa\u8bae\u5728 Debug \u6a21\u5f0f\u4e0b\u4f7f\u7528\uff0c\u786e\u4fdd\u6709\u5b8c\u6574\u7684\u8c03\u8bd5\u7b26\u53f7\u4fe1\u606f<\/p>\n<\/li>\n<li>\n<p><strong>\u7248\u672c\u517c\u5bb9\u6027<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u65e9\u671f\u7248\u672c\u53ef\u80fd\u5b58\u5728\u517c\u5bb9\u6027\u95ee\u9898<\/li>\n<li>\u5efa\u8bae\u4f7f\u7528 Visual Studio 2019 16.9 \u6216\u66f4\u9ad8\u7248\u672c<\/li>\n<\/ol>\n<h4><span class=\"ez-toc-section\" id=\"%E4%B8%8E%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7%E5%AF%B9%E6%AF%94\"><\/span>\u4e0e\u5176\u4ed6\u5de5\u5177\u5bf9\u6bd4<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177<\/th>\n<th>\u68c0\u6d4b\u7c7b\u578b<\/th>\n<th>\u6027\u80fd\u5f00\u9500<\/th>\n<th>\u4fb5\u5165\u6027<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>AddressSanitizer<\/td>\n<td>\u591a\u79cd\u5185\u5b58\u9519\u8bef<\/td>\n<td>\u9ad8\uff082-3\u500d\uff09<\/td>\n<td>\u4f4e\uff08\u7f16\u8bd1\u65f6\u542f\u7528\uff09<\/td>\n<\/tr>\n<tr>\n<td>UMDH<\/td>\n<td>\u5806\u5185\u5b58\u6cc4\u6f0f<\/td>\n<td>\u4f4e<\/td>\n<td>\u4f4e\uff08\u8fd0\u884c\u65f6\uff09<\/td>\n<\/tr>\n<tr>\n<td>CRTDBG<\/td>\n<td>malloc \u6cc4\u6f0f<\/td>\n<td>\u4f4e<\/td>\n<td>\u4f4e\uff08\u8fd0\u884c\u65f6\uff09<\/td>\n<\/tr>\n<tr>\n<td>Dr. Memory<\/td>\n<td>\u591a\u79cd\u5185\u5b58\u9519\u8bef<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u65e0\uff08\u4e8c\u8fdb\u5236\u63d2\u6869\uff09<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span class=\"ez-toc-section\" id=\"26_Dr_Memory\"><\/span>2.6 Dr. Memory<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0-6\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Dr. Memory \u662f\u4e00\u4e2a\u5185\u5b58\u9519\u8bef\u68c0\u6d4b\u5de5\u5177\uff0c\u7c7b\u4f3c\u4e8e Linux \u4e0a\u7684 Valgrind\uff0c\u4f46\u4e13\u95e8\u4e3a Windows \u5e73\u53f0\u8bbe\u8ba1\u3002\u5b83\u4f7f\u7528\u52a8\u6001\u4e8c\u8fdb\u5236\u63d2\u6869\uff08Dynamic Binary Instrumentation\uff09\u6280\u672f\uff0c\u53ef\u4ee5\u5728\u4e0d\u91cd\u65b0\u7f16\u8bd1\u7a0b\u5e8f\u7684\u60c5\u51b5\u4e0b\u68c0\u6d4b\u5185\u5b58\u9519\u8bef\u3002<\/p>\n<p><strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n&#8211; \u2705 \u65e0\u9700\u91cd\u65b0\u7f16\u8bd1\u7a0b\u5e8f\uff08\u4e8c\u8fdb\u5236\u63d2\u6869\uff09<br \/>\n&#8211; \u2705 \u652f\u6301\u68c0\u6d4b\u591a\u79cd\u5185\u5b58\u9519\u8bef\u7c7b\u578b<br \/>\n&#8211; \u2705 \u652f\u6301 32 \u4f4d\u548c 64 \u4f4d\u5e94\u7528\u7a0b\u5e8f<br \/>\n&#8211; \u2705 \u5f00\u6e90\u514d\u8d39\u5de5\u5177<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E6%A3%80%E6%B5%8B%E7%9A%84%E5%86%85%E5%AD%98%E9%94%99%E8%AF%AF%E7%B1%BB%E5%9E%8B-2\"><\/span>\u68c0\u6d4b\u7684\u5185\u5b58\u9519\u8bef\u7c7b\u578b<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\u2705 <strong>\u672a\u521d\u59cb\u5316\u5185\u5b58\u8bbf\u95ee<\/strong>\uff1a\u4f7f\u7528\u672a\u521d\u59cb\u5316\u7684\u53d8\u91cf<\/li>\n<li>\u2705 <strong>\u5185\u5b58\u6cc4\u6f0f<\/strong>\uff1a\u5206\u914d\u7684\u5185\u5b58\u672a\u91ca\u653e<\/li>\n<li>\u2705 <strong>\u4f7f\u7528\u5df2\u91ca\u653e\u5185\u5b58<\/strong>\uff1a\u8bbf\u95ee\u5df2\u7ecf\u88ab free\/delete \u7684\u5185\u5b58<\/li>\n<li>\u2705 <strong>\u5806\u7f13\u51b2\u533a\u6ea2\u51fa<\/strong>\uff1a\u8bbf\u95ee\u5806\u5206\u914d\u7684\u5185\u5b58\u8fb9\u754c\u4e4b\u5916<\/li>\n<li>\u2705 <strong>\u6808\u7f13\u51b2\u533a\u6ea2\u51fa<\/strong>\uff1a\u8bbf\u95ee\u6808\u5206\u914d\u7684\u5185\u5b58\u8fb9\u754c\u4e4b\u5916<\/li>\n<li>\u2705 <strong>GDI \u53e5\u67c4\u6cc4\u6f0f<\/strong>\uff1aWindows GDI \u5bf9\u8c61\u6cc4\u6f0f<\/li>\n<li>\u2705 <strong>\u53e5\u67c4\u6cc4\u6f0f<\/strong>\uff1aWindows \u53e5\u67c4\u6cc4\u6f0f<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%E4%B8%8B%E8%BD%BD%E5%92%8C%E5%AE%89%E8%A3%85\"><\/span>\u4e0b\u8f7d\u548c\u5b89\u88c5<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>1. \u4e0b\u8f7d<\/strong><\/p>\n<p>\u4ece\u5b98\u65b9\u7f51\u7ad9\u4e0b\u8f7d\uff1ahttps:\/\/github.com\/DynamoRIO\/drmemory\/releases<\/p>\n<p>\u6216\u8005\u4f7f\u7528\u9884\u7f16\u8bd1\u7248\u672c\uff1a<br \/>\n&#8211; 32 \u4f4d\u7248\u672c\uff1a<code>DrMemory-Windows-2.x.x-32.exe<\/code><br \/>\n&#8211; 64 \u4f4d\u7248\u672c\uff1a<code>DrMemory-Windows-2.x.x-64.exe<\/code><\/p>\n<p><strong>2. \u5b89\u88c5<\/strong><\/p>\n<p>\u89e3\u538b\u5230\u4efb\u610f\u76ee\u5f55\uff0c\u4f8b\u5982\uff1a<code>C:\\DrMemory<\/code><\/p>\n<p><strong>3. \u914d\u7f6e\u73af\u5883\u53d8\u91cf\uff08\u53ef\u9009\uff09<\/strong><\/p>\n<p>\u5c06 Dr. Memory \u7684 <code>bin<\/code> \u76ee\u5f55\u6dfb\u52a0\u5230 PATH \u73af\u5883\u53d8\u91cf\u4e2d\uff0c\u65b9\u4fbf\u547d\u4ee4\u884c\u4f7f\u7528\u3002<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95-2\"><\/span>\u4f7f\u7528\u65b9\u6cd5<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>1. \u57fa\u672c\u7528\u6cd5<\/strong><\/p>\n<pre><code class=\"language-cmd\">drmemory.exe [\u9009\u9879] \u7a0b\u5e8f\u540d [\u7a0b\u5e8f\u53c2\u6570]\n<\/code><\/pre>\n<p><strong>\u793a\u4f8b<\/strong>\uff1a<\/p>\n<pre><code class=\"language-cmd\"># \u68c0\u6d4b\u5185\u5b58\u9519\u8bef\ndrmemory.exe -- your_program.exe arg1 arg2\n\n# \u68c0\u6d4b\u5185\u5b58\u6cc4\u6f0f\ndrmemory.exe -leaks_only -- your_program.exe\n\n# \u68c0\u6d4b\u672a\u521d\u59cb\u5316\u5185\u5b58\ndrmemory.exe -check_uninitialized -- your_program.exe\n<\/code><\/pre>\n<p><strong>2. \u5e38\u7528\u9009\u9879<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>\u9009\u9879<\/th>\n<th>\u8bf4\u660e<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>-leaks_only<\/code><\/td>\n<td>\u4ec5\u68c0\u6d4b\u5185\u5b58\u6cc4\u6f0f\uff0c\u4e0d\u68c0\u6d4b\u5176\u4ed6\u9519\u8bef<\/td>\n<\/tr>\n<tr>\n<td><code>-check_uninitialized<\/code><\/td>\n<td>\u68c0\u6d4b\u672a\u521d\u59cb\u5316\u5185\u5b58\u8bbf\u95ee<\/td>\n<\/tr>\n<tr>\n<td><code>-suppress<\/code><\/td>\n<td>\u4f7f\u7528\u6291\u5236\u6587\u4ef6\u5ffd\u7565\u5df2\u77e5\u7684\u8bef\u62a5<\/td>\n<\/tr>\n<tr>\n<td><code>-logdir<\/code><\/td>\n<td>\u6307\u5b9a\u65e5\u5fd7\u8f93\u51fa\u76ee\u5f55<\/td>\n<\/tr>\n<tr>\n<td><code>-brief<\/code><\/td>\n<td>\u7b80\u8981\u8f93\u51fa\u6a21\u5f0f<\/td>\n<\/tr>\n<tr>\n<td><code>-count<\/code><\/td>\n<td>\u4ec5\u7edf\u8ba1\u9519\u8bef\u6570\u91cf\uff0c\u4e0d\u8f93\u51fa\u8be6\u7ec6\u4fe1\u606f<\/td>\n<\/tr>\n<tr>\n<td><code>-quiet<\/code><\/td>\n<td>\u9759\u9ed8\u6a21\u5f0f\uff0c\u51cf\u5c11\u8f93\u51fa<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>3. \u8f93\u51fa\u7ed3\u679c\u5206\u6790<\/strong><\/p>\n<p>Dr. Memory \u4f1a\u5728\u7a0b\u5e8f\u8fd0\u884c\u7ed3\u675f\u540e\u8f93\u51fa\u8be6\u7ec6\u7684\u9519\u8bef\u62a5\u544a\uff0c\u5305\u62ec\uff1a<\/p>\n<ul>\n<li><strong>\u9519\u8bef\u7c7b\u578b<\/strong>\uff1a\u5982 &#8220;UNADDRESSABLE ACCESS&#8221;\u3001&#8221;UNINITIALIZED READ&#8221;\u3001&#8221;LEAK&#8221; \u7b49<\/li>\n<li><strong>\u9519\u8bef\u4f4d\u7f6e<\/strong>\uff1a\u8c03\u7528\u5806\u6808\u4fe1\u606f<\/li>\n<li><strong>\u5185\u5b58\u5730\u5740<\/strong>\uff1a\u53d1\u751f\u9519\u8bef\u7684\u5185\u5b58\u5730\u5740<\/li>\n<li><strong>\u9519\u8bef\u5927\u5c0f<\/strong>\uff1a\u8bbf\u95ee\u7684\u5185\u5b58\u5927\u5c0f<\/li>\n<\/ul>\n<p><strong>\u793a\u4f8b\u8f93\u51fa<\/strong>\uff1a<\/p>\n<pre><code class=\"language-text\">Error #1: UNADDRESSABLE ACCESS\n  # 0 replace_malloc                    [d:\\drmemory_package\\common\\alloc_replace.c:2576]\n  # 1 test_leak                         [test.cpp:15]\n  # 2 main                              [test.cpp:25]\n\nError #2: LEAK 20 bytes\n  # 0 replace_malloc                    [d:\\drmemory_package\\common\\alloc_replace.c:2576]\n  # 1 test_leak                         [test.cpp:15]\n  # 2 main                              [test.cpp:25]\n<\/code><\/pre>\n<p><strong>4. \u6291\u5236\u8bef\u62a5<\/strong><\/p>\n<p>\u5bf9\u4e8e\u5df2\u77e5\u7684\u8bef\u62a5\uff08\u5982\u7b2c\u4e09\u65b9\u5e93\u7684\u95ee\u9898\uff09\uff0c\u53ef\u4ee5\u521b\u5efa\u6291\u5236\u6587\u4ef6\uff1a<\/p>\n<p><strong>\u521b\u5efa\u6291\u5236\u6587\u4ef6<\/strong> <code>suppress.txt<\/code>\uff1a<\/p>\n<pre><code class=\"language-text\"># \u6291\u5236\u67d0\u4e2a DLL \u7684\u6240\u6709\u9519\u8bef\nsuppress_lib &quot;third_party.dll&quot;\n\n# \u6291\u5236\u7279\u5b9a\u51fd\u6570\u7684\u9519\u8bef\nsuppress_func &quot;some_function&quot;\n<\/code><\/pre>\n<p><strong>\u4f7f\u7528\u6291\u5236\u6587\u4ef6<\/strong>\uff1a<\/p>\n<pre><code class=\"language-cmd\">drmemory.exe -suppress suppress.txt -- your_program.exe\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"%E4%B8%8E%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7%E5%AF%B9%E6%AF%94-2\"><\/span>\u4e0e\u5176\u4ed6\u5de5\u5177\u5bf9\u6bd4<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<table>\n<thead>\n<tr>\n<th>\u7279\u6027<\/th>\n<th>Dr. Memory<\/th>\n<th>AddressSanitizer<\/th>\n<th>UMDH<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u9700\u8981\u91cd\u65b0\u7f16\u8bd1<\/td>\n<td>\u274c \u5426<\/td>\n<td>\u2705 \u662f<\/td>\n<td>\u274c \u5426<\/td>\n<\/tr>\n<tr>\n<td>\u68c0\u6d4b\u672a\u521d\u59cb\u5316\u5185\u5b58<\/td>\n<td>\u2705<\/td>\n<td>\u2705<\/td>\n<td>\u274c<\/td>\n<\/tr>\n<tr>\n<td>\u68c0\u6d4b\u5185\u5b58\u6cc4\u6f0f<\/td>\n<td>\u2705<\/td>\n<td>\u2705\uff08\u9700\u914d\u7f6e\uff09<\/td>\n<td>\u2705<\/td>\n<\/tr>\n<tr>\n<td>\u68c0\u6d4b\u7f13\u51b2\u533a\u6ea2\u51fa<\/td>\n<td>\u2705<\/td>\n<td>\u2705<\/td>\n<td>\u274c<\/td>\n<\/tr>\n<tr>\n<td>\u6027\u80fd\u5f00\u9500<\/td>\n<td>\u4e2d\u7b49\uff085-10\u500d\uff09<\/td>\n<td>\u9ad8\uff082-3\u500d\uff09<\/td>\n<td>\u4f4e<\/td>\n<\/tr>\n<tr>\n<td>\u652f\u6301 64 \u4f4d<\/td>\n<td>\u2705<\/td>\n<td>\u2705<\/td>\n<td>\u2705<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><span class=\"ez-toc-section\" id=\"%E9%99%90%E5%88%B6%E4%B8%8E%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9-2\"><\/span>\u9650\u5236\u4e0e\u6ce8\u610f\u4e8b\u9879<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ol>\n<li><strong>\u6027\u80fd\u5f00\u9500<\/strong>\uff1a<\/li>\n<li>\u7a0b\u5e8f\u8fd0\u884c\u901f\u5ea6\u4f1a\u663e\u8457\u964d\u4f4e\uff08\u901a\u5e38 5-10 \u500d\uff09<\/li>\n<li>\n<p>\u5185\u5b58\u5360\u7528\u4f1a\u589e\u52a0<\/p>\n<\/li>\n<li>\n<p><strong>\u517c\u5bb9\u6027<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u67d0\u4e9b\u4f7f\u7528\u7279\u6b8a\u6280\u672f\u7684\u7a0b\u5e8f\u53ef\u80fd\u65e0\u6cd5\u6b63\u5e38\u8fd0\u884c<\/li>\n<li>\n<p>\u4e0d\u652f\u6301 .NET \u5e94\u7528\u7a0b\u5e8f\uff08\u4ec5\u652f\u6301\u539f\u751f C\/C++ \u7a0b\u5e8f\uff09<\/p>\n<\/li>\n<li>\n<p><strong>\u8bef\u62a5<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u67d0\u4e9b\u7b2c\u4e09\u65b9\u5e93\u53ef\u80fd\u4ea7\u751f\u8bef\u62a5<\/li>\n<li>\n<p>\u9700\u8981\u4f7f\u7528\u6291\u5236\u6587\u4ef6\u8fc7\u6ee4<\/p>\n<\/li>\n<li>\n<p><strong>\u8c03\u8bd5\u7b26\u53f7<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u5efa\u8bae\u4f7f\u7528 Debug \u7248\u672c\u7684\u7a0b\u5e8f\uff0c\u4ee5\u4fbf\u83b7\u5f97\u66f4\u51c6\u786e\u7684\u5806\u6808\u4fe1\u606f<\/li>\n<li>\n<p>\u786e\u4fdd PDB \u6587\u4ef6\u53ef\u7528<\/p>\n<\/li>\n<li>\n<p><strong>64 \u4f4d\u652f\u6301<\/strong>\uff1a<\/p>\n<\/li>\n<li>64 \u4f4d\u7248\u672c\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\u53ef\u80fd\u4e0d\u5982 32 \u4f4d\u7248\u672c\u7a33\u5b9a<\/li>\n<\/ol>\n<h4><span class=\"ez-toc-section\" id=\"%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5-2\"><\/span>\u6700\u4f73\u5b9e\u8df5<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ol>\n<li><strong>\u5f00\u53d1\u9636\u6bb5\u4f7f\u7528<\/strong>\uff1a\u5728\u5f00\u53d1\u548c\u6d4b\u8bd5\u9636\u6bb5\u4f7f\u7528 Dr. Memory \u68c0\u6d4b\u5185\u5b58\u9519\u8bef<\/li>\n<li><strong>CI\/CD \u96c6\u6210<\/strong>\uff1a\u53ef\u4ee5\u5728\u6301\u7eed\u96c6\u6210\u6d41\u7a0b\u4e2d\u8fd0\u884c Dr. Memory \u8fdb\u884c\u81ea\u52a8\u5316\u68c0\u6d4b<\/li>\n<li><strong>\u5b9a\u671f\u68c0\u67e5<\/strong>\uff1a\u5b9a\u671f\u5bf9\u5173\u952e\u6a21\u5757\u8fdb\u884c\u5185\u5b58\u68c0\u67e5<\/li>\n<li><strong>\u7ed3\u5408\u5176\u4ed6\u5de5\u5177<\/strong>\uff1a\u4e0e AddressSanitizer\u3001UMDH \u7b49\u5de5\u5177\u7ed3\u5408\u4f7f\u7528\uff0c\u4e92\u76f8\u8865\u5145<\/li>\n<li><strong>\u6291\u5236\u6587\u4ef6\u7ba1\u7406<\/strong>\uff1a\u7ef4\u62a4\u6291\u5236\u6587\u4ef6\uff0c\u8bb0\u5f55\u5df2\u77e5\u7684\u8bef\u62a5\u548c\u7b2c\u4e09\u65b9\u5e93\u95ee\u9898<\/li>\n<\/ol>\n<h4><span class=\"ez-toc-section\" id=\"%E7%A4%BA%E4%BE%8B%EF%BC%9A%E6%A3%80%E6%B5%8B%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F\"><\/span>\u793a\u4f8b\uff1a\u68c0\u6d4b\u5185\u5b58\u6cc4\u6f0f<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>\u6d4b\u8bd5\u7a0b\u5e8f<\/strong> <code>test_leak.cpp<\/code>\uff1a<\/p>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;cstdlib&gt;\n\nvoid test_leak() {\n    char* ptr = (char*)malloc(100);\n    \/\/ \u5fd8\u8bb0\u91ca\u653e\u5185\u5b58\n    \/\/ free(ptr);\n}\n\nint main() {\n    test_leak();\n    std::cout &lt;&lt; &quot;Test completed&quot; &lt;&lt; std::endl;\n    return 0;\n}\n<\/code><\/pre>\n<p><strong>\u7f16\u8bd1\u548c\u68c0\u6d4b<\/strong>\uff1a<\/p>\n<pre><code class=\"language-cmd\"># \u7f16\u8bd1\u7a0b\u5e8f\ncl \/Zi test_leak.cpp \/Fe:test_leak.exe\n\n# \u4f7f\u7528 Dr. Memory \u68c0\u6d4b\ndrmemory.exe -leaks_only -- test_leak.exe\n<\/code><\/pre>\n<p><strong>\u8f93\u51fa\u7ed3\u679c<\/strong>\uff1a<\/p>\n<pre><code class=\"language-text\">Dr. Memory version 2.x.x\n...\n\nError #1: LEAK 100 bytes\n  # 0 replace_malloc                    [alloc_replace.c:2576]\n  # 1 test_leak                         [test_leak.cpp:5]\n  # 2 main                              [test_leak.cpp:11]\n\nNO ERRORS FOUND for unaddressable access(es)\nNO ERRORS FOUND for uninitialized access(es)\n1 unique error(s) found\n<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"%E4%B8%89%E3%80%81CPU_%E5%B7%A5%E5%85%B7\"><\/span>\u4e09\u3001CPU \u5de5\u5177<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0-7\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>CPU \u6027\u80fd\u5206\u6790\u662f\u6027\u80fd\u4f18\u5316\u7684\u6838\u5fc3\u73af\u8282\u3002\u672c\u7ae0\u8282\u4ecb\u7ecd\u5404\u79cd CPU \u5206\u6790\u5de5\u5177\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u5b9a\u4f4d CPU \u70ed\u70b9\u3001\u7ebf\u7a0b\u8c03\u5ea6\u95ee\u9898\u7b49\u3002<\/p>\n<p><strong>\u5de5\u5177\u5bf9\u6bd4<\/strong>\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177<\/th>\n<th>\u7c7b\u578b<\/th>\n<th>\u5e73\u53f0\u652f\u6301<\/th>\n<th>\u786c\u4ef6\u4e8b\u4ef6<\/th>\n<th>\u9002\u7528\u573a\u666f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>WPT<\/strong><\/td>\n<td>\u7cfb\u7edf\u7ea7\u5206\u6790<\/td>\n<td>Windows<\/td>\n<td>\u2705<\/td>\n<td>\u7cfb\u7edf\u7ea7\u6027\u80fd\u95ee\u9898\u3001\u9a71\u52a8\u95ee\u9898<\/td>\n<\/tr>\n<tr>\n<td><strong>Very Sleepy<\/strong><\/td>\n<td>\u91c7\u6837\u5206\u6790<\/td>\n<td>Windows<\/td>\n<td>\u274c<\/td>\n<td>\u5feb\u901f CPU \u70ed\u70b9\u5b9a\u4f4d<\/td>\n<\/tr>\n<tr>\n<td><strong>AMD uProf<\/strong><\/td>\n<td>\u786c\u4ef6\u5206\u6790<\/td>\n<td>AMD \u5e73\u53f0<\/td>\n<td>\u2705<\/td>\n<td>AMD \u5e73\u53f0\u6027\u80fd\u4f18\u5316<\/td>\n<\/tr>\n<tr>\n<td><strong>Intel VTune<\/strong><\/td>\n<td>\u786c\u4ef6\u5206\u6790<\/td>\n<td>Intel \u5e73\u53f0<\/td>\n<td>\u2705<\/td>\n<td>Intel \u5e73\u53f0\u6df1\u5ea6\u6027\u80fd\u5206\u6790<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span class=\"ez-toc-section\" id=\"31_WPT_Windows_Performance_Toolkit\"><\/span>3.1 WPT (Windows Performance Toolkit)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0-8\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>WPT\uff08Windows Performance Toolkit\uff09\u662f Windows \u5b98\u65b9\u63d0\u4f9b\u7684\u7cfb\u7edf\u7ea7\u6027\u80fd\u5206\u6790\u5de5\u5177\u96c6\uff0c\u5305\u542b WPR\uff08Windows Performance Recorder\uff09\u548c WPA\uff08Windows Performance Analyzer\uff09\u3002\u5b83\u57fa\u4e8e ETW\uff08Event Tracing for Windows\uff09\u6280\u672f\uff0c\u53ef\u4ee5\u8ffd\u8e2a\u7cfb\u7edf\u7ea7\u548c\u5e94\u7528\u7ea7\u7684\u6027\u80fd\u4e8b\u4ef6\u3002<\/p>\n<p><strong>\u4e3b\u8981\u7ec4\u4ef6<\/strong>\uff1a<br \/>\n&#8211; <strong>WPR<\/strong>\uff1a\u6027\u80fd\u6570\u636e\u5f55\u5236\u5de5\u5177\uff0c\u901a\u8fc7\u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u542f\u52a8\u7684 provider\u3001session \u53ca\u5176\u4ed6\u53c2\u6570<br \/>\n&#8211; <strong>WPA<\/strong>\uff1a\u6027\u80fd\u6570\u636e\u5206\u6790\u5de5\u5177\uff0c\u63d0\u4f9b\u5f3a\u5927\u7684\u6570\u636e\u53ef\u89c6\u5316\u548c\u5206\u6790\u529f\u80fd<\/p>\n<p><strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n&#8211; \u2705 \u7cfb\u7edf\u7ea7\u6027\u80fd\u5206\u6790<br \/>\n&#8211; \u2705 \u652f\u6301\u9a71\u52a8\u548c\u786c\u4ef6\u4e8b\u4ef6\u8ffd\u8e2a<br \/>\n&#8211; \u2705 \u652f\u6301\u81ea\u5b9a\u4e49 ETW Provider<br \/>\n&#8211; \u2705 \u5f3a\u5927\u7684\u6570\u636e\u53ef\u89c6\u5316<br \/>\n&#8211; \u274c \u5b66\u4e60\u66f2\u7ebf\u9661\u5ced<br \/>\n&#8211; \u274c \u6570\u636e\u91cf\u5927\uff0c\u8d44\u6e90\u6d88\u8017\u9ad8<\/p>\n<ul>\n<li><strong>WPR Profile \u8be6\u7ec6\u683c\u5f0f\u53c2\u8003<\/strong>\uff1a<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/hardware\/hh448210.aspx\">MSDN \u6587\u6863<\/a><\/li>\n<li><strong>\u63a7\u5236\u53f0\u6307\u4ee4\u53c2\u8003<\/strong>\uff1a<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windows\/hardware\/hh448229.aspx\">MSDN \u6587\u6863<\/a><\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"WPA_%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E\"><\/span>WPA \u4f7f\u7528\u8bf4\u660e<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li><strong>\u91d1\u8272\u6761<\/strong>\uff1a\u5de6\u8fb9\u7684\u5217\u90fd\u4f1a\u5408\u5e76\u4e3a\u6811\u72b6\u5c55\u793a\uff0c\u5e76\u4f5c\u4e3a\u56fe\u7684\u7cfb\u5217<\/li>\n<li><strong>\u84dd\u8272\u6761<\/strong>\uff1a\u53f3\u4fa7\u7684\u5217\u4f5c\u4e3a\u56fe\u7684\u6570\u636e<\/li>\n<li><strong>\u6570\u636e\u8868<\/strong>\uff1a\u662f\u900f\u89c6\u8868\u3002\u5782\u76f4\u91d1\u8272\u6761\u5de6\u4fa7\u7684\u5217\u662f\u952e\u3002\u5782\u76f4\u91d1\u8272\u6761\u548c\u5782\u76f4\u84dd\u8272\u6761\u4e4b\u95f4\u7684\u5217\u662f\u6570\u636e\u5217\u3002\u5982\u679c\u6ca1\u6709\u770b\u5230\u5782\u76f4\u91d1\u8272\u6761\uff0c\u8bf7\u5411\u53f3\u6eda\u52a8<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E9%85%8D%E7%BD%AE\"><\/span>\u73af\u5883\u53d8\u91cf\u914d\u7f6e<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-text\">NT_SOURCE_PATH\uff1a\u6e90\u6587\u4ef6\u76ee\u5f55\n_NT_SYMBOL_PATH\uff1aPDB \u76ee\u5f55\n_NT_SYMCACHE_PATH\uff1aPDB \u7f13\u5b58\u76ee\u5f55\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"UI_Delay_%E6%A3%80%E6%B5%8B\"><\/span>UI Delay \u68c0\u6d4b<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u4ece Windows 7 \u5f00\u59cb\uff0c\u5185\u6838\u4e2d\u65b0\u52a0\u4e86\u4e00\u79cd ETW \u63d0\u4f9b\u8005\uff0c\u5f53\u5e94\u7528\u7a0b\u5e8f\u8d85\u8fc7 200 \u6beb\u79d2\u4e0d\u68c0\u6d4b\u5176\u6d88\u606f\u961f\u5217\u65f6\uff0c\u5b83\u4f1a\u4ea7\u751f\u4e00\u4e2a\u4e8b\u4ef6\u3002UI for ETW \u9ed8\u8ba4\u542f\u7528\u8be5 ETW \u63d0\u4f9b\u8005\uff0c\u6211\u4eec\u53ef\u4ee5\u5728 WPA \u7684 System Activity \u7a97\u53e3\u7684 UI Delay \u56fe\u8868\u4e2d\u770b\u5230\u8fd9\u4e9b\u4e8b\u4ef6\u3002<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4\"><\/span>\u5e38\u7528\u547d\u4ee4<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-cmd\">REM \u5f00\u59cb\u91c7\u96c6\nwpr.exe -start CPU -filemode\n\nREM \u7ed3\u675f\u91c7\u96c6\nwpr.exe -stop &quot;34.txt&quot;\n\nREM \u653e\u5f03\u672c\u6b21\u91c7\u96c6\nwpr.exe -cancel\n\nREM \u5bfc\u51fa CSV\uff08wpaProfile \u4ece wpa \u5bfc\u51fa\uff09\nwpaexporter.exe -i {etl_file} -profile cpuusage.wpaProfile -outputfolder {output_dir} -symbols\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98\"><\/span>\u5e38\u89c1\u95ee\u9898<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>3.1.1 \u6253\u5f00\u5206\u6790\u6587\u4ef6\u9519\u8bef<\/strong><\/p>\n<p><strong>\u9519\u8bef\u7801\uff1a0x80070032<\/strong><\/p>\n<p><img decoding=\"async\" alt=\"\u9519\u8bef\u793a\u4f8b\" src=\"https:\/\/www.ixriver.com\/wp-content\/uploads\/2026\/02\/image_4-3.png\" \/><\/p>\n<p><img decoding=\"async\" alt=\"\u9519\u8bef\u8be6\u60c5\" src=\"https:\/\/www.ixriver.com\/wp-content\/uploads\/2026\/02\/image_5-1.png\" \/><\/p>\n<blockquote>\n<p><strong>\u539f\u56e0<\/strong>\uff1aThis is usually caused by insufficient disk bandwidth for ETW logging<\/p>\n<\/blockquote>\n<p><strong>\u89e3\u51b3\u65b9\u6848<\/strong>\uff1a<br \/>\n&#8211; \u4f7f\u7528 SSD \u5b58\u50a8 ETL \u6587\u4ef6<br \/>\n&#8211; \u51cf\u5c11\u7f13\u51b2\u533a\u5927\u5c0f\u548c\u6570\u91cf<br \/>\n&#8211; \u4f7f\u7528\u5185\u5b58\u6a21\u5f0f\uff08Memory\uff09\u800c\u4e0d\u662f\u6587\u4ef6\u6a21\u5f0f\uff08File\uff09<\/p>\n<p><strong>3.1.2 SDK \u7248\u672c\u4e0d\u5339\u914d<\/strong><\/p>\n<blockquote>\n<p><strong>\u6ce8\u610f<\/strong>\uff1aSDK \u5b89\u88c5\u9ed8\u8ba4\u4f7f\u7528\u6700\u65b0\u7684\u7248\u672c\uff0c\u53ef\u80fd\u548c\u5b89\u88c5\u7cfb\u7edf\u4e0d\u4e00\u5b9a\u5339\u914d\uff0c\u4f1a\u51fa\u73b0\u6bd4\u5982 <code>wprui.exe<\/code> \u65e0\u6cd5\u6253\u5f00\u7684\u60c5\u51b5\uff0c\u6700\u597d\u624b\u5de5\u9009\u62e9\u5408\u9002\u7248\u672c\u3002<\/p>\n<\/blockquote>\n<p><strong>\u89e3\u51b3\u65b9\u6848<\/strong>\uff1a<br \/>\n&#8211; \u5b89\u88c5\u4e0e\u7cfb\u7edf\u7248\u672c\u5339\u914d\u7684 Windows SDK<br \/>\n&#8211; \u4f7f\u7528\u547d\u4ee4\u884c\u5de5\u5177 <code>wpr.exe<\/code> \u4ee3\u66ff GUI \u5de5\u5177<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5-3\"><\/span>\u6700\u4f73\u5b9e\u8df5<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ol>\n<li><strong>\u9009\u62e9\u5408\u9002\u7684 Profile<\/strong>\uff1a<\/li>\n<li>Light\uff1a\u5feb\u901f\u5206\u6790\uff0c\u6570\u636e\u91cf\u5c0f<\/li>\n<li>Verbose\uff1a\u8be6\u7ec6\u5206\u6790\uff0c\u6570\u636e\u91cf\u5927<\/li>\n<li>\n<p>\u81ea\u5b9a\u4e49 Profile\uff1a\u9488\u5bf9\u7279\u5b9a\u573a\u666f\u4f18\u5316<\/p>\n<\/li>\n<li>\n<p><strong>\u4f18\u5316\u7f13\u51b2\u533a\u914d\u7f6e<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u5185\u5b58\u6a21\u5f0f\uff1a\u9002\u5408\u77ed\u671f\u5206\u6790<\/li>\n<li>\u6587\u4ef6\u6a21\u5f0f\uff1a\u9002\u5408\u957f\u671f\u5206\u6790<\/li>\n<li>\n<p>\u8c03\u6574\u7f13\u51b2\u533a\u5927\u5c0f\u548c\u6570\u91cf\u4ee5\u5e73\u8861\u6027\u80fd\u548c\u8d44\u6e90\u5360\u7528<\/p>\n<\/li>\n<li>\n<p><strong>\u7b26\u53f7\u6587\u4ef6\u914d\u7f6e<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u786e\u4fdd\u914d\u7f6e\u4e86\u6b63\u786e\u7684\u7b26\u53f7\u8def\u5f84<\/li>\n<li>\u4f7f\u7528\u7b26\u53f7\u670d\u52a1\u5668\u81ea\u52a8\u4e0b\u8f7d\u7b26\u53f7<\/li>\n<li>\n<p>\u7f13\u5b58\u7b26\u53f7\u6587\u4ef6\u4ee5\u63d0\u9ad8\u5206\u6790\u901f\u5ea6<\/p>\n<\/li>\n<li>\n<p><strong>\u5206\u6790\u6280\u5de7<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u4f7f\u7528 WPA \u7684\u7b5b\u9009\u529f\u80fd\u7f29\u5c0f\u5206\u6790\u8303\u56f4<\/li>\n<li>\u5173\u6ce8 CPU \u4f7f\u7528\u7387\u9ad8\u7684\u65f6\u95f4\u6bb5<\/li>\n<li>\u7ed3\u5408\u8c03\u7528\u6808\u4fe1\u606f\u5b9a\u4f4d\u95ee\u9898<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"32_Very_Sleepy\"><\/span>3.2 Very Sleepy<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0-9\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Very Sleepy \u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u3001\u514d\u8d39\u7684 CPU \u91c7\u6837\u5206\u6790\u5668\uff0c\u9002\u7528\u4e8e Windows \u5e73\u53f0\u3002\u5b83\u901a\u8fc7\u91c7\u6837\u65b9\u5f0f\u6536\u96c6\u7a0b\u5e8f\u7684 CPU \u4f7f\u7528\u60c5\u51b5\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u5feb\u901f\u5b9a\u4f4d\u6027\u80fd\u70ed\u70b9\u3002<\/p>\n<p><strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n&#8211; \u2705 \u514d\u8d39\u5f00\u6e90<br \/>\n&#8211; \u2705 \u8f7b\u91cf\u7ea7\uff0c\u65e0\u9700\u5b89\u88c5<br \/>\n&#8211; \u2705 \u65e0\u9700\u91cd\u65b0\u7f16\u8bd1\u7a0b\u5e8f<br \/>\n&#8211; \u2705 \u754c\u9762\u7b80\u6d01\u6613\u7528<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95-3\"><\/span>\u4f7f\u7528\u65b9\u6cd5<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>1. \u4e0b\u8f7d<\/strong><\/p>\n<p>\u4ece GitHub \u4e0b\u8f7d\uff1ahttps:\/\/github.com\/VerySleepy\/verysleepy\/releases<\/p>\n<p><strong>2. \u57fa\u672c\u4f7f\u7528<\/strong><\/p>\n<ol>\n<li>\u542f\u52a8 Very Sleepy<\/li>\n<li>\u70b9\u51fb &#8220;Profile&#8221; \u6309\u94ae<\/li>\n<li>\u9009\u62e9\u8981\u5206\u6790\u7684\u7a0b\u5e8f\uff08\u6216\u8f93\u5165\u8fdb\u7a0b ID\uff09<\/li>\n<li>\u70b9\u51fb &#8220;Start&#8221; \u5f00\u59cb\u91c7\u6837<\/li>\n<li>\u8fd0\u884c\u7a0b\u5e8f\u6267\u884c\u9700\u8981\u5206\u6790\u7684\u64cd\u4f5c<\/li>\n<li>\u70b9\u51fb &#8220;Stop&#8221; \u505c\u6b62\u91c7\u6837<\/li>\n<li>\u67e5\u770b\u7ed3\u679c\uff1a\u6309\u51fd\u6570\u8c03\u7528\u6b21\u6570\u6216\u65f6\u95f4\u6392\u5e8f\uff0c\u5b9a\u4f4d\u70ed\u70b9\u51fd\u6570<\/li>\n<\/ol>\n<p><strong>3. \u7ed3\u679c\u5206\u6790<\/strong><\/p>\n<ul>\n<li><strong>\u51fd\u6570\u5217\u8868<\/strong>\uff1a\u663e\u793a\u6bcf\u4e2a\u51fd\u6570\u7684\u8c03\u7528\u6b21\u6570\u548c\u5360\u7528\u65f6\u95f4<\/li>\n<li><strong>\u8c03\u7528\u6811<\/strong>\uff1a\u663e\u793a\u51fd\u6570\u8c03\u7528\u5173\u7cfb<\/li>\n<li><strong>\u6e90\u4ee3\u7801\u89c6\u56fe<\/strong>\uff1a\u5982\u679c\u6709\u7b26\u53f7\u6587\u4ef6\uff0c\u53ef\u4ee5\u67e5\u770b\u6e90\u4ee3\u7801\u884c\u7ea7\u522b\u7684\u6027\u80fd\u6570\u636e<\/li>\n<\/ul>\n<p><strong>4. \u6ce8\u610f\u4e8b\u9879<\/strong><\/p>\n<ul>\n<li>\u91c7\u6837\u9891\u7387\u4f1a\u5f71\u54cd\u7ed3\u679c\u51c6\u786e\u6027\uff08\u9ed8\u8ba4 1000Hz\uff09<\/li>\n<li>\u9700\u8981\u8c03\u8bd5\u7b26\u53f7\uff08PDB \u6587\u4ef6\uff09\u624d\u80fd\u770b\u5230\u51fd\u6570\u540d\u548c\u6e90\u4ee3\u7801\u4fe1\u606f<\/li>\n<li>\u91c7\u6837\u578b\u5206\u6790\u5668\u53ef\u80fd\u6f0f\u6389\u77ed\u65f6\u95f4\u6267\u884c\u7684\u51fd\u6570<\/li>\n<li>\u9002\u5408\u5feb\u901f\u5b9a\u4f4d CPU \u70ed\u70b9\uff0c\u4e0d\u9002\u5408\u5206\u6790\u5185\u5b58\u95ee\u9898<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF\"><\/span>\u9002\u7528\u573a\u666f<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\u5feb\u901f\u5b9a\u4f4d CPU \u6027\u80fd\u74f6\u9888<\/li>\n<li>\u5f00\u53d1\u9636\u6bb5\u7684\u6027\u80fd\u521d\u6b65\u5206\u6790<\/li>\n<li>\u4e0d\u9700\u8981\u6df1\u5ea6\u7cfb\u7edf\u7ea7\u5206\u6790\u7684\u573a\u666f<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"33_AMD_uProf\"><\/span>3.3 AMD uProf<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0-10\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>AMD uProf\uff08AMD Unified Profiler\uff09\u662f AMD \u5b98\u65b9\u63d0\u4f9b\u7684\u6027\u80fd\u5206\u6790\u5de5\u5177\uff0c\u652f\u6301 CPU \u548c GPU \u6027\u80fd\u5206\u6790\u3002\u5b83\u662f CodeXL \u7684\u66ff\u4ee3\u5de5\u5177\uff0c\u63d0\u4f9b\u66f4\u73b0\u4ee3\u5316\u7684\u754c\u9762\u548c\u66f4\u597d\u7684\u786c\u4ef6\u652f\u6301\u3002<\/p>\n<p><strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n&#8211; \u2705 AMD \u5b98\u65b9\u7ef4\u62a4\u7684\u5de5\u5177<br \/>\n&#8211; \u2705 \u652f\u6301 AMD CPU \u548c Radeon GPU \u6027\u80fd\u5206\u6790<br \/>\n&#8211; \u2705 \u652f\u6301\u786c\u4ef6\u4e8b\u4ef6\u91c7\u6837<br \/>\n&#8211; \u2705 \u514d\u8d39\u4f7f\u7528<br \/>\n&#8211; \u2705 \u73b0\u4ee3\u5316\u7684\u56fe\u5f62\u754c\u9762<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E4%B8%BB%E8%A6%81%E5%8A%9F%E8%83%BD\"><\/span>\u4e3b\u8981\u529f\u80fd<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ol>\n<li><strong>CPU \u6027\u80fd\u5206\u6790<\/strong>\uff1a<\/li>\n<li>\u786c\u4ef6\u4e8b\u4ef6\u91c7\u6837\uff08\u7f13\u5b58\u672a\u547d\u4e2d\u3001\u5206\u652f\u9884\u6d4b\u5931\u8d25\u7b49\uff09<\/li>\n<li>CPU \u70ed\u70b9\u5206\u6790<\/li>\n<li>\u7ebf\u7a0b\u548c\u6838\u5fc3\u5229\u7528\u7387\u5206\u6790<\/li>\n<li>\n<p>\u529f\u8017\u5206\u6790<\/p>\n<\/li>\n<li>\n<p><strong>GPU \u6027\u80fd\u5206\u6790<\/strong>\uff1a<\/p>\n<\/li>\n<li>Radeon GPU \u6027\u80fd\u5206\u6790<\/li>\n<li>GPU \u5185\u6838\u5206\u6790<\/li>\n<li>GPU \u65f6\u95f4\u7ebf\u89c6\u56fe<\/li>\n<li>\n<p>GPU \u529f\u8017\u5206\u6790<\/p>\n<\/li>\n<li>\n<p><strong>\u7cfb\u7edf\u7ea7\u76d1\u63a7<\/strong>\uff1a<\/p>\n<\/li>\n<li>\u7cfb\u7edf\u8d44\u6e90\u4f7f\u7528\u60c5\u51b5<\/li>\n<li>\u591a\u8fdb\u7a0b\u6027\u80fd\u5206\u6790<\/li>\n<li>\u6027\u80fd\u8ba1\u6570\u5668\u76d1\u63a7<\/li>\n<\/ol>\n<h4><span class=\"ez-toc-section\" id=\"%E4%B8%8B%E8%BD%BD%E5%92%8C%E5%AE%89%E8%A3%85-2\"><\/span>\u4e0b\u8f7d\u548c\u5b89\u88c5<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>\u4e0b\u8f7d\u5730\u5740<\/strong>\uff1ahttps:\/\/www.amd.com\/en\/developer\/uprof.html<\/p>\n<p><strong>\u7cfb\u7edf\u8981\u6c42<\/strong>\uff1a<br \/>\n&#8211; Windows 10\/11\uff0864 \u4f4d\uff09<br \/>\n&#8211; AMD CPU \u6216 AMD Radeon GPU<br \/>\n&#8211; \u7ba1\u7406\u5458\u6743\u9650\uff08\u67d0\u4e9b\u529f\u80fd\u9700\u8981\uff09<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95-4\"><\/span>\u4f7f\u7528\u65b9\u6cd5<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>1. \u57fa\u672c\u4f7f\u7528\u6d41\u7a0b<\/strong><\/p>\n<ol>\n<li>\u542f\u52a8 AMD uProf<\/li>\n<li>\u9009\u62e9\u5206\u6790\u7c7b\u578b\uff08CPU \u6216 GPU\uff09<\/li>\n<li>\u9009\u62e9\u8981\u5206\u6790\u7684\u7a0b\u5e8f\u6216\u8fdb\u7a0b<\/li>\n<li>\u914d\u7f6e\u5206\u6790\u9009\u9879\uff08\u91c7\u6837\u9891\u7387\u3001\u4e8b\u4ef6\u7c7b\u578b\u7b49\uff09<\/li>\n<li>\u70b9\u51fb &#8220;Start&#8221; \u5f00\u59cb\u5206\u6790<\/li>\n<li>\u8fd0\u884c\u7a0b\u5e8f\u6267\u884c\u9700\u8981\u5206\u6790\u7684\u64cd\u4f5c<\/li>\n<li>\u70b9\u51fb &#8220;Stop&#8221; \u505c\u6b62\u5206\u6790<\/li>\n<li>\u67e5\u770b\u5206\u6790\u7ed3\u679c<\/li>\n<\/ol>\n<p><strong>2. CPU \u6027\u80fd\u5206\u6790<\/strong><\/p>\n<ul>\n<li><strong>\u786c\u4ef6\u4e8b\u4ef6\u91c7\u6837<\/strong>\uff1a\u9009\u62e9\u8981\u76d1\u63a7\u7684\u786c\u4ef6\u4e8b\u4ef6\uff08\u5982 L1\/L2\/L3 \u7f13\u5b58\u672a\u547d\u4e2d\u3001\u5206\u652f\u9884\u6d4b\u5931\u8d25\u7b49\uff09<\/li>\n<li><strong>\u70ed\u70b9\u5206\u6790<\/strong>\uff1a\u67e5\u770b\u51fd\u6570\u548c\u6e90\u4ee3\u7801\u884c\u7684 CPU \u4f7f\u7528\u60c5\u51b5<\/li>\n<li><strong>\u7ebf\u7a0b\u5206\u6790<\/strong>\uff1a\u5206\u6790\u7ebf\u7a0b\u8c03\u5ea6\u548c\u6838\u5fc3\u5229\u7528\u7387<\/li>\n<\/ul>\n<p><strong>3. GPU \u6027\u80fd\u5206\u6790<\/strong><\/p>\n<ul>\n<li><strong>GPU \u5185\u6838\u5206\u6790<\/strong>\uff1a\u5206\u6790 GPU \u5185\u6838\u7684\u6267\u884c\u65f6\u95f4\u548c\u5360\u7528\u7387<\/li>\n<li><strong>API \u8ffd\u8e2a<\/strong>\uff1a\u8ffd\u8e2a DirectX\u3001OpenCL\u3001Vulkan \u7b49 API \u8c03\u7528<\/li>\n<li><strong>\u65f6\u95f4\u7ebf\u89c6\u56fe<\/strong>\uff1a\u67e5\u770b GPU \u6d3b\u52a8\u7684\u65f6\u5e8f\u56fe<\/li>\n<\/ul>\n<p><strong>4. \u7ed3\u679c\u5206\u6790<\/strong><\/p>\n<ul>\n<li><strong>\u51fd\u6570\u5217\u8868<\/strong>\uff1a\u6309 CPU \u65f6\u95f4\u6216\u8c03\u7528\u6b21\u6570\u6392\u5e8f<\/li>\n<li><strong>\u8c03\u7528\u6811<\/strong>\uff1a\u663e\u793a\u51fd\u6570\u8c03\u7528\u5173\u7cfb<\/li>\n<li><strong>\u6e90\u4ee3\u7801\u89c6\u56fe<\/strong>\uff1a\u67e5\u770b\u6e90\u4ee3\u7801\u884c\u7ea7\u522b\u7684\u6027\u80fd\u6570\u636e<\/li>\n<li><strong>\u56fe\u8868\u89c6\u56fe<\/strong>\uff1a\u53ef\u89c6\u5316\u6027\u80fd\u6570\u636e<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%E9%80%82%E7%94%A8%E5%9C%BA%E6%99%AF-2\"><\/span>\u9002\u7528\u573a\u666f<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>AMD \u5e73\u53f0\u7684\u6027\u80fd\u4f18\u5316<\/li>\n<li>CPU \u786c\u4ef6\u4e8b\u4ef6\u5206\u6790<\/li>\n<li>GPU \u5e94\u7528\u6027\u80fd\u5206\u6790<\/li>\n<li>\u529f\u8017\u5206\u6790<\/li>\n<li>\u591a\u7ebf\u7a0b\u6027\u80fd\u5206\u6790<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9-3\"><\/span>\u6ce8\u610f\u4e8b\u9879<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<ul>\n<li>\u4e3b\u8981\u9488\u5bf9 AMD \u786c\u4ef6\u4f18\u5316\uff0cIntel \u5e73\u53f0\u652f\u6301\u6709\u9650<\/li>\n<li>\u9700\u8981\u8c03\u8bd5\u7b26\u53f7\uff08PDB \u6587\u4ef6\uff09\u624d\u80fd\u770b\u5230\u51fd\u6570\u540d\u548c\u6e90\u4ee3\u7801\u4fe1\u606f<\/li>\n<li>\u67d0\u4e9b\u529f\u80fd\u9700\u8981\u7ba1\u7406\u5458\u6743\u9650<\/li>\n<li>GPU \u5206\u6790\u9700\u8981 AMD Radeon GPU<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%E4%B8%8E%E5%85%B6%E4%BB%96%E5%B7%A5%E5%85%B7%E5%AF%B9%E6%AF%94-3\"><\/span>\u4e0e\u5176\u4ed6\u5de5\u5177\u5bf9\u6bd4<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<table>\n<thead>\n<tr>\n<th>\u5de5\u5177<\/th>\n<th>CPU \u5206\u6790<\/th>\n<th>GPU \u5206\u6790<\/th>\n<th>\u786c\u4ef6\u4e8b\u4ef6<\/th>\n<th>\u5e73\u53f0\u652f\u6301<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>AMD uProf<\/td>\n<td>\u2705<\/td>\n<td>\u2705\uff08AMD GPU\uff09<\/td>\n<td>\u2705<\/td>\n<td>AMD \u5e73\u53f0<\/td>\n<\/tr>\n<tr>\n<td>Intel VTune<\/td>\n<td>\u2705<\/td>\n<td>\u2705\uff08Intel GPU\uff09<\/td>\n<td>\u2705<\/td>\n<td>Intel \u5e73\u53f0<\/td>\n<\/tr>\n<tr>\n<td>NVIDIA Nsight<\/td>\n<td>\u274c<\/td>\n<td>\u2705\uff08NVIDIA GPU\uff09<\/td>\n<td>\u274c<\/td>\n<td>NVIDIA GPU<\/td>\n<\/tr>\n<tr>\n<td>Very Sleepy<\/td>\n<td>\u2705<\/td>\n<td>\u274c<\/td>\n<td>\u274c<\/td>\n<td>\u901a\u7528<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><span class=\"ez-toc-section\" id=\"34_Windows_%E6%80%A7%E8%83%BD%E6%89%93%E7%82%B9\"><\/span>3.4 Windows \u6027\u80fd\u6253\u70b9<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E7%94%9F%E6%88%90_Manifest_%E6%96%87%E4%BB%B6\"><\/span>\u751f\u6210 Manifest \u6587\u4ef6<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u4f7f\u7528\u5de5\u5177\uff1a<code>C:\\Program Files (x86)\\Windows Kits\\8.1\\bin\\x64\\ecmangen.exe<\/code><\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E7%BC%96%E8%AF%91_Manifest_%E6%96%87%E4%BB%B6\"><\/span>\u7f16\u8bd1 Manifest \u6587\u4ef6<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-cmd\">&quot;C:\\Program Files (x86)\\Windows Kits\\8.1\\bin\\x64\\mc.exe&quot; -um etwproviders.man -z etwproviders\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"%E7%B3%BB%E7%BB%9F%E6%B3%A8%E5%86%8C_Providers\"><\/span>\u7cfb\u7edf\u6ce8\u518c Providers<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<blockquote>\n<p><strong>\u6ce8\u610f<\/strong>\uff1a\u9700\u8981\u7ba1\u7406\u5458\u6743\u9650\u8fd0\u884c<\/p>\n<\/blockquote>\n<pre><code class=\"language-cmd\">wevtutil im signpost_win.man \/rf:\u7edd\u5bf9\u8def\u5f84\\wemeet_base.dll \/mf:\u7edd\u5bf9\u8def\u5f84\\wemeet_base.dll\n\nREM \u793a\u4f8b\nwevtutil im signpost_win.man \/rf:&quot;C:\\Program Files (x86)\\Tencent\\WeMeet Dev\\3.20.0.35859\\wemeet_base.dll&quot; \/mf:&quot;C:\\Program Files (x86)\\Tencent\\WeMeet Dev\\3.20.0.35859\\wemeet_base.dll&quot;\n\nREM \u6ce8\u518c\u8868\u4f4d\u7f6e\nREM \u8ba1\u7b97\u673a\\HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\WINEVT\\Publishers\\{9b00a176-e17a-4777-99c3-8b51cc33895a}\n\nREM \u5378\u8f7d\nwevtutil um signpost_win.man\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"WPRUI_%E5%BD%95%E5%88%B6%E9%85%8D%E7%BD%AE\"><\/span>WPRUI \u5f55\u5236\u914d\u7f6e<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>\u5f55\u5236\u65f6\u9009\u62e9\u81ea\u5b9a\u4e49 wprp<\/strong><\/p>\n<p>\u542f\u52a8 WPR\uff0c\u9009\u62e9\u6dfb\u52a0 add profiles\uff0c\u6dfb\u52a0\u5982\u4e0b profiles\uff0c\u5e76\u542f\u52a8\u5f55\u5236\uff1a<\/p>\n<p><img decoding=\"async\" alt=\"WPR \u914d\u7f6e\" src=\"https:\/\/www.ixriver.com\/wp-content\/uploads\/2026\/02\/image_6-1.png\" \/><\/p>\n<p><strong>WPR Profile \u914d\u7f6e\u793a\u4f8b<\/strong>\uff1a<\/p>\n<pre><code class=\"language-xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\n&lt;WindowsPerformanceRecorder Version=&quot;1.0&quot; Author=&quot;WPT team&quot;&gt;\n    &lt;Profiles&gt;\n        &lt;EventCollector Id=&quot;EventCollector_WPR&quot; Name=&quot;SimpleEventLogger&quot;&gt;\n            &lt;BufferSize Value=&quot;256&quot;\/&gt;  &lt;!-- Optional. Default value is 128--&gt;\n            &lt;Buffers Value=&quot;64&quot;\/&gt;      &lt;!-- Optional. Default value is 64 --&gt;\n        &lt;\/EventCollector&gt;\n        &lt;EventProvider Id=&quot;EventProvider_WPR_Status&quot; Name=&quot;Wemeet Signpost Provider&quot;&gt;\n            &lt;Keywords&gt;   &lt;!-- Optional. Default value is 0xFFFFFFFFFFFFFFFF --&gt;\n                &lt;Keyword Value=&quot;0x40000&quot;\/&gt;\n            &lt;\/Keywords&gt;\n        &lt;\/EventProvider&gt;\n        &lt;Profile Id=&quot;WPRTest2.Light.File&quot; LoggingMode=&quot;File&quot; Name=&quot;WPRTest2&quot; DetailLevel=&quot;Light&quot; Description=&quot;WPR Test2&quot;&gt;\n            &lt;Collectors&gt;\n                &lt;EventCollectorId Value=&quot;EventCollector_WPR&quot;&gt;\n                    &lt;EventProviders&gt;\n                        &lt;EventProviderId Value=&quot;EventProvider_WPR_Status&quot;\/&gt;\n                    &lt;\/EventProviders&gt;\n                &lt;\/EventCollectorId&gt;\n            &lt;\/Collectors&gt;\n        &lt;\/Profile&gt;\n        &lt;!-- Optional other flavors of the profile--&gt;\n        &lt;Profile Id=&quot;WPRTest2.Light.Memory&quot; Base=&quot;WPRTest2.Light.File&quot; LoggingMode=&quot;Memory&quot; Name=&quot;WPRTest2&quot; DetailLevel=&quot;Light&quot; Description=&quot;WPR Test2&quot;\/&gt;\n        &lt;Profile Id=&quot;WPRTest2.Verbose.File&quot; Base=&quot;WPRTest2.Light.File&quot; LoggingMode=&quot;File&quot; Name=&quot;WPRTest2&quot; DetailLevel=&quot;Verbose&quot; Description=&quot;WPR Test2&quot;\/&gt;\n        &lt;Profile Id=&quot;WPRTest2.Verbose.Memory&quot; Base=&quot;WPRTest2.Light.File&quot; LoggingMode=&quot;Memory&quot; Name=&quot;WPRTest2&quot; DetailLevel=&quot;Verbose&quot; Description=&quot;WPR Test2&quot;\/&gt;\n    &lt;\/Profiles&gt;\n&lt;\/WindowsPerformanceRecorder&gt;\n<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"35_%E9%87%87%E9%9B%86%E5%A0%86%E6%A0%88%E6%A0%BC%E5%BC%8F\"><\/span>3.5 \u91c7\u96c6\u5806\u6808\u683c\u5f0f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>\u683c\u5f0f\u8bf4\u660e<\/strong>\uff1a\u6a21\u5757\u8def\u5f84|pdb\u540d\u79f0 \u6a21\u5757\u57fa\u5730\u5740 \u8c03\u7528\u5730\u5740 \u6a21\u5757\u65f6\u95f4\u6233 \u6a21\u5757\u7b7e\u540d<\/p>\n<p><strong>\u793a\u4f8b<\/strong>\uff1a<\/p>\n<pre><code class=\"language-json\">[\n  &quot;C:\/Program Files (x86)\/Tencent\/WeMeet\/3.19.0.1\/wemeet_plugins.dll|wemeet_plugins.pdb 65260000 6538810f 64cc7ca8 3FAC3B17FECF4CB9AD0B06FC51D0D5C01&quot;,\n  &quot;C:\/Program Files (x86)\/Tencent\/WeMeet\/3.19.0.1\/wemeet_plugins.dll|wemeet_plugins.pdb 65260000 65387086 64cc7ca8 3FAC3B17FECF4CB9AD0B06FC51D0D5C01&quot;,\n  &quot;C:\/Program Files (x86)\/Tencent\/WeMeet\/3.19.0.1\/wemeet_plugins.dll|wemeet_plugins.pdb 65260000 65385aeb 64cc7ca8 3FAC3B17FECF4CB9AD0B06FC51D0D5C01&quot;,\n  &quot;C:\/Program Files (x86)\/Tencent\/WeMeet\/3.19.0.1\/wemeet_plugins.dll|wemeet_plugins.pdb 65260000 653874ad 64cc7ca8 3FAC3B17FECF4CB9AD0B06FC51D0D5C01&quot;\n]\n<\/code><\/pre>\n<h2><span class=\"ez-toc-section\" id=\"%E5%9B%9B%E3%80%81%E7%AC%A6%E5%8F%B7%E8%BF%98%E5%8E%9F\"><\/span>\u56db\u3001\u7b26\u53f7\u8fd8\u539f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0-11\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u7b26\u53f7\u6587\u4ef6\uff08PDB\uff09\u662f\u8c03\u8bd5\u548c\u6027\u80fd\u5206\u6790\u7684\u5173\u952e\u3002\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4e0b\u8f7d\u3001\u7ba1\u7406\u548c\u4f7f\u7528\u7b26\u53f7\u6587\u4ef6\uff0c\u4ee5\u4fbf\u5728\u6027\u80fd\u5206\u6790\u65f6\u83b7\u5f97\u51c6\u786e\u7684\u51fd\u6570\u540d\u548c\u6e90\u4ee3\u7801\u4fe1\u606f\u3002<\/p>\n<h3><span class=\"ez-toc-section\" id=\"41_%E7%AC%A6%E5%8F%B7%E4%B8%8B%E8%BD%BD\"><\/span>4.1 \u7b26\u53f7\u4e0b\u8f7d<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"%E7%AC%A6%E5%8F%B7%E8%B7%AF%E5%BE%84%E6%A0%BC%E5%BC%8F\"><\/span>\u7b26\u53f7\u8def\u5f84\u683c\u5f0f<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u62fc\u63a5\u4e0b\u8f7d URL\uff0c\u683c\u5f0f\u4e3a\uff1a<code>url + pdb.name + guid<\/code><\/p>\n<p><strong>\u793a\u4f8b\u8def\u5f84<\/strong>\uff1a<\/p>\n<pre><code class=\"language-text\">E:\\symbols\\acpi.pdb\\4C0A23D5AC858EAA089DEE6EB946A4FA1\\acpi.pdb\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%87%AA%E5%8A%A8%E4%B8%8B%E8%BD%BD%E7%AC%A6%E5%8F%B7\"><\/span>\u547d\u4ee4\u884c\u81ea\u52a8\u4e0b\u8f7d\u7b26\u53f7<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-cmd\">symchk \/v C:\\WINDOWS\\SYSTEM32\\MSVCP140D.dll\n<\/code><\/pre>\n<p>\u586b\u5165\u7528\u6237\u540d\u79f0\u548c\u5bc6\u7801\u5373\u53ef\u81ea\u52a8\u4e0b\u8f7d\u3002<\/p>\n<h3><span class=\"ez-toc-section\" id=\"42_Dia2Dump\"><\/span>4.2 Dia2Dump<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Dia2Dump \u662f Windows SDK \u63d0\u4f9b\u7684\u5de5\u5177\uff0c\u7528\u4e8e\u4ece PDB \u6587\u4ef6\u4e2d\u63d0\u53d6\u7b26\u53f7\u4fe1\u606f\u3002<\/p>\n<h4><span class=\"ez-toc-section\" id=\"RVA_%E6%9F%A5%E8%AF%A2%E7%AC%A6%E5%8F%B7\"><\/span>RVA \u67e5\u8be2\u7b26\u53f7<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-cmd\">Dia2Dump.exe -sym &quot;1b2d4&quot; IDbgCppunit.exe\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"RVA_%E6%9F%A5%E8%AF%A2%E8%A1%8C%E5%8F%B7\"><\/span>RVA \u67e5\u8be2\u884c\u53f7<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-cmd\">Dia2Dump.exe -lines 1b2d4 IDbgCppunit.exe\n<\/code><\/pre>\n<h4><span class=\"ez-toc-section\" id=\"%E5%87%BD%E6%95%B0%E7%AC%A6%E5%8F%B7%E6%9F%A5%E8%AF%A2%E5%9C%B0%E5%9D%80\"><\/span>\u51fd\u6570\u7b26\u53f7\u67e5\u8be2\u5730\u5740<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-cmd\">Dia2Dump.exe -sym &quot;ShowGood&quot; IDbg.dll\n<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"43_WinDbg_%E7%AC%A6%E5%8F%B7%E5%91%BD%E4%BB%A4\"><\/span>4.3 WinDbg \u7b26\u53f7\u547d\u4ee4<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"agestore_%E2%80%93_%E7%AE%A1%E7%90%86%E7%AC%A6%E5%8F%B7%E8%A1%A8\"><\/span>agestore &#8211; \u7ba1\u7406\u7b26\u53f7\u8868<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-windbg\">agestore c:\\symbols\\downstreamstore -days=30 -s\n<\/code><\/pre>\n<p><strong>\u53c2\u6570\u8bf4\u660e<\/strong>\uff1a<br \/>\n&#8211; <code>-days=30<\/code>\uff1a\u4fdd\u7559 30 \u5929\u5185\u7684\u7b26\u53f7\u6587\u4ef6<br \/>\n&#8211; <code>-s<\/code>\uff1a\u9012\u5f52\u5904\u7406\u5b50\u76ee\u5f55<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E7%AC%A6%E5%8F%B7%E8%B7%AF%E5%BE%84%E7%9B%B8%E5%85%B3%E5%91%BD%E4%BB%A4\"><\/span>\u7b26\u53f7\u8def\u5f84\u76f8\u5173\u547d\u4ee4<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<pre><code class=\"language-windbg\">REM \u67e5\u770b\u7b26\u53f7\u8def\u5f84\n.sympath\n\nREM \u8bbe\u7f6e\u7b26\u53f7\u8def\u5f84\u4e3a\u5fae\u8f6f\u7b26\u53f7\u670d\u52a1\u5668\n.symfix\n\nREM \u6dfb\u52a0\u81ea\u5b9a\u4e49\u7b26\u53f7\u8def\u5f84\n.sympath+ C:\\MySymbols\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Windows \u6027\u80fd\u5de5\u5177 \u76ee\u5f55 \u4e00\u3001\u6982\u89c8 1.1 \u6027\u80fd\u5de5\u5177\u5206\u7c7b 1.2 \u5de5\u5177\u9009\u62e9\u5efa\u8bae 1.3 \u4e1a\u754c\u6210\u719f\u5de5\u5177\u6982\u89c8 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[],"blocksy_meta":[],"featured_image_urls":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":""},"post_excerpt_stackable":"<p>\u76ee\u5f55 Toggle Windows \u6027\u80fd\u5de5\u5177\u76ee\u5f55\u4e00\u3001\u6982\u89c81.1 \u6027\u80fd\u5de5\u5177\u5206\u7c7b1.2 \u5de5\u5177\u9009\u62e9\u5efa\u8bae1.3 \u4e1a\u754c\u6210\u719f\u5de5\u5177\u6982\u89c8Windows \u5b98\u65b9\u5de5\u5177Sysinternals \u5de5\u5177\u96c6\u7b2c\u4e09\u65b9\u4e13\u4e1a\u5de5\u5177\u5185\u5b58\u68c0\u6d4b\u5de5&hellip;<\/p>\n","category_list":"<a href=\"https:\/\/ixriver.com\/?cat=36\" rel=\"category\">\u6027\u80fd\u4f18\u5316<\/a>","author_info":{"name":"admin","url":"https:\/\/ixriver.com\/?author=1"},"comments_num":"0 comments","_links":{"self":[{"href":"https:\/\/ixriver.com\/index.php?rest_route=\/wp\/v2\/posts\/916"}],"collection":[{"href":"https:\/\/ixriver.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixriver.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixriver.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ixriver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=916"}],"version-history":[{"count":0,"href":"https:\/\/ixriver.com\/index.php?rest_route=\/wp\/v2\/posts\/916\/revisions"}],"wp:attachment":[{"href":"https:\/\/ixriver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixriver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixriver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}