GG修改器破解版下载地址:https://ghb2023zs.bj.bcebos.com/gg/xgq/ggxgq?GGXGQ
大家好,今天小编为大家分享关于gg修改器附加游戏进程_gg游戏修改器使用的内容,赶快来一起来看看吧。
这篇我们来聊一下 PerfView 在协助 WinDbg 分析 Dump 过程中的两个超实用技巧,可能会帮助我们快速定位最后的问题,主要有如下两块:
洞察内存泄漏中的静态大集合变量名。
验证当前程序的 GC 模式。
这里就把经验分享一下,希望让大家少走弯路。
如果有过 dump 分析经验的朋友应该知道,当你历经千辛万苦在 内存泄漏的dump文件中找到了那个内存泄漏最大的集合,但遗憾的是,你不知道这个集合的变量名叫什么?
为了方便讲述,先上一段测试代码:
namespace ConsoleApp10
{
internal class Program
{
static void Main(string[] args)
{
Task.Run(Alloc1);
Console.ReadLine;
}
public static List<string> mybiglist = new List<string>;
static void Alloc1
{
var rand = new Random;
for (int i = 0; i < 10000; i++)
{
mybiglist.Add(string.Join(",", Enumerable.Range(1, 1000)));
Console.WriteLine(mybiglist.Count);
}
}
}
}
接下来把程序跑起来,终于你找到了那个内存占用最大的 List<string>集合,代码如下:
0:000> !gcroot -all 0000000002e27038
HandleTable:
00000000004A13E8 (strong handle)
-> 000000001A841018 System.Object
-> 000000000284D680 System.Collections.Generic.List`1[[System.String, System.Private.CoreLib]]
-> 0000000012841038 System.String
-> 0000000002E27038 System.String
可以看到,这个变量被 HandleTable所持有,从经验上来说其实就是一个 static 变量,现在我们迫切需要知道这个变量名叫什么,因为离真相真的咫尺之遥了。。。
如果你没有汇编基础,我敢打赌你肯定在 WinDBG 中找不到这个变量名。那有没有快捷的方式显示变量名呢?肯定是可以的,这就需要借助 PerfView 。
接下来点击菜单的 Memory -> Take Heap Snapshot From Dump按钮,弹出如下对话框,输入 dump 文件以及 output 地址,截图如下:

接下来点击 Dump GC Heap让 PerfView 从ConsoleApp10.dmp中采样生成 *.gcdump文件,接下来点击Heap Stacks -> RefTree,通过Inc%可以观察到[static vars]下的mybiglist采样占比最大,如图所示:

到这里第一个问题也就解决了,原来是一个叫 mybiglist的List<string>集合把内存给吃掉了,是不是非常的方便哈。
在我的 dump 分析之旅中,曾经就遇到过一个案例,需要修改 GC 模式,比如说 并发模式改成非并发模式,那改完之后我如何验证呢?
第一种方式就是通过 x命令去搜 coreclr 中的符号,比如下面这样:
0:000> x coreclr!GCConfig*
00007ffa`782763f6 coreclr!GCConfig::s_ConcurrentGC = true
00007ffa`7827b799 coreclr!GCConfig::s_ServerGC = false
虽然可以用 WinDbg 实现,但这种需要生成 dump 或者附加到进程中,那能不能在没有侵入的情况下获取 CoreCLR 当前的 GC 模式呢?肯定是可以的,这又得需要借助 PerfView 啦, 它的底层逻辑是截获 Runtime/Start这个 ETW 事件,在这个事件中有一个叫StartupFlags枚举,里面就记录着当前的 GC 模式。
为了方便讲述,在 *.csproj中修改 GC 的模式为 Server 版,代码如下:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<ServerGarbageCollection>true</ServerGarbageCollection>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<able>enable</able>
<Platforms>AnyCPU;x86</Platforms>
</PropertyGroup>
</Project>
接下来启动 PerfView ,点击 Collect -> Collect启动收集,然后把程序跑起来,停止收集后,我们在 Filter 中输入Runtime/Start事件,如果你的列表中没有StartupFlags列的话,记得在Cols上选择一下哦,截图如下:

从图中可以看到,当前的 StartupFlags=8392707,那这一串数字代表什么意思呢?这就需要到 CoreCLR 中找到它的枚举定义,接下来我们写段代码将它翻译出字符串形式。
internal class Program
{
static void Main(string[] args)
{
var value = "8392707";
Enum.TryParse<Test>(value, out var result);
var txt = result.ToString.Replace(", ", "
");
Console.WriteLine(txt);
}
[Flags]
enum Test
{
STARTUP_CONCURRENT_GC = 0x1,
STARTUP_LOADER_OPTIMIZATION_MASK = (0x3 << 1),
STARTUP_LOADER_OPTIMIZATION_SINGLE_DOMAIN = (0x1 << 1),
STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN = (0x2 << 1),
STARTUP_LOADER_OPTIMIZATION_MULTI_DOMAIN_HOST = (0x3 << 1),
STARTUP_LOADER_SAFEMODE = 0x10,
STARTUP_LOADER_SETPREFERENCE = 0x100,
STARTUP_SERVER_GC = 0x1000,
STARTUP_HOARD_GC_VM = 0x2000,
STARTUP_SINGLE_VERSION_HOSTING_INTERFACE = 0x4000,
STARTUP_LEGACY_IMPERSONATION = 0x10000,
STARTUP_DISABLE_COMMITTHREADSTACK = 0x20000,
STARTUP_ALWAYSFLOW_IMPERSONATION = 0x40000,
STARTUP_TRIM_GC_COMMIT = 0x80000,
STARTUP_ETW = 0x100000,
STARTUP_ARM = 0x400000,
STARTUP_SINGLE_APPDOMAIN = 0x800000,
STARTUP_APPX_APP_MODEL = 0x1000000,
STARTUP_DISABLE_RANDOMIZED_STRING_HASHING = 0x2000000
}
}
程序跑起来后,截图如下:

从图中可以清晰的看到,当前的 GC 模式为 CONCURRENT_GC & SERVER_GC,这和 WinDBG 的输出不约而同。
好了,本篇就聊这两个超实用的分析技巧,希望对大家有所帮助。
以上就是关于gg修改器附加游戏进程_gg游戏修改器使用的全部内容,希望对大家有帮助。

gg游戏修改器下载怎么使用,GG游戏修改器下载:你的游戏世界不容错过的神器 大小:17.23MB9,987人安装 随着游戏越来越成为人们娱乐生活的一部分,游戏修改器也逐渐走进玩家的眼中,其中以……
下载
gg游戏修改器怎么下脚本,GG游戏修改器:改变游戏体验的神器 大小:3.86MB9,579人安装 作为一名玩家,在游戏中体验到快感是我们最为追求的目标之一。可是,当我们遇到难度……
下载
gg修改器root版怎样下载_GG修改器免root版下载教程 大小:19.36MB10,733人安装 大家好,今天小编为大家分享关于gg修改器root版怎样下载_GG修改器免root版下载教程……
下载
正版gg修改器怎么root_正版GG修改器怎么下载 大小:19.60MB10,735人安装 大家好,今天小编为大家分享关于正版gg修改器怎么root_正版GG修改器怎么下载的内容……
下载
gg修改器root获取华为,感受 gg修改器root带来的华为手机升级体验 大小:12.77MB9,687人安装 作为一名Android手机用户,我们都知道华为是一个非常强大的品牌,而gg修改器root能……
下载
贪婪洞窟gg修改器(贪婪洞窟盒子)下载1.2.4507,贪婪洞窟gg修改器修改代码 大小:6.59MB10,044人安装 闺蜜就是那种今日吵,明天笑,近了烦,远了想,不见时挂念,见了时厌恶,自我能欺负……
下载
苹果GG修改器免root版,苹果GG修改器免root版:让你的手机游戏更加激情 大小:16.06MB9,395人安装 对于手机游戏爱好者来说,有一个好用的游戏修改器是非常重要的。但是许多游戏修改器……
下载
gg游戏修改器怎么修改猫罐头,掌握你的游戏命运:用gg游戏修改器修改猫罐头 大小:15.51MB9,533人安装 对于玩家而言,游戏的难度和体验对于游戏过程的影响极大。其中,猫罐头这款游戏因为……
下载
gg游戏修改器开心消消乐,GG游戏修改器,让你畅玩开心消消乐 大小:14.43MB9,726人安装 作为一款风靡全球的休闲游戏,开心消消乐已经赢得了无数玩家的喜爱和关注。然而,想……
下载
方舟gg修改器怎么root_方舟gg修改器怎么下载 大小:7.00MB10,576人安装 大家好,今天小编为大家分享关于方舟gg修改器怎么root_方舟gg修改器怎么下载的内容……
下载