Pavise v3.3.0.8 配置指南:从游戏识别到会话恢复

本文详细介绍了Pavise v3.3.0.8在Windows平台上的游戏资源管理配置流程,涵盖游戏识别验证、场景与后台治理档位选择、CPU核心及渲染线程亲和性调优、对局/长期设置分离验收,以及动作日志与诊断日志的协同排查方法。强调调度链路正确性优先于性能指标,要求管理员权限、.NET 4.7.2+及Windows 10 2004+环境支持。

Pavise v3.3.0.8 配置指南:从游戏识别到会话恢复

使用 Pavise 调整游戏资源时,最先要验证的不是帧率,而是调度链路:游戏有没有识别正确,配置有没有作用在正确对象上,退出后该恢复的项目有没有归还。链路成立后,再比较效果,才容易解释某次调整带来的变化。

本文按 3.3.0.8 的配置和日志组织一套首次检查顺序。Pavise 是 bdth 维护的免费开源 Windows 游戏资源管理工具,可管理后台资源优先级、逐游戏 CPU 范围、渲染亲和性和对局电源。各模块按保存的选择及本机支持条件执行。

环境与升级准备

系统要求为 Windows 10 2004(19041)及以上,依赖 .NET Framework 4.7.2 或更高版本,并以管理员权限运行。先确认这些条件,再处理功能是否可用的问题,避免把环境缺项误判为选项失效。

保存到固定目录。若使用完整 ZIP,随包文件一起解压;单独的 Pavise.exe 是另一种获取形式,不能认为它包含完整 ZIP 的全部附件。升级时先结束游戏、正常关闭旧版,再替换程序,避免让旧会话与新程序交叉工作。

内置更新入口为“关于 → 检查与更新”,更新保留个人数据。已有配置也会保留;要应用重新定义的预设,需要明确重新选择,不能用“更新成功”代替配置核对。

第一步:核对游戏本体与保护对象

从底栏进入游戏库,添加实际游戏 EXE。登录器、启动器、内置网页和最终游戏进程可能不相同,调整的目标应是要运行的游戏本体。3.3.0.8 优化了鸣潮等游戏识别,减少内置网页误识别,但首次配置仍应查看概览中的实际识别状态。

再进入白名单,检查对局期间需要正常工作的程序。语音与直播工具不是游戏本体,却可能直接影响使用。竞技场景中,普通应用切到前台不会自动脱离治理,因此不要等到切屏后才想起补保护规则。

概览中的游戏与守护状态

3.3.0.8 演示画面使用模拟游戏及读数,只用于定位概览、底栏和守护入口。

确认目标后再启用守护。先不开大量高级项目,可以把“识别—执行—退出”作为第一次验证的最小范围,后续出现问题更容易定位到具体配置组。

第二步:分别选择场景和后台治理档位

智能、竞技决定会话范围;关闭、正常、激进决定后台治理强度。这是两组不同选择,不能把竞技场景直接等同于激进档。

智能场景会按前台与负载调整治理范围,切出游戏释放后台治理,但对局电源和亲和性继续保留。竞技场景在整个对局期间保持治理,切出也不释放,普通软件变成前台不自动豁免。两者都保护游戏、白名单与必要依赖。

正常档降低符合条件的后台 CPU 等资源优先级,并启用效率模式。激进档额外限制 Windows 对这些后台线程的临时提优。说明范围时应保留“符合条件”:受保护对象与系统管理对象并不会都被强制处理。

如果切屏后的应用响应和预期不同,先核对场景与白名单;如果后台治理几乎没有变化,再核对档位、对象保护及实际负载。将两个问题分开排查,比不断切换整套预设更清楚。

第三步:按游戏调整核心与渲染亲和性

进入对应游戏的深度调优,查看核心调度与渲染线程亲和性。逐游戏保存,意味着可以为不同游戏保留不同范围,而不是用全局绑核方案覆盖所有程序。

逐游戏调优入口

演示窗口展示核心调度、同族后台、ReBAR 和渲染线程亲和性等入口;不代表示例中的开关状态适合本机。

3.3.0.8 支持渲染自动、手动选核与物理核避让,并联动游戏核心范围。未开启核心调度时,手动选择显示全核心。选核和核心范围调整在下局生效,关闭渲染亲和性立即撤回。

排查“修改后没有变化”时,应先确认是否重新建立下一局会话。若在同一局连续改动多个范围,观察结果可能混入不同生效时点。把当前配置记下来,下一局再核对,会比仅看开关亮灭更有意义。

核心避让针对可管理线程和进程,系统中断与受保护进程仍受 Windows 管理。不要用一张核心选择图推导出“所有资源已独占”,也不要把某台机器上的核心编号直接套用到另一种 CPU 拓扑。

第四步:把恢复和长期设置分开验收

性能页区分对局生效与长期生效。大部分对局控制在游戏结束后恢复已记录的原值,长期项目按各自说明关闭或恢复,部分需要重启。缓存清理、文件删除不属于可逆的开关变更。

性能页的生效范围分组

按“对局生效”和“长期生效”分组检查,避免用一次退局代替所有恢复操作。

“作者同款”和“极限配置”是批量设置功能的预设,智能、竞技是另一组选择。预设涉及 VBS、CPU 软件缓解等长期项目,会改变相应防护。首次配置应逐项看清含义与重启提示,不把整套预设作为通用前置步骤。

电源恢复还应考虑厂商控制。笔记本、台式机和支持名单中的掌机采用不同处理方式。3.3.0.8 遇到持续的厂商电源冲突会停止切换并恢复原计划;反复看见计划变化时,应检查是否还有厂商工具在同时管理。

动作日志与诊断日志怎么用

动作日志用于查看压制、落核、清核与恢复的执行结果。诊断日志保留更细的技术信息,3.3.0.8 支持分别导出。定位问题时,先用动作日志确认哪一个阶段不符合预期,再结合诊断信息补充原因。

恢复失败有执行预算,达到上限会停止主动尝试、保留恢复记录。因此,自动恢复不是无限重试的保证。离开游戏后查看当前状态,遇到未完成项目保留该会话日志,不要只通过再次启动游戏把问题覆盖过去。

需要反馈时,写清 Pavise 版本、Windows 版本、CPU、显卡、游戏名称、相关设置与复现步骤,并说明最近是否更新系统、游戏或驱动。比起只贴一张占用率截图,这些信息更能缩小问题范围。

验证效果时固定游戏场景与画质,尽量保持后台负载一致,逐组比较卡顿与响应。不要并行运行其他会修改进程优先级或 CPU 亲和性的调度软件,避免设置互相覆盖。能把识别、配置、执行与恢复对应起来,后续性能判断才有可追溯的基础。

作者:bdth。GitHub 仓库:https://github.com/dulaiduwang003/Pavise-Game

下载与获取

百度网盘:https://pan.baidu.com/s/1-JO4Z7wPU_4LTkuwO5xAKA?pwd=sljo 提取码:sljo

夸克网盘:https://pan.quark.cn/s/9860364ac4a5

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值