行业资讯

开放世界中的水体渲染和仿真

最佳优化方案是放弃各种个管家

加内存,换ssd

谢邀.

对于 Windows 7 系统的优化,我个人的看法一直是:对于普通用户,在原版系统的基础上,通过一些简单的设置,使系统达到一定的可用状态即可。中高阶用户/专业人员可以根据自己/用户的使用习惯进行一些有倾向性的设置,但对于大部分普通用户来说,在可以保证一定硬件性能/设置的基础上(比如,直接换SSD、打开AHCI等),Windows 7 原版系统的(自适应性)优化已经可以满足一般的需求了,完全没必要进行太过特别的“优化”,特别是那种对各种用户没有任何区别的通用优化设置,有时简直是种灾难。

顺手放上一篇2012年写的老文,是讲 Windows 7 基础设置的,原文地址:

Win7简单优化设置入门

⒈点击开始菜单,然后找到“计算机”,用右键单击,选择“属性”,然后打开“系统”页面(桌面上的“计算机”右键菜单里也可以进来,另外在控制面板里也找的到这个东西)。

⒉点击左边栏里的那个“高级系统设置”,将弹出“系统属性”对话框,
首先点击“性能”框里的那个“设置…”按钮,接着将弹出“性能选项”对话框,且默认在“高级”选项卡上,
在 “视觉效果”选项卡中勾选“自定义”,然后仅保留“窗口内的动画控件和元素”、“平滑滚动列表框”、“平滑屏幕字体边缘”、“启用桌面组合”、“拖动时显 示窗口内容”、“显示半透明的选择长方形”、“显示缩略图,而不是显示图标”、“在窗口和按钮上使用视觉样式”、“在鼠标下显示阴影”、“在桌面上为图标 标签使用阴影”几个项目前的勾,然后确定退出“性能选项”。
【这一步主要是停掉一些过于华丽但效果不是特别明显的 Aero 特效,适当降低对资源的消耗,以提高桌面的响应率。】

⒊接下来,回到“系统属性”对话框的“高级”选项卡,找到“启动和故障恢复”框,点击其中的“设置…”,打开“启动和故障恢复”对话框,
如果不是多系统共存的话,“显示操作系统列表的时间”和“在需要时显示恢复选项的时间”前面的勾都可以取消掉。接下来,把“系统失败”里所有选项的勾取消,“写入调试信息”选择“(无)”,依旧是确定退出。
【这一步主要是压缩启动时间(显示启动菜单等),以及系统失败时,不做写入(反正写了也没人看,尤其是调试信息)。自动重启一般都是关掉的,这样在故障时可以留住比较重要的蓝屏信息代码。】

⒋到这里,“高级”选项卡上已经没什么需要动的了,我们来切换到“系统保护”选项卡。
这里,可以看到“保护设置”里的左边是逻辑分区、右边是保护状态,我们要做的呢,就是看哪个逻辑分区的保护是处于“打开”状态的,选择它,然后点击“配置” 打开“系统保护系统”对话框,然后点击“关闭系统保护”来关闭保护,然后确定退出。(中间会弹出一个对话框询问是否确定关闭保护,选择确定)最后关闭所有 的磁盘保护。
【这一步主要是,因为基本很少有人会使用“系统保护”这东西进行磁盘操作回滚,并且,对于磁盘性能不高的盆友来说,关掉这个选项也有助于提(bǎo)升(liú)一定的磁盘性能。】

⒌最后回到“系统属性”对话框,切换到“远程”对话框,取消勾选“允许远程协助这台计算机”,然后点击“确定”退出。到这里,我们完成了关于系统属性的设置,下面,我们来讲一下其它的设置。如果严格的按照我的步骤来操作的话,现在一定还留在“系统”页面里,好,点击地址栏的“系统和 安全”层级,进入“系统与安全”页面。

⒍点击“操作中心”主分类,进入“操作中心”页面,
在左边栏里找到“更改操作中心设置”,点开,把所有的勾都取消掉,然后点击确定退出。(提示一下,既然不用Win7再絮絮叨叨的了,可以一并把任务栏的图标也关掉,方法是点击任务栏右侧那个向上的三角箭头,然后点击“自定义…”,接下来会弹出“通知区域图标”设置页,在那堆设置项的下边,有个蓝色字体的“打 开或关闭系统图标”,点开它,再找到“操作中心”,把其后的下拉列表改成“关闭”就好了,接着确定再确定退出即可。)
【这个基本属于保留系统整洁的选项,关掉这项相当于关掉了一个系统提醒项,对性能的会有极小(不明显)的提升。】

⒎接下来,在“操作中心”的页面里,找到“Windows Update”主分类并打开,在左边栏里找到“更改设置”并点开,然后把“重要更新”的下拉框改成“检查更新,但是让我选择是否下载和安装更新”就好了,确定退出。大功告成!!!
【这个选项会保留 Windows Update 更新,但改为仅检查后,会改善 Windows Update 在后台自动下载时引起的系统网络莫名变卡的现象,对于小水管用户会比较有用。】

另外,题主提到了 CCleaner 这个软件,这个软件的主要功能以清理系统剩余文件(为什么不叫系统垃圾?清理的比如系统缓存、临时文件之类的文件,一部分是系统/应用软件为了提升加载速度而存储的文件,另一部分是系统曾经用过而不知是否再用的一些临时文件,这些文件大都并非是可以直接影响系统性能的元凶,而清理掉这些文件以后,也并不直接对系统性能产生直接的提升作用,所以我不是很提倡把这些文件直接称为“系统垃圾”)、清理注册表项为主,另附带了一些覆写磁盘空余空间、擦除磁盘等小功能。在这里,除了清理注册表可以部分解决一些小的系统冲突以外,大部分的功能还是以清理为主,其实对性能的提升作用并不是很大,所以,我个人的建议是,用不用视个人喜好而定。

以上.

为什么不是:

win 8有哪些优化的方法?

win 8.1有哪些优化的方法?

win 10有哪些优化的方法?

win 7在5年多之前就已经上市,主流支持服务将在2015年1月13号到期——没错,就是明天,果然问得早不如问得巧......

在这5年多的时间里,网上各种攻略、优化方法不计其数,不知道题主为何不在网上找现成的答案?首先我提供一个现成的链接,来自远景论坛:

我为什么不“优化”

下面说说我的看法:

首先,你要清楚,各种管家、卫士、杀毒,只会让本来已经比较慢的系统更加慢。你要想清楚,你需要这些管家来管什么?要卫士来卫什么?只要你平时不上、少上哪些乱七八糟的网站,不要轻易打开陌生人发来文件和陌生的文件类型,本身中毒的机会就非常小。只需要加个Microsoft security essentials(MSE),基本上就能保证电脑的安全了。当然,如果害怕受到黑客的攻击,那除非不联网,否则几乎所有管家、杀毒都是无效的。

其次,题主自己心里也明白,自己电脑配置不高,那可能是老电脑吧?影响电脑性能的,无非是CPU、内存、硬盘、显卡这几个东西。电脑用起来觉得卡,可定是其中的某个,或者某几个达到瓶颈了,这时,电脑的性能不足,达不到流畅运行需要的条件,你再什么优化也无济于事比如,春运有2亿人需要坐火车回家,但是只有1亿张火车票,这时,注定有1亿人没法买到票。你铁道部优化管用吗?再怎么优化,运力也不会凭空多出来,把这1亿人送回家啊。所以,如果电脑的性能不足,要么换新或者升级;要么不要打开过多程序,让电脑超负荷工作;要么就忍受电脑卡顿的折磨。


所以,你需要判断电脑的哪方面性能不足,然后才能针对性的解决问题。如果这一步你不愿意做,那么你的问题可能就无法解决,或者买来的新电脑性能还是不足,或者花大钱买了个高配电脑发现浪费了

判断电脑哪个组件的性能不足也很简单:多用任务管理器。在任务栏点右键,选择“任务管理器”,切换到“性能”页面,可以看到CPU和内存的使用情况。

最简单的是内存,只有够与不够的区别。如果内存使用经常超过80%,甚至接近100%,那么你的内存肯定是不够的,需要加内存。

CPU:一般情况下,在电脑空闲时,如果CPU的使用率在10%以上,这台电脑的CPU性能的不足的。这里的空闲,包括后台没有杀毒软件在扫描,没有程序正在进行某个操作。这时如果CPU的使用率超过10%,说明你什么都没有操作,CPU就这么忙了,你再打开多个程序进行其他的操作,CPU怎么能忙得过来呢?

硬盘:一般来说,现在SSD固态硬盘是必须的,如果还没有,就买一块吧。现在400来元就能买个128G的固态硬盘了,装系统、软件绰绰有余,体验绝对有质的提升。但是注意,如果CPU太老,性能太差,也是带不动固态硬盘的,5年以上的电脑可能会有这个问题。

显卡:近3年内电脑的显卡,如果不是玩游戏,大多数情况都是够用的。


当你的电脑在日常使用中不会出现瓶颈时,你就可以安心的使用电脑了。首先,如上面说的,SSD是必须的。你应该把系统和常用的软件安装在SSD上,128G的空间完全够用,不用担心容量不够的问题。

很多朋友有个问题:在电脑使用过程中,C盘会随着使用时间的增长而不断增大吗?答案是会,但不是无限增大。去年6月配了一天电脑,120G的SSD,实际可用111G。装了很多软件,C盘的剩余空间一度减少到40多G。但是经过我的观察,近2个月的时间,C盘的大小已经保存稳定了,剩余空间几乎没有任何变化。(PS,我没有进行清理垃圾,清空浏览器缓存等操作。)

关于楼上有人说使用绿色软件、调整性能选项卡等,实际上对性能的影响并不大。绿色软件,首先不是所有软件都有绿色版,其次其来源和可靠性、安全性难以保证,再则很多绿色软件都是几年前的版本,审美、功能已不符合当今的主流,花大力气寻找、安装这些软件大多数时候是不划算的;性能选项卡,只不过是对电脑的显示效果的一个调整,把他们关闭掉是能少占用些资源,但是这些节省出来的资源的缓解卡顿几乎没有任何效果,反而会使你的电脑看起来不够赏心悦目,实际上得不偿失。

最后,关于开机启动软件。一直以来,各大卫士、管家为了开机时间快快快,以彰显自己优化给力,对各种开机自启动软件都是杀杀杀。曾经我也这么认为,直到后来发现一些经常使用的小程序,让我改变了这种想法:一些在后台运行的软件,除了占用一些内存以外,几乎不耗费任何资源,而它们可以在任何你想使用的时候,使用全局快捷键直接使用,相当于变成了Windows的内置功能,省心省力,何必每次都要费劲地找到需要软件,点击运行呢?

总结就是,win 7以来的Windows已经非常好用,大多数情况下并不需要再画蛇添足进行所谓的优化。如果你觉得你的电脑慢,那可能是电脑太老旧,或者你使用的方法不当这里吐槽一下

如何优雅地使用 Windows?

这个问题的部分答案,不少人说不要在桌面放任何图标,不要在任务栏放图标,把任务栏放左边或右边,然后就优雅了?我就呵呵了。电脑是一个工具,如果你使用电脑有一两年以上的时间,你应该对自己的电脑比较熟悉,各种需求、操作都应能从容面对,不慌乱,同时时常保持电脑的美观。用起来舒服,看起来顺眼,省心省力,赏心悦目,就是完美的电脑,这是使用电脑将近10年的我的总结。

下面就说一下程序的快捷方式的放置位置,虽然对性能没什么影响,但是界面上的美观,也算优化吧。下面是我的桌面:

1.最常用的程序,锁定到任务栏,需要时单击即可启动,并且启动后窗口的位置就是原来的图标位置。这样,既方便启动程序,又能使各个常用的程序的窗口保持固定的位置。

2.次常用的程序,单击右键,选择“附到开始菜单”。这可以使程序固定在开始菜单的顶部,只要按下win键,鼠标单击(或上下方向键然后回车)就能启动。这么做能极大地方便程序的启动,但是我发现这么做的人很少。在此说一下上面说的优雅使用Windows问题,很多人说程序启动就开始菜单然后搜索,或者使用别的程序来管理这些快捷方式,我只能说,拜托,别太折磨自己了。

3.比较常用或需要一直运行的小程序,设置开机启动,然后隐藏到向上箭头里,如上图右下角。我的自启动程序里第三方的有:Everything、Listary、有道词典、梦畅闹钟、Picpick、护眼卫士、f.lux。这些程序都很小,占用资源不多,但能极大地改善电脑使用体验。在优雅使用Windows问题中,还有很多类似的推荐。吐槽归吐槽,有很多说得还是很好的。


最后,介绍一个小技巧:如何为特定程序的启动设定全局快捷键。

1.找到程序的快捷方式或者启动文件。我就以我开始菜单上的Everything为例:

2.在上面点右键,选择属性。

3.在“快捷键”里自己设定一个快捷键,如下图:

如图,把快捷键设置成Shift+Alt+Z,试试看是不是很好按?当我要Everything进行搜索的时候,我只需要四指并拢,花0.5秒按下Shift+Alt+Z就能启动了。

自启动程序+任务栏程序+附到开始菜单的程序,设置为大图标,一共可以放20多个,完全满足平时使用的需求。再加上开始菜单会自动把剩余最常用的程序显示到第一页,算下来30多个程序。程序的启动是最方便的,根本不需要其他助手什么的来插手。

以上所有,对win 7以后的所有Windows版本都适用。

所以呢,我们到底需要对Windows 进行什么优化?我们需要优化的是我们自己。

高手们知道操作系统的实现是最高效的,不手动优化系统和内存……

Windows上的内存清理软件,这就是个伪命题。

Android手机,要清理内存,把切到后台的应用干掉,就一键清理了。Windows上,你把一个缩小化(也没切到后台这概念)的程序(进程)杀掉试试,那就真的杀掉了。真要这么干你自己打开任务管理器就可以干了。

这种‘清理’是整个进程范围的,进程的全部内存空间都干掉了,之前所分配(映射)的物理内存页(working set)会被放到一个free list以供他人使用。如果是用来map文件内容的物理页(通常称为cache)则放到standby list,仍然可以起到cache作用。

那么如何不杀掉一个进程去“清理”它的内存?你试试直接remote spawn一个thread然后VirtualFree,那画面就太美了。

唯一能做的可能就是缩小该进程的working set。所谓working set是指还进程分配的虚拟内存中(注意Windows程序大部分时候申请的都是所谓虚拟内存)真正映射在物理内存的大小,没在这里面的就是暂时写到pagefile了。缩小working set其实就是把更多的放在物理内存页上的内容写到pagefile以释放这页物理内存。

这个确实可以通过SetProcessWorkingSetSize来实现,但是请注意随便减小一个正在运行的进程的workingset,是一件非常坑爹的事情。脑补一下某进程刚申请了一块内存,放了点数据进去,还没用完就被“清理”,写到pagefile。但是当该进程又去访问还地址空间时,这块内容又会从pagefile中被读回来。无缘无故多了两次disk io。当然实际情况比较复杂,这里只是简化了。

那么进程的working set大小究竟应该由谁来管理?显然大部分情况操作系统能更好得替你管理,真没必要操这个心。

系统怎么管理?首先你得理解,物理内存放着不用,那是犯罪。尽可能高效的利用每一页内存才是正道。Windows有三层空闲内存体系。第一层叫zero page list,里面的内存页都是填零的,当有内存需求的时候立刻就能用。第二层叫free list,如果有用户态内存需求则需要先清零变成zero page再分配。第三层叫standby list,通俗理解就是file cache(只是read的),如果前面两层都不够了就会从这里拿,自然也就扔掉了一些file cache。

这三层体系基本保证了新的内存需求能尽快得到满足。普通情况一个进程VirtualFree了一块内存,本来用到的物理页就会直接放到free list,根本不存在一个清理过程。然后会有一些zero page threads专门负责清零工作。而standby list也就是真file cache一般都很大,所以不大可能会发生新的请求会满足不了。

好了什么时候系统会做所谓内存清理?很明显如果3层list都光了那肯定要清理。另一种情况,当他发展最近的物理内存请求比较多的需要由standby list来完成,而不是前两层,那意味着file cache被循环丢得厉害,也会做一次清理。

怎么清理,其实就是走一边进程表然后减小大家的working set重新洗牌。这也是最后一招没办法的办法,diskio太多了。其实大部分时候是不会走到这一步的。zero/free/standby list多数都会被控制在比较健康的水准而不会发生强行清理。

Windows核心从nt开始发展了这么多年才到了今天的水平,memory management这块核心代码估计地球上只有不到5个人敢动,现在这块的掌门人已经是tech fellow级别了。外面所谓什么什么“一键优化”真是很可笑的。

如果能接受全屏最好全屏运行,可以显著提高帧率。受不了拉伸的画面,可以改画面比例16:9

下面那个括号全屏提升不了流畅度。

如果受不了喇叭太多,画面太凌乱,按句号键(Shift旁边那个)可以隐藏辅助UI,清爽不油腻

设置中下面这几个关掉可以提高街上走动时的流畅度,人多的时候效果比较明显

如果还是很卡,那就得开垂直同步。不利影响官方也已经写了。

再有就是部分有特效的天空,会降低帧率(这个特效就是关了上面的那几个设置都没用)

如果还是卡,那可能电脑确实不行了:

右键我的电脑—属性—高级系统设置—高级—性能设置—视觉效果—调整为最佳性能—应用

然后去控制面板里找电源选项—高性能

没在首选计划里就在隐藏附加里,这可以显著提升笔记本玩DNF的反应。

附加教学:

1.自己玩/双开经常遇到游戏卡住几秒不动?

我的电脑—属性—高级系统设置—高级—性能设置—高级—虚拟内存更改—自动管理的钩去掉—自定义大小—把推荐数值填入—设置—确定

注意:完成后请重启电脑

2.决斗场PK频繁闪退

我的电脑—我的文档—地下城与勇士—右键Replay属性—安全—编辑—写入打勾—应用

其实换win10就不闪退了,官方不优化

上个月刚做了优化教学视频,看到这个问题就把文案改了改搬过来了,希望可以帮到你。

另外决斗场闪退这个还是换win10把…不然你可能失去上电视的机会(笑)

360好几年没用了,现在功能估计也差不太多,不外乎启动项管理,垃圾清理,服务管理

首先启动项管理,win10任务管理器自带启动项管理

关于垃圾清理,程序员设计软件,不会特意产出垃圾来恶心用户,所有文件都是有意义的。360认为缓存,log之类的算垃圾,清理掉了。其实电脑上这些文件加起来也不会过1G,现在硬盘怎么也500G起步了吧。清理了这些文件,理论上会让你的应用初次运行速度变卡。

清理了垃圾之后系统流畅度增加,纯粹是心理因素。

关于服务管理,对于普通用户而言,某些服务确实用不上,关掉服务理论上会降低内存cpu占用率。其实微软的产品面向的就是普通用户,他们出厂开启的服务都是经过仔细论证过的,能让大部分用户使用电脑不出问题。你关掉了某些服务,在进行某些操作的时候,出了问题你就一脸懵逼。另外如果是用windows做开发,你用360优化了服务,会相当恶心。

现在的杀毒软件几乎都是启发式杀毒,就是硬盘有io了,或者某些软件启动了,杀毒软件就扫描一次变动的内容,这种扫描会增加硬盘io,增加cpu占用率,让你的电脑卡一下。

win10普通使用,你几乎没办法让你的电脑中毒。以往中毒的主要途径是浏览器,现在chrome,firefox都很安全,不会让网页的代码在本地执行,浏览网页不会让你的电脑中毒。

能中毒的途径不外乎两种,首先是来路不明的U盘,这个无解,不要在自己的PC上用别人的U盘

其次是用户手贱,安装来路不明的软件。下载软件要在软件官网下载,不要下载安装自己不熟悉,没用过的软件。就能避免各种全家桶给你带来的困扰。

养成良好的使用习惯,即使不安装杀毒软件,也完全没问题。如果在组策略里禁用了win10自带的defender,电脑处于完全裸奔状态,你就会感受到如丝般的顺滑的操作体验,仿佛换了一台新电脑一样。

现在就听我的,卸掉360,禁用掉defender,然后用电脑的时候保持清醒,看电脑还卡不卡

360这东西怎么说呢,当初我删掉它的时候,总想着怎么清理垃圾,怎么优化系统。时间久了就看开了,这就是360给用户培养出来的陋习,就跟烟瘾一样,明明不抽烟活的好好的,但就是忍不住,就要抽。

你明明电脑用的好好的,不拿个什么优化一下电脑,就浑身难受。这是360给你带来的心理疾病,得趁早治疗。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

裸奔2年电脑还如丝般顺滑的windows用户,提示您

使用大厂软件,使用开源软件,在官网下载软件

不要去乱动系统设置,包括但不限于组策略,注册表。微软大牛给你调整好的设置,不需要你去调整

不要安装杀毒软件,因为你不会中毒

除非自己迫切需要,否则不要主动找软件去安装

推荐一个软件更新器,叫QQ软件管理独立版

使用虚拟机,VirtualBox之类的东西,去试验来路不明的软件

用网盘,不要用U盘,你的U盘仅限于你自己用

让你中毒,不是一个技术问题,而是一个社会工程学问题。木马作者难以攻破win10的防御,但容易让用户自己去把木马下载下来,然后手把手教你如何把木马安装到电脑上

不要为了追求炫酷的效果,去安装各种装饰用的插件。美化电脑换壁纸就够了,别人不会因为你桌面炫酷就爱上你

去使用你的PC,不要去折腾你的PC

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

为了提升广大windows用户的使用体验,我来推荐一波应用

音乐:foobar2000(本地播放,音质好),网易云音乐(搜新音乐)

视频:QQ影音,Potplayer。二选一

Office:Libreoffice,MSoffice。二选一

下载工具:百度网盘,有会员用迅雷,没会员用FDM

轻量文本编辑:gvim(代码高亮,格式正确,反应迅速),VScode,Evernote

驱动管理:360驱动(干净无捆绑),别用驱动人生,驱动精灵,这俩都有静默安装全家桶

浏览器:做开发用chrome,不做开发用firefox。新Firefox日常用比chrome爽

虚拟机:VirtualBox(莫名其妙的软件,文件都在虚拟机里面用,没问题再转移到本地系统)

PDF,各种txt阅读:直接用浏览器

压缩解压:7-zip(别看界面简陋,但是它功能强大)

软件更新器:QQ软件管理独立版(别在官网下,官网的是QQ管家全家桶版)

以上软件都是功能全面而且强大,足够干净无捆绑,能满足绝大多数日常使用需求。

先说结论:360的优化是有效的。

没有人会比微软更了解Windows系统,但也没有人会比中国人更了解中国。微软的系统优化的再到位,也抗不住我天朝上国的流氓软件,在后台“看不见”的地方,这些软件在偷鸡摸狗的干着令人不齿的勾当。按理说,对付流氓应该依靠法律,但很不幸,我国法律对软件的流氓行为监管缺位,企业又没有自律的良知,更可怕的是用户还逆来顺受,维权意识淡泊,或者维权无门,共同造就了这样一个粪坑一样的软件环境。流氓荣华富贵,君子含恨屈死,到最后只能靠流氓来对付流氓,毕竟一个流氓捣乱强过十好几个流氓捣乱,这是一种迫不得已的取舍罢了。

不仅PC如此,手机领域也同样。谁不知道谷歌的原生系统比定制UI顺畅?但如果用在我朝的软件环境下能抗得住么?稍微普通点的定制UI都压不住交叉唤醒常驻后台和抢占内存,以至于国外4个GB的ram够用的时候,国内都得6到8GB。三星手机能卖到安卓全球第一,它的定制UI有那么不堪么?为什么到了国内续航就血崩?近几年为什么专门对国行加了智能管理器?所有的这一切都是拜国内粪坑一样的流氓软件环境所赐,是由沉默的用户、无良的软件企业和缺位的国家监管共同造就的,谁也免不了责任。

直截了当的说,PC优化没有任何实质性作用!充其量相当于精神安慰剂,心理上可能会有点作用,拯救一下你的强迫症罢了。顺便翻了前面的回答,发现很多都是口水战,没有基于技术原理方面的证明,所以我就来给你们实锤。

技术上来给大家揭露一下,其实所谓的电脑内存清理都是骗局!无非就是调用 Windows 系统 API 的 EmptyWorkingSet 函数,然后把物理内存移动到虚拟内存(pagefile.sys),造成了一种内存变多了的假象。其实这是以牺牲硬盘速度、换取少量物理内存的掩耳盗铃的愚蠢行为。

EmptyWorkingSet function

所以,火绒作为一款难得的国产良心杀毒软件,一直都没有内存加速功能,他们不在乎这个噱头!让人悲哀的是,不明真相的网友还时不时向他们提建议,加入内存清理功能,真是叫人叹息。

最常见的缓存清理,莫过于“浏览器缓存”和“系统缩略图缓存”。其最大的效果就是释放C盘空间,的确也是达到了这个目的,但是会让电脑变快吗?答案当然不会,而且逻辑上毫无任何关系,可能还会变慢。

IThumbnailCache

缩略图缓存诞生的意义,就是为了让预览图的加载速度更快,不让文件夹卡顿。并且从 Vista 开始,系统所有的缩略图都集中存储在一个位置,建立了类似于数据库的先进概念。你把缓存全部清空了,那系统每次进文件夹就要重新生成,反而会让文件夹打开速度变慢。

微软工程师难道是傻瓜吗?明知道会让系统变卡的服务,还让它开机自动运行?这当然不可能了,实际上很多服务甚至是为了让系统更流畅而特意开发的,比如:磁盘碎片清理、内存预加载、文件索引等。

What is Indexing Service?

可能某些服务刚装完系统的时候,会比较卡(尤其是索引功能),但这是为了长远的流畅而采取的措施。当所有文件索引完成的时候,你能想象全盘搜索文件只要几秒钟就出结果吗?而且还能搜到文档里的文字内容。

那些曾经被国内各种卫士,作为主要卖点的以上三大优化功能,我都逐一揭露了其技术本质,并附带了微软的官方说明文档。相信大家在知道真相后,不会再盲目追求所谓的系统优化了。

都什么年代了,切勿迷信360这类娱乐软件。低配置的电脑,你再怎么优化也不会飞起的,还不如加个内存、换个SSD实在。其实,卸载360全家桶才是真正加速系统的最佳选择。不信你试试,保证开机速度快一倍!

网友提到系统目录下有个 WinSxS 文件夹,它占用的体积很大,能不能优化?大家可以查阅任何一个百科网站,都会告诉你不能删除此目录及相关文件。此目录主要存放了各种升级历史备份、驱动备份、运行库备份等重要的文件。

Determine the Actual Size of the WinSxS Folder

首先,WinSxS 目录显示的体积是不准确的,有些文件并不一定真的在这个文件夹里。其次,装完系统后,这个文件夹的体积一般不会再明显变大,有时候会自然缩小(尤其是当 Windows10 系统升级以后)。最后,大家可以通过:C盘右键属性>>磁盘清理>>清理系统文件,或者管理员身份运行命令:Dism.exe /online /Cleanup-Image /StartComponentCleanup,从而缩小 WinSxS 文件夹的体积。

Clean Up the WinSxS Folder磁盘清理允许用户删除过时的更新

如果有安装 Microsoft Office,并开启了自动更新,可能会导致历史备份体积异常的大,过度占用系统盘空间。解决方法:控制面板>>程序和功能>>卸载所有 Office 有关的补丁,重启电脑后,再安装最新的补丁即可。

以前有一个来自机械工程专业的同学,对电脑一窍不通,桌面乱糟糟的,系统内存经常占用到 60% 以上。她告诉我说,下载软件的时候经常出现比如 XXXX小游戏之类的,弹了不少广告,非常苦恼,但又不知道怎么做。

后来有一天我教她怎么找下载链接,删除了至少二十个捆绑软件,安全软件只保留了 360,但叮嘱她不要再装 360 的其他应用(如果有就卸载掉),只要这个就够了。

从此她再也没有因这种问题麻烦我。

有人讲,这不是她使用习惯不好嘛?怎么非得要让 360 去干涉这些事?

是。

但对于像她这样对电脑优化一无所知的人来说,他们不会去专注于所谓的“习惯”,也不想在这方面浪费时间,坚持认为自己没有错,错就错在电脑及软件。

更何况数据无价,你试图用高手的思维去思考,阻止他们装安全软件,是无法让他们信服和接受的。

另外,包括一些软件安装包,表面上与官方无异,实际上里面加了些了什么也不一定能看出来。

这时候 360 的价值出来了。

说到底,360 应该是无基础的小白装机必备的辅助工具,像榨菜一样可以调味,但永远不能当饭吃。

通过 360 禁止掉流氓软件的胡作非为,是正优化;

如果放任它,又加装全家桶的时候,就是负优化,不能解决问题,达不到应有的目的,所以又成了另一种“流氓”。

而大神更没有安装 360 的必要,拿 Windows 10 来说,自带的 Defender 足矣。

但不得不说,360 戳中了中国很多电脑小白的痛点。

比如某些人还在用上古不更的 XP 和 Server 2003,经常因兼容性问题惨遭蓝屏;

安装来路不明的软件的时候,浏览器主页常常被莫名其妙地劫持和篡改;

某些顽固文件始终删不掉,进不了回收站;

有的人又因为电脑突然自动更新而精神崩溃;

……

而 360 就已经告诉他们,哪些情况下该打补丁,需要禁止哪些系统的无用服务,又该阻止哪些捆绑软件的安装,至少不会出现误操作,不会对系统的安全造成影响。

写这些不是给 360 出公关文,因为 360 发展到今天根本不需要广告了,我也拿不到一分钱(滑稽)。

并且我所阐述的就是一个事实。

在国内乱糟糟充满后门的 Windows 生态,以及从 XP 到 Win 10 版本齐全的中国 Windows 用户群体,身为一家从事信息安全研究的公司,又与微软中国是合作伙伴,奇虎自然能够在如此的形势下,摸清用户的使用误区,对业界流氓的套路了如指掌。

至少比起同行某霸卸载后残留在 temp 文件夹阴魂不散,某星最终堕落到只剩下小狮子,还是很成功的。


4 月 15 日更新:

没想到这个回答竟被官方点赞了,233333

两年前的文章,很多内容已经有些“过时”了,我也不打算再修改。最近被知乎挖出来推荐了一遍,我希望诸位只做参考。

下面为原文章:


首先,Windows10长这样!

下面开始介绍


一、设置系统文件夹转移

这里要用到软媒魔方的插件之一,软媒设置大师
在软媒设置大师的主页面,选择系统文件夹设置-取消掉只显示推荐修改的项目。然后全选、更改路径。
更改的路径可以自行设置,建议设置到非C盘但是绝对安全的盘,建立一个你用户名的文件夹,然后选择此路径,开始转移。
这个文件夹内的文件是你的各种文件,设置,包括你桌面上的东西也都在这里。

如果重装系统了,只需要再把系统文件夹设置为此目录就好,方便很多。

系统文件夹设置

二、服务设置


(Win+R)输入services.msc。

1、如果不用Windows更新
Windows Update-属性-启动类型-禁用。

2、如果不用Xbox游戏(包括Xbox录制等功能)
禁用所有能禁用的Xbox开头的服务。

3、如果不用家庭组
禁用所有HomeGroup开头的服务。

4、如果不用蓝牙
禁用Bluetooth Handsfree Service服务。

5、Windows备份设置为手动。

6、如果用户应用程序有可疑自启(开机自启中找不到但是任务管理器可以找到的),可以去服务找一下,禁用即可。


三、删除自带的Metro应用


这个要看个人需求,多数人不用自带的Metro应用,可以把需要的留着不需要的删掉。

打开DWS -设置-根据个人需求选择不需要的程序,选择后,点击主页面的按钮删除。

工具页面:
如果不喜欢UAC提示:禁用UAC。
如果不想用One Drive:删除One Drive。
如果设置页面觉得Motro应用删除的不够干净,可以选择删除所有。[但是该操作会删除应用商店,并且不可逆转]


四、禁用启动项


(Win+X)-任务管理器-启动-禁用不需要的启动项(本人只留了两个,一个杀毒,一个截图)


五、杀毒软件和优化软件
1、个人建议杀毒软件使用Avast或者火绒,本人使用的是Avast免费版。

Avast:用了好久的杀毒软件,简洁耐用。这里我给高级版的下载地址,因为可以免费试用一个月高级版,之后可以转免费版。

火绒:好评很多,感觉也不错。

2、清理软件推荐毒霸垃圾清理的单文件版。

3、工具软件推荐软媒魔方,里面很多功能可以看一下,包括Win7任务栏,去除快捷方式的箭头,修改右键菜单,文件解锁强制删除,自动填写登录密码,软件自启优化等等等等功能。

如果没需求之后就可以关掉自启和服务了。


六、移除小娜(看个人需求)

很多时候小娜并没有用,但是占用好多系统内存。下面介绍一个方法是最简单也最有效的,但是会因此使用不了搜索框。

1、(Win+X)-任务管理器,查看Cortana的进程,在子进程右键,打开程序位置。

2、在任务管理器结束Cortana的进程。

3、然后迅速回到资源管理器,重命名Cortana的文件夹,在末尾加上.bak,保存(速度要快)
然后小娜就没有了,干净利落!


七、安装基础软件,设置默认应用

列举本人的:
看图软件- 2345看图王优化版
音乐软件-网易云音乐
视频播放器- PotPlayer
压缩软件-Winrar
浏览器-Cent浏览器
Office-Microsoft Office

Windows的默认应用在:(Win+X)-设置-应用-默认应用



八、安装基础运行库

很多时候无法运行都是运行库的问题,基础运行库

大部分游戏运行库有官方支持,游戏运行库还请自行寻找。


九、设置主题背景



(Win+X)-设置-个性化
这是根据个人设置的,壁纸推荐建一个文件夹把壁纸放进去,然后设置图片播放文件夹。
背景推荐从背景色自动选取主题色,当然这要看个人喜好。

2、如果喜欢动态壁纸:

Wallpaper Engine 或者 UPUPOO

动态壁纸占用内存较多。

3、如果喜欢桌面插件

Rainmeter雨滴桌面,Fences桌面文件夹,Rolan快捷键启动器。

当然需要占用相应内存,我更习惯(Win+E),不需要任何插件。


十、资源管理器设置


1、效果展示

设备和驱动器排序方式为内容。

2、资源管理器界面美化。

打开OldNewExplorer,按需勾选设置项,然后点击安装。

3、隐藏OneDriver:

不需要OneDriver,可以移除它,但是移除之后在资源管理器仍然会有一个快捷方式。

这里给出解决办法。

(Win+R) 输入notepad确认,粘贴以下代码,另存为.reg文件,然后管理员运行,弹窗请确认。

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\\CLSID\\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\\ShellFolder]
"FolderValueFlags"=dword:00000028
"Attributes"=dword:f090004d

4、文件夹选项设定:

在控制面板找到文件资源管理器选项:进行设置,设置完成点击确定。

常规:

有的人习惯打开资源管理器的时候打开此电脑,在这里可以进行设置。

如果喜欢单击打开文件可以选择单击打开项目。

查看:这里是资源管理器的显示方式

如果涉电脑未深,推荐选中:隐藏受保护的系统文件、不显示隐藏的文件,文件夹或驱动器。

5、设置查看文件夹方式:

按个人喜好设置,有的人喜欢大图标,有的人喜欢小图标,我更喜欢设置为平铺。

打开磁盘根目录,Ctrl+鼠标右键-查看-平铺。

把此查看方式应用到所有子文件夹:

在Ctrl+鼠标右键属性-自定义-常规项目(点开然后选择常规项目),勾选“把此模版应用到所有子文件夹”点击确定。



十一、系统备份


1、备份注册表
不想做的可以跳过,这个是本人习惯。

(Win+R)输入regedit确认,文件-导出。

2、备份ESP

ESP是你电脑的引导分区,好多人只备份C盘,忽略了ESP。
我习惯使用PE在DiskGenius中进行备份。
右键ESP-备份分区到镜像文件-选择文件路径-开始。

3、备份C盘
DiskGenius中找到你的C盘右键,备份步骤同ESP。







本文提到的任何软件,有相对经济能力请支持正版。

转载请获本人授权。

最近做了一些系统和网络调优相关的测试,达到了期望的效果,有些感悟。同时,我也发现知乎上对Linux服务器低延迟技术的讨论比较欠缺(满嘴高并发现象);或者对现今cpu + 网卡的低延迟潜力认识不足(动辄FPGA现象),比如一篇知乎高赞的介绍FPGA的文章写到“从延迟上讲,网卡把数据包收到 CPU,CPU 再发给网卡,即使使用 DPDK 这样高性能的数据包处理框架,延迟也有 4~5 微秒。更严重的问题是,通用 CPU 的延迟不够稳定。例如当负载较高时,转发延迟可能升到几十微秒甚至更高”,刚好我前几天做过类似的性能测试,发现一个tcp或udp的echo server可以把网卡到网卡的延迟稳定在1微秒以内,不会比FPGA方案慢很多吧?

因此,我觉得有必要分享下自己的见解。总的来说,我打算分两篇文章讨论相关低延迟技术:

1)系统调优(本文):一些低延迟相关的Linux系统设置,和一些原则。

2)网络调优:使用solarflare网卡降低网络IO延迟

这里不打算介绍用户空间的延迟优化,因为太广泛了,另外我之前的文章也分享一些解决某类问题的低延迟类库。


说到低延迟,关键点不在低,而在稳定,稳定即可预期,可掌控,其对于诸如高频交易领域来说尤为重要。 而说到Linux的低延迟技术,一个不能不提的词是"kernel bypass",也就是绕过内核,为什么呢?因为内核处理不仅慢而且延迟不稳定。可以把操作系统想象成一个庞大的框架,它和其他软件框架并没有什么本质的不同,只不过更加底层更加复杂而已。既然是框架,就要考虑到通用性,需要满足各种对类型用户的需求,有时你只需要20%的功能,却只能take all。

因此我认为一个延迟要求很高(比如个位数微秒级延迟)的实时任务是不能触碰内核的,(当然在程序的启动初始化和停止阶段没有个要求,That's how linux works)。 这里的避免触碰是一个比bypass更高的要求:不能以任何方式进入内核,不能直接或间接的执行系统调用(trap),不能出现page fault(exception),不能被中断(interrupt)。trap和exception是主动进入内核的方式,可以在用户程序中避免,这里不深入讨论(比如在程序初始化阶段分配好所有需要的内存并keep的物理内存中;让其他非实时线程写日志文件等)。本文的关键点在于避免关键线程被中断,这是个比较难达到的要求,但是gain却不小,因为它是延迟稳定的关键点。即使中断发生时线程是空闲的,但重新回到用户态后cpu缓存被污染了,下一次处理请求的延迟也会变得不稳定。

不幸的是Linux并没有提供一个简单的选项让用户完全关闭中断,也不可能这么做(That's how linux works),我们只能想法设法避免让关键任务收到中断。我们知道,中断是cpu core收到的,我们可以让关键线程绑定在某个core上,然后避免各种中断源(IRQ)向这个core发送中断。绑定可以通过tasksetsched_setaffinity实现,这里不赘述。 避免IRQ向某个core发中断可以通过改写/proc/irq/*/smp_affinity来实现。例如整个系统有一块cpu共8个核,我们想对core 4~7屏蔽中断,只需把屏蔽中断的core(0 ~ 3)的mask "f"写入smp_affinity文件。这个操作对硬件中断(比如硬盘和网卡)都是有效的,但对软中断无效(比如local timer interrupt和work queue),对于work queue的屏蔽可以通过改写/sys/devices/virtual/workqueue/*/cpumask来实现,本例中还是写入"f"。

那么剩下的主要就是local timer interrupt(LOC in /proc/interrupts)了。Linux的scheduler time slice是通过LOC实现的,如果我们让线程独占一个core,就不需要scheduler在这个core上切换线程了,这是可以做到的:通过isolcpus系统启动选项隔离一些核,让它们只能被绑定的线程使用,同时,为了减少独占线程收到的LOC频率,我们还需要使用"adaptive-ticks"模式,这可以通过nohz_fullrcu_nocbs启动选项实现。本例中需要在系统启动选项加入isolcpus=4,5,6,7 nohz_full=4,5,6,7 rcu_nocbs=4,5,6,7 来使得4~7核变成adaptive-ticks。adaptive-ticks的效果是:如果core上的running task只有一个时,系统向其发送LOC的频率会降低成每秒一次,内核文档解释了不能完全屏蔽LOC的原因:"Some process-handling operations still require the occasional scheduling-clock tick. These operations include calculating CPU load, maintaining sched average, computing CFS entity vruntime, computing avenrun, and carrying out load balancing. They are currently accommodated by scheduling-clock tick every second or so. On-going work will eliminate the need even for these infrequent scheduling-clock ticks."。

至此,通过修改系统设置,我们能够把中断频率降低成每秒一次,这已经不错了。如果想做的更完美些,让关键线程长时间(比如几个小时)不收到任何中断,只能修改内核延长中断的发送周期。不同kernel版本相关代码有所差异,这里就不深入讨论。不过大家可能会顾虑:这样改变系统运行方式会不会导致什么问题呢?我的经验是,这有可能会影响某些功能的正常运转(如内核文档提到的那些),但我尚未发现程序和系统发生任何异常,说明这项内核修改至少不会影响我需要的功能,我会继续使用。

两个原则:

1)如果一件事情可以被delay一段时间,那它往往能够被delay的更久,因为它没那么重要。

2)不要为不使用的东西付费,对于性能优化来说尤为如此。


如何检测中断屏蔽的效果呢?可以watch/proc/interrupts文件的变化 。更好的方法是用简单的测试程序来验证延迟的稳定性:

#include <iostream>

uint64_t now() {
   return __builtin_ia32_rdtsc();
}

int main() {
  uint64_t last = now();
  while (true) {
    uint64_t cur = now();
    uint64_t diff = cur - last;
    if (diff > 300) {
      std::cout << "latency: " << diff << " cycles" << std::endl;
      cur = now();
    }
    last = cur;
  }
  return 0;
}

通过taskset绑定一个核运行程序,每进入一次内核会打印一条信息。


最后,除了进入内核以外,影响延迟稳定性的因素还有cache misstlb miss

对于减少cache miss,一方面需要优化程序,minimize memory footprint,或者说减少一个操作访问cache line的个数,一个缓存友好例子是一种能高速查找的自适应哈希表文章中的哈希表的实现方式。另一方面,可以通过分(lang)配(fei)硬件资源让关键线程占有更多的缓存,比如系统有两块CPU,每块8核,我们可以把第二块CPU的所有核都隔离掉,然后把关键线程绑定到其中的部分核上,可能系统只有一两个关键线程,但它们却能拥有整块CPU的L3 cache。

对于减少tlb miss,可以使用huge pages。

最近不少粉丝都在问一些电脑问题,主要问题是如何优化电脑?

阿虚用电脑也有十多年了,所以阿虚琢磨着出一期自己用电脑的心得吧,不会是最佳解决方案,但相信对你会有一定的帮助。

如何让电脑不卡?

这是个问题。

更新硬件的方式来提高电脑运行速度的方法阿虚就不说了(比如:换一个SSD硬盘,加一个内存条),阿虚下面单纯讲一些使用电脑上的经验。

如果你是笔记本电脑,记得把电源模式改为高性能。这个很大的影响了你电脑的运行速度。

在电脑屏幕右下角,右键电源图标——点击电源选项



一般默认情况,可能是平衡模式(可以减少耗电,但是会降低电脑性能),建议改为高性能



软件尽可能不要装C盘!不要装C盘!C盘!



许多人无论安装什么软件,都一股脑点击下一步,然而绝大部分软件又都是默认安装在C盘的。久而久之,有些人甚至会出现C盘「磁盘空间不足」的情况!你说这能不卡吗?(阿虚建议C盘至少留30G空间)

由于很多软件,默认的文件缓存目录也是C盘。(比如:音乐、影视软件,还有PS、PR、AE等软件)当你使用电脑时间越久,C盘堆积的垃圾文件就会越来越多。这是导致许多人电脑运行变慢的主要原因。

应该大部分同学电脑上都装了各种电脑卫士、电脑管家,比如360啊,腾讯啊什么的。

这些软件的确挺方便,能一个软件解决很多功能,但是这些软件的很多功能你平常根本用不上,就算是清理垃圾的功能你也不会随时使用吧?

但这些软件集各种功能于一身,功能一多,软件就会显得很臃肿,内容占用就会越多!

一个优化电脑的软件,却在后台占用你许多不必要的内存。



正确的使用习惯,在阿虚看来是

  • 大多数人,装一个纯粹的杀毒软件即可!(阿虚连杀毒软件都没装,但不建议学我)
  • 杀毒软件,目前阿虚推荐火绒(火绒官网:https://www.huorong.cn
  • 其余的电脑优化软件,使用绿色版或者单文件版。

绝大部分软件,建议使用绿色版,因为绿色版软件不会往系统注册表中写入东西,时间久了也不会拖慢系统运行速度。

  • 绿色版就是只有文件,没有往注册表里添加注册信息(同时没有卸载功能,不需要的时候直接删除文件即可),这是最重要的区别,不会使注册表越来越臃肿,导致系统速度变慢。
  • 两者本质上没有区别,工作原理相同,你说不需要象安装版往系统里加的东西就可以运行,实际上文件是必须的,不用往系统里添加的是注册信息。
  • PS:有一些注册信息是必须的,所以绿色软件有时功能不完全(比如PS绿色版)。
  • 必须的文件因为要独立运行,带到哪都能用,所以不会往系统里添加文件,上面说了一些注册表信息是必要的(比如所有付费软件的注册信息,部分软件的设置),不是所有的软件都可以做成绿色的,有些脱离了注册表无法运行,有些是为了防止拷贝。
以上来源:zhidao.baidu.com/questi



许多绿色版软件,还是有部分需要写入系统的东西。所以一般你会看见解压出来文件中,有个后缀为bat的批处理文件。

这种绿色版软件使用前,需要你右键这个bat文件,选择以管理员身份运行。记住:右键软件——管理员模式运行。(这样做的目的是以防运行bat文件时权限不够,无法执行某些命令)



一般,你在百度搜索软件的时候:输入软件名,然后空格,再加上绿色版三个字,最后点击搜索,就能轻松找到绿色版软件了。

下图为示例:



所有软件都换成绿色版的好处还有一点:就是以后面对90%的不好解决的电脑问题,都可以通过重装系统来解决,而且不耗费时间。(阿虚就经常这么干)

因为重装系统只是更改C盘的文件。所以重装对其他盘的文件是没有丝毫影响的。而绿色版软件,重装系统前后都是完全不影响软件使用的。

以往重装系统啊,你往往得花几个小时来重装软件。如果全换用绿色版软件,就再也没有这个问题了。

绿色软件配合阿虚之前提到过的同步盘,就算是直接换新电脑,也是立马就能衔接上工作。(想象一下U盘办公



先推荐一些常用系统优化工具

这是一个联想高级工程师独立开发的一键系统优化加速工具

点击下载:一键系统优化加速工具V1.37.1(联想高级工程师开发).exe

无需解压,无需安装,下载即用,对于大多数人,阿虚首推这个软件。



点击扫描后,再点击「立即优化」,即可轻松对系统设置、系统服务项、垃圾文件、开机启动项完成优化。



这个软件的清理功能一般,主要用来优化各种系统设置、系统服务项,所以一般只运行一次就行了

清理垃圾,阿虚还是主要推荐下面两款软件

点击下载:MacPaw CleanMyPC 1.9.9中文版.exe

推荐的第二款软件即是MacPaw 开发的PC 端的清理软件,CleanMyPC,极其简单干净的操作页面,却能解决最实际的需求

这款软件可以清理垃圾、清理注册表、卸载程序、关闭休眠程序、清理浏览器扩展插件、管理开机启动项、清理浏览记录、粉碎文件。(依次对应下图左边的功能)是阿虚常用的软件之一。



Wise Disk Cleaner,界面友好,功能强大,只做一件事:清理垃圾

上面的CleanMyPC就都能清理垃圾,为什么阿虚还要推荐这一个软件?因为每个软件的算法不同,单一软件很难清除完所有垃圾。所以一般阿虚都是CleanMyPC和Wise Disk Cleaner同时使用

官网:wisecleaner.com/wise-di

点击下载:Wise Disk Cleaner 10.1.5.762 绿色单文件版.exe





对电脑使用不太熟练的同学,阿虚推荐用上面两款软件就行了。

下面这款软件,功能强大,但是很多需要自己选择是否关闭、是否删除

建议对电脑稍微有一定了解的情况下才用下面这款软件

点击下载:flowus.cn/share/dbe188e

以下是初雨团队对Dism++在其官网的简介

  • 其实我们都是一些强迫症晚期患者,只想要找个轻巧、好使、透明、不流氓、不装可怜、不唠唠叨叨的实用工具。
  • 不过找了半天没找到,但是我们没有放弃治疗,用自己的双手初步实现了梦想,联手打造Dism++ —— 一个不为利益、不跟风、不做作、单纯为执着与激情而生的小工具。
  • 安得广厦千万间,大庇天下寒士俱欢颜!

免费,绿色,强大,一个软件就能实现空间回收(垃圾文件清理)、启动项管理、系统优化、驱动管理、文件关联管理。自定义化非常高的一款软件。



你得知道:无论是软件自身的卸载功能,还是Windows自带的卸载功能,在大多数情况下,都是卸载不干净的!

其实你稍微想想就明白,某些国产软件,卸载时候还各种理由求你不要卸载。你不选择一下的话,连卸载按钮都给你替换成重装按钮。

这种软件你还指望他能主动把自己卸载干净吗?



软件如果卸载不完全,会残留许多垃圾文件——包括了卸载后残留的注册表垃圾以及其他零碎的临时文件,这也是电脑越用越卡的主要原因之一

阿虚之所以强力推荐大家使用绿色版软件,就是因为绿色版软件不用安装,不会在系统中写入注册表信息,卸载时直接删除即可,不会产生垃圾文件而拖慢系统速度。

安卓手机也是类似Windows电脑,所以用久了就容易变卡(苹果手机的文件存储方式不一样,这也是苹果手机不容易卡的原因之一)

IObit Uninstaller是IObit公司开发的一款优秀的软件卸载利器。可以简单,轻松得帮你完全卸载软件

点击下载:IObit Uninstaller 便携绿色版.exe


这里推荐一款超强软件卸载神器:Revo Uninstaller

阿虚目前比较喜欢用这款软件

点击下载:Revo.Uninstaller.Pro.4.1.5 单文件版.exe

Revo Uninstaller Pro拥有先进智能扫描算法,提供三种卸载模式,能够在卸载软件的同时彻底有效地清除与之相关的垃圾/临时文件和注册表键值,能够强制卸载各种出错的软件。



相较IObit Uninstaller,Revo Uninstaller在软件卸载后,需要自己手动点击扫描,并手动删除卸载残留。

阿虚一般都是直接全选,删除。



阿虚不多推荐了,就这两款软件,任选其一即可。新手比较推荐IObit Uninstaller,更智能一点



今天暂时分享这些,电脑使用其实还有很多技巧,更多内容欢迎关注我公众号获取~

如果文中链接失效,公众号上都有原文的




相信大家都知道,系统桌面文件是默认保存在C盘,当桌面文件多了以后,C盘的空间越来越小,会影响电脑的流畅性与开机速度……万一系统损坏了,桌面文件也会丢失……因此,今天给各位玩家推荐一个,技术大咖经常性使用的电脑小技巧:如何更改Win10默认桌面文件夹路径。

一、首先在C盘以外,选择一个你想要用来存储文件的磁盘,这里以D盘为例:在D盘建立一个名为“Desktop”文件夹。

二、新建文件夹好了之后,接着鼠标右键点击右侧的“桌面”,弹窗选择“属性”。

三、弹出“属性”窗口后,切换到“位置”一栏,可以看到系统默认的桌面路径,点击“移动”就可以开始设置新的桌面文件保存路径。

四、弹出的窗口中,找到D盘的文件夹Desktop,选择好文件夹,点击“选择文件夹”。

五、完成后点击下方的“确定”,之后会看到一个“是否要将所要文件从原来位置移动到新位置”的提示,直接点击“是”就可以了,如下图所示。

以上就是Win10桌面文件路径移动教程,不但可以节省C盘的空间,而且,要是系统奔溃了保存在桌面的文件,也可以在其他盘上找回来,保障了数据安全,又不影响使用。

我们直接进入正题,用Dism++ 软件优化

1.下载Dism++最新版后打开选择专家模式,并选择系统优化项目

2.第一项是任务栏相关设置

3.这里隐藏了任务栏的Cortana、不折叠任务栏图标通知、隐藏了任务栏人脉按钮等,都是一些外观的设置

4.注意 :‘’安全警告”不要精简

这些设置可以加快系统响应速度,内置管理员账户的管理员批准模式可以解决用administrator账户无法使用磁贴应用的问题

5.可以关闭烦人的推送,以及关闭OneDrive和Cortan

6.可以提高文件管理器的运行效率

还可以关闭系统更新如果有重大补丁更新可以在开启,然后手动更新

7.通过上面的一系列优化之后,系统速度能快10%以上系统精简优化并不是越精简越好,适度精简有助于提高性能;这就是一些gho系统为什么安装后有一些组件或功能没有的原因。自己安装微软原版win10后这样优化精简也可以达到封装系统那种效果:也不会有封装系统的作者植入推广软件或垃圾主页,只不过麻烦一点相信你不会嫌麻烦。

也感谢大家看完希望对你有点帮助,不会安装系统的也可以在评论区滴滴。

最后附上官网Dism++下载地址

接上篇,驱动安装成功后,简单优化下系统,尊享丝滑。

1.关闭 Windows Defender及win10系统自动更新


①桌面左下角找到 win 图标,右键---运行

②在运行框中输入“gpedit.msc”点击进入

③如图所示 计算机配置-----管理模板-----Windows组件----Microsoft Defender 防病毒。

双击打开

④勾选“已启用”选项,就可以关闭Windows defender

还是这个页面, 找到 实时保护 点进去,同样的操作。

⑤关闭windows更新

回到③这个页面,在此页面找到 Windows更新,如图

点击进去,禁用它,最后应用并确定。

①还是右键win图标运行,输入 msconfig 点确定

②如图所示,最后点应用

顺便,勾选 无GUI引导,加快开机速度。

在桌面上找到 此电脑 右键----管理 点击。

然后如图所示,点开服务。

关闭并禁用这些服务

Connected User Experiences and Telemetry

一个微软操作系统外围辅助服务。这项服务除了收集数据之外,还兼有收集错误和崩溃信息的职责,因此对于微软改进系统也有重要的意义。如果你不介意微软收集这些信息,可以保持服务的开启状态。

Diagnostic Execution Service

系统诊断执行服务 没什么卵用

HomeGroup Listener和HomeGroupProvider

家庭组服务,没什么卵用.

windows server

如果不经常使用系统搜索就关闭它

Program CompatibilityAssistant Service

兼容助手服务,

SecurityCenter

安全中心服务,直接禁用

SysMain

这个服务如果电脑上全部都是固态,可以关闭,要是有机械的话,有一定的作用。

以上服务全部禁用。

如果选择 最佳性能的话,字体比较难看,看的不习惯,勾选 平滑字体边缘。其他的根据自己需要勾选,不在乎字体的话,直接 最佳性能

右键 此电脑---属性 点进去

选择 高级系统设置,然后 如图设置

顺便设置下 系统启动设置

把前面的 去掉,点确定。

桌面左下角 win 图标右键---运行----运行框输入--- netplwiz 确定

弹出下图

去掉 图上 ① 箭头所指的 。然后输入开机密码,点确定,应用。

清理垃圾软件,推荐使用 Dism++(链接就不放了,自行百度吧)

=====================================================

更简单的办法就是用 Dism++,随便优化下,系统安装2004最新版,也是稳得很

Dism++ | 全新的 Windows 实用工具


个人觉得这样优化,最适合自己,每个人要求不一样,需求不一样,做不到每个人都满意,仅做参考。

大概就是这样,这样优化完,固态开机9秒内。

win10目前是裸奔状态,可以安装 火绒,百度下载就好,习惯360安全卫士和腾讯安全管家 两大流氓的,千万不要安装到C盘,可以用他们优化下开机速度。把他们安装到D盘或者EFGH盘。系统C盘,最好不要放任何软件。

公司行政的小姐姐们总是形色匆匆地来向我求助,说C盘红啦,系统提示C盘空间不足啦,小姐姐们也不忘来的时候带个橘子或者饼干什么的,看着小姐姐们害怕又无助的表情,心生怜悯,于是我不得不多次放下手上的工作去救火。次数多了甚是烦躁(小姐姐们本身不烦,是系统盘不够用这件事儿很烦)。

今天,行政一大哥也风风火火来找我了,说C盘红了,想让“老中医”去给支支招。看着大哥憨厚而又狂躁的眼神,受不了了,我再次放下手头的工作,去给大哥救了一把火。

如此下去,老朽岂不成了伙夫?

授人以鱼不如授人以渔。想想作为公司资深“老中医”,我就写一个帖子交给行政部,顺便发到知乎,期望能帮到需要的人。

1.1 清除系统垃圾

一般C盘有几个G的系统日志、升级备份之类的文件,普通用户是可以放心删除的,因为这些文件对小白存在和不存在是一样的,可以认为是垃圾。

一张图清除C盘的系统垃圾文件

1.2 转移虚拟内存位置

默认系统的虚拟内存会建立在C盘上,虚拟内存一般会占用几个G,把它挪到C盘以外的盘上,会给C盘释放几个G,当然同时另一个盘会被占用几个G。为了解决C盘危机,挪出去是划得来的。

有很多朋友的电脑上是高速SSD固态硬盘和机械硬盘并存的,注意虚拟内存最好放在SSD的分区上,放在机械硬盘上虚拟内存性能会有所下降。

第1/2步:将虚拟内存在C盘所占的空间移除
第2/2步:把虚拟内存设置到C盘以外的分区上

1.3 转移大文件

默认【我的文档】下的文件都放在C盘,随着使用的日积月累,尤其那些喜欢把文件放在桌面的用户,以及使用微信产生的大量的图片、文档和视频缓存的人,很大程度是桌面文件、文档、下载文件、图片文件、音乐文件吃掉了你的C盘空间。

那我们把它的位置改一下吧。

以【桌面】为例说明挪“我的文档”的内容到非系统盘

小建议:

为了保持Windows文件的目录风格,可以直接改上面的盘符。像我直接把C改成D,然后直接点确定就可以了。当然他会问你挪不挪?那当然选择挪了。

除了桌面,剩下的“3D对象”、“视频”、“图片”、“文档”、“下载”、“音乐”都可以同样的操作挪到其他盘。一般情况下这么操作一次系统盘空间会大大增加。

一般给行政小姐姐的操作到这里就结束了,因为行政小姐姐们文档多,都是日积月累文件变多塞满系统盘的。

1.4 第三方软件“文件搬家”

对于上面几招还不能释放大量空间的,可以使用360、腾讯完全管家等第三方工具,里面大概有个叫“文件搬家”的小工具,可以把安装在C盘的程序挪到其他盘,但是他们都挪的很勉强,会在另一个分区建立一个独立的文件夹来放这些文件。我不喜欢这样的,我自己就是大师,就不请流氓了,所以也就不推荐大家了。

真的因为把很多软件安装到了C盘?那我建议你卸载软件重新装吧,装到其他盘,虽然多一点劳累,就当给自己教训了,不要轻易把大程序安装到C盘。。。

提示:下面的方法有资料丢失风险,建议使用之前备份好资料。
免责声明:本人保证所述文字真实、可信,经过本人实操截图而得,但本人无法涵盖所有可能的问题,因此对个人操作导致的数据丢失不负任何责任,请自行斟酌使用。

续第1节:

很多朋友用了上面的招数也没挤出多少空间,很可能他的C盘本身就小,对于Windows 10来说, 100G的C盘用着用着空间就捉襟见肘了,更不要说像公司大哥那样的C盘只有40G。。。那我们就给它们重新分个家,给C盘扩个容吧。

2.1 使用Windows自带的磁盘管理器来扩容

空间不可能无中生有。要想扩容,必先压榨别的分区的空间,下面就压榨D盘50G的空间出来扩给C盘。

通过压缩卷从D盘腾一点空间出来(注:挤出来的空间不能大于D分区空闲空间的总量)

有了空闲空间,下面给C盘扩容!

不好意思,各位看官,装逼失败,如下图。在我给大家演示的过程中,D盘压缩出来的空间不能通过“扩展卷”方式给C盘,原因是D盘在C盘后面,从D盘腾出来的空间又在D盘后面,对于C盘来说是一块“飞地”,无法纳入C盘版图。(关于地址空间的概念和访问的连续性我就不在这里说了,我们不讨论原理,大家也不想听)。

扩容失败的一张图

既然这样,事已至此,我们也不用慌,如果你能用上面的办法扩容那就扩,如果用不了我们往下看,用第三方软件把空间置换出来。把空闲的空间置换到C盘后面,让C盘能够将它纳入版图。

2.2 使用第三方软件【分区助手专业版 v6.2】调整分区扩容

百度网盘下载链接:

pan.baidu.com/s/1F09wZy,提取码:xss8

该软件无需安装,解压就可以使用,但是要【以管理员身份运行】打开软件。

2.2.1 调整/移动分区

上面已经在windows 10里面在D盘后面压缩出了50G的空间,我们通过调整/移动分区将D盘后面的50G飞地挪到C盘后面,如下图:

调整分区空间,把空白空间放到C盘后面
调整结束,提交后即可执行
修改分区有风险,请大家注意备份数据

执行的过程中可能会提醒你有程序在运行,可以选择“重启电脑”,分区工具会在重启后进入命令行,在熟悉而又陌生的“黑屏幕白字”的命令行里面操作这些。

重启后在命令行里面的操作(请耐心等待执行完成,请勿关机!!!)
重启后再次打开【分区助手专业版 v6.2】,发现空间已挪到C盘后面了

2.2.2 扩展C盘

把C盘后面的自由空间纳入到C盘中。选择C盘,点击左侧的【调整/移动分区】

把后面的空白全纳入进来
调整后提交即可

如果提示文件占用不能在Windows下操作,也不用担心,同样重启电脑,在命令行完成。也不要被命令行吓到了,这里的命令行你只要坐在那里看就行了,不用做任何操作。

C盘扩容中

执行完重启电脑,进入系统看看C盘有没有扩容。

在【磁盘管理器】中看见扩容成功

好了,以上就是基本版和高级版的解决C盘空间不足问题的方法。行政小姐姐们学会之后再也不用来找我了。

希望能帮大家解决问题,同时欢迎点赞,欢迎收藏,期待关注,期待回访。

新买回来的电脑,不要忘记做以下的这些事!毕竟是花了很多钱钱买回来,到手后还是需要做一些检查的~

首先是开机前的检查,其次是开机后的设置,例如系统激活、Office激活、关闭广告弹窗等设置。做好这些步骤,电脑的使用体验感也会倍增!

开机前的检查

检查电脑有无掉漆、划痕、各个接口有无生锈;

清点随机标配的电源适配器、保修卡、鼠标、说明书以及其他配件是否齐全;

然后接通电源开机进入系统,有些电脑没有预装windows,需要自己安装。安装系统的方法可以参考本站的置顶文章。

一般新电脑进入windows操作系统需要先创建账户、设置区域等信息。注意!在连接网络的步骤选择“跳过”,以免Windows系统激活之后,商家就不支持退货了。

开机后的设置

一、对比硬件参数

进入系统后,我们通过U盘拷贝“鲁大师”工具到新电脑上安装。

该软件可以检测出当前设备的硬件详细信息,包括处理器、内存、显卡、主板等参数。

对比检测后的结果,以免遇到不良商家篡改系统配置信息。

一般情况下都不会有什么问题,如果你不放心,也可以参考以下2个重要的指标:

1.硬盘已使用时间能够真实反映出当前计算机的使用时间,新机的使用时间一般都应该在10小时以下。

2.新笔记本的电池损耗值正常在5%以内。

二、激活系统和Office

预装了windows系统的电脑要在有网的环境下激活,点击“开始”-“设置”—“更新和安全”-“激活”,大概10分钟左右就激活成功了。

Windows系统已经激活好后,就可以开始激活office。

单击“开始”-选择“word”打开,没有账户则根据提示创建账户,有账户则点击登陆。

登陆账户后,点击“激活office”,按提示完成设置。之后进入到如下图界面,点击左下角的“账户”查看激活状态,只要出现“产品已激活”就表示office激活成功了。

若仍提示“需要激活”,请点击“Office更新”后再查看激活状态。

三、硬盘分区

新电脑一般只有C盘一个分区,大家可以根据自己的使用习惯创建分区,并为这些分区做好分类。例如C盘(放系统)、D盘(放软件)、E盘(放资料)。

四、卸载软件和禁用开机自启动

新电脑预装了很多软件,我们可以将平时不怎么用的软件卸载掉。

具体操作方法:按下win+i打开windows设置,点击“应用”,选择一些用不上的软件卸载。

删减了软件之后,我们需要为电脑安装微信、浏览器等一些要用的应用程序。

但是,电脑安装的软件是默认跟随系统开机自启动的,软件安装越多开机也会越慢。

这时候我们不妨将多余的开机自启动禁用掉,操作方法也很简单:

同时按下“control+shift+esc”组合键打开任务管理器,切换到“启动”下,这里的应用都是自启动的状态,现在将不需要跟随开机启动的软件禁用即可。

五、阻止广告弹窗

也有很多用户吐槽过,新电脑使用没多久,就开始出现各种弹窗。不关闭的话就会一直在电脑上闪烁,如果直接关闭又可能会进入一些不知名的网站中去。

这时候,在电脑安装“火绒安全”软件,开启广告弹窗拦截的功能。这个方法可以有效阻止广告内容!

好了~进行到这里也就大致完成了新机的检查和优化任务了。你们还会为新电脑做哪些优化呢?

分享人:陈家铭(腾讯互娱魔方工作室群专家工程师)、胡有为(腾讯互娱天美工作室群高级工程师)


我是腾讯魔方工作室群的陈家铭,今天和我的搭档、天美工作室群的胡有为一起,分享大面积深度可交互的水体仿真和渲染技术Aqua。




我和有为来自两个部门,是什么原因使我们一起合作研究这个水体方案呢?因为我们参加了腾讯游戏举办的开源计划Tech Future,目的是加强内部技术交流,推进前沿游戏技术开发。Aqua就是其中一个项目,它的的目标是研究可交互的水体仿真和渲染技术,由来自不同部门、岗位的小伙伴们,经过一年时间的业务时间开发,做出了一些成果,在本次大会分享。



水体的仿真和渲染一直以来都是经常被研究的课题,比如育碧《刺客信条》的海洋,顽皮狗《神秘海域》系列中的水体,虚幻引擎 4.26版本发布的水体系统。

虚幻引擎的水体系统,和我们的目标比较接近,是在编辑时首先以曲线定义好各种水体范围,然后在运行时通过一个四叉树来构造水体的Mesh进行绘制。这个系统的功能很强大,但是跟我们希望做的全动态水体有点差异, 比如说:我们希望可以做到下雨的时候造成洪水,把整个场景淹没。又或者玩家可以通过技能,随意把水放到任何一个地方。



所以,Aqua团队希望在这方面有所突破,开发了一套方案,并且制作了一个 tech demo。demo 里,可以看到的水体范围是1km x 1km, 而仿真的精度能达到 25cm, 渲染精度能做到6.5cm,玩家可以像刚才提到的用技能在场景中喷水,并且把篝火弄灭,同时喷出来的水也能留在场景里面。除了一些图形效果外,我们也实现了像载具、浮力等需要跟CPU沟通的一些特性,主要是为了验证方案的实用性。也可以在demo里看到,下雨会导致水位上升,然后洪水把场景淹没的一个事件。还有,除了可以模拟湖泊外,还可以模拟河流、海洋。



Aqua背后的原理是怎样的呢?先讲讲 Aqua 的仿真算法选形。在游戏里面常见的水体算法有以下几:

PBD/SPH:通过粒子来最真实地模拟水体动态,一般都需要一个很巨大数量的粒子。所以当我们应用在大面积水体里面,比如说几百米,不论是仿真或者渲染要解决的性能问题都是非常困难。

Wave Particles:它的思路是用一个个粒子来代表一个波浪(Wave),然后把所有波浪都转成高度图来进行渲染,好处是仿真效果很可控,但是较难去模拟水体容量的改变。

网格法:最传统的,虽然它不能像 SPH 一样可以支持水躍 (Hydraulic jump),但大部份水体的特性都能够模拟出来,而且它有很好的特性和伸缩性。考虑到我们目标是要支持好几百米以上的超大范围,Aqua 最终选择了网格法作为方案基础。

但是不能简单用很高分辨率的网格进行仿真,因为内存、计算量在一般的 GPU 上都会扛不住。因此我们借鉴了Clip mapping 的原理来进行多层级仿真。思路是把整个仿真范围以不同精度的网格来覆盖,去掉一些肉眼看不到的细节来换取性能;每层 Clip 的中心大概与相机对齐,水体离相机越近便会有越高的精度。我们从面积最大的一层开始,之后就把图中红色的边缘部份同步给下一层;就能把 Clip 外部的重要影响传递进去。



整个系统的流程大概这样:每一层 clip 都会分为“数据收集”和“仿真”两个阶段,首先我们会收集clip范围内的仿真输入,包括场景或者地形的高度图,主要是用来跟水体进行遮挡或者碰撞。此外,还会收集一系列额外的仿真输入,同时转成贴图,以便给后面的 GPU 仿真使用。

接着,我们会利用 Compute Shader 来进行仿真的解算;我们实现了两种网格算法,分别是 LBM 和 Pipe Water, 这个我们在后面会有进一步的去分享。为了避免水体的速度太快而超出 CFL 条件,我们还要考虑 sub-stepping 的支持,通过缩小 delta time 来提升仿真的稳定性。完成了一级 clip 的仿真后,我们会进行边缘状态的传递。如此类推,当所有 clips 完成仿真之后,会把结果导出到一个TextureArray或者TextureAtlas里面,再交给渲染模块进行绘制。



刚才提到我们需要收集场景或者是地形的高度图,实际上是通过虚幻的 SceneCapture功能来达成。用户预先定义好仿真在世界空间最小和最大的高度,当相机在水平移动超过一个阈值之后,我们会在最高点,从上往下拍一张深度图,再把深度反转,加上最低点的高度,就能得到场景朝上一面的高度。

另外,我们还要收集一系列额外的仿真输入,像水的容量或者速度的影响,这里的难点是如何把各种各样的影响统一成固定的输入,以便给 GPU 仿真使用。



仿真算法的相关内容:到目前为止,我们实现了PipeWater和LBM两种网格算法,由于时间关系,细节参考下图所列的相关文章。虽然两个算法的公式都不太一样,但都是在求格子某几个特定方向的水体流量 F_i,比如说 Pipe 是求上下左右 4个方向,而 LBM 是求 D2Q9 中的9 个方向。仿真的 CS 会通过当前帧的 F_i , 加上与相邻格子的高度差、黏度、引力等等参数来算出下一帧的 F_i ,这样不停迭代。仿真 CS 会用 structured buffer 来保存 F_i, 把中间数据,像容量数据速度导出给渲染使用。



在开始的时侯,我们提到方案中有一个边缘状态传递的操作,所谓的边缘状态就是指每一层 Clip 边界上的 F_i。在每一层 Clip 开始仿真之前,我们都必须要从上一层把对应这一层的边界 2 个格子宽度的 F_i 拷过来。这样我们就可以把 clip 范围以外的影响传递到这一层的 clip 里面。以下面两个视频为例,第一个视频演示了状态传递关闭,水就流不进场境中心的区域。而第二个视频里因为打开了状态传递,水就能正常流到场景中心里面了。

虽然我们用了多层级的策略来增加仿真的范围,但面对好几公里的超大场景,需要用另外一个技巧来增量去扩展仿真范围。我们把这个方法称成Scroll Update或者是 Sliding Window。首先每层 Clip 各自与相机对齐中心,这样当相机平移后就让 clip 的所覆盖范围也会自动跟随着去更新。由于覆盖范围有所更变,我们需要把更新前的 F_i, 按世界坐标拷到新的格子里,相机位置会按格子大小进行 snapping, 避免因为拷贝F_i时候造成跳变。为了避免太频密的更新,我们会等相机超过多个格子才触发更新。在移动方向出现 Cache miss 区域, 我们可以从面积较大的一级Clip 去读取 F_i,提高稳定性。



跟一般的物理仿真一样,当水体流动速度太快,就很容易超出了 CFL 条件就会导致数值溢出的情况 (下图爆炸的水体)。这个在仿真精度提高的时候特别容易出现,因为仿真公式中的delta x相对地降低了, 速度就很容易超出Cmax的限制。所以只能通过 sub stepping 来降低 delta t 来解决,简单说就是在一帧里面多跑好几次的仿真。但这样对性能不太友好,因为计算量直接翻了好几倍。我们观察到,在多层级的方案中每层 Clip 的 delta x 都会增加了一倍,这就意味着Sub-step 次数可以减半。通过这样的优化,跟原来不分层级来比较,可以降低大概 ~90% 左右的计算量。



最后,我们看看多层级仿真的效果比较:左图只有一级,而右图是分了两级来进行仿真,可以看到效果都是很接近的。而从我们 tech demo 的数据里面去看到, 多层级仿真不论在内存和性能上都有明显提升。




接下来交给有为,介绍水体仿真的作用器系统和渲染部分。接下来会向大家介绍我们开发作用器系统的目的和挑战,以及如何解耦仿真,以及如何自定义自己的作用器材质,最后我们会展示一些Demo实际案例。

其实不论是LBM仿真算法还是Pipe仿真算法,本质上都是在计算水体高度场和速度场,假如没有其他的因素干扰,仿真结果最终会趋向平稳。

但是,如果在计算的过程中加入一些外部影响的话,就可以得到一些交互式的结果,比如角色在河里游泳产生的水波,以及下雨产生的涟漪,海风吹起的海浪等等,这些都是交互仿真,那我们如何实现这些交互仿真呢?答案就是作用器。



我们曾经想过让作用器直接参与仿真ComputeShader的计算,但是这样会导致一个问题:作用器种类是非常多的,每个作用器都有自己的算法实现,这导致很难直接在仿真阶段通过一个统一的函数入口去直接影响仿真结果。这会使得仿真的shader变得及其复杂,也不方便以后的管理和维护。

于是我们使用了一个解耦手段,就是将所有作用器的结果都输出到作用图中,对于所有的作用器,即便他们的算法实现不同,但他们都输出统一的结果,就是刚体入水深度、速度和体积,然后我们会把这些结果分别保存在作用图的RGBA通道里面。然后我们就可以在LBM仿真或者是Pipe仿真的时候去采样这个RT作用图,分别将RGBA通道数据取出来去影响各个仿真参数,完成交互仿真过程。



这里分享一个比较重要的内容,就是我们的作用器系统框架,该系统首先会每帧收集当前区域内有效的作用器,然后同时更新这些作用器Gameplay。然后收集它们产生的Instance信息,包括位置、大小、自定义数据等。同时会收集所有作用器可能访问的uniform Buffer。包括上一帧的仿真高度场、速度场、场景高度,以及自定义贴图数据等。然后通过Draw Instance方式,将每个作用器以相同材质进行合批渲染到四边形的方式绘制到RT上,最终每个作用器统一的输出体积,XY方向速度和刚体数据四个结果,分别保存到贴图的RGBA通道。那么对不同的仿真算法可以访问这个RT,对仿真结果加上外部影响。因为RT上输出的是统一的物理结果,所以,不论哪种仿真算法都可以使用,而无须关心作用器的类别,达到解耦的目的。



那如何让使用者快速开发属于他自己的作用器呢?最初的设想是,让TA或者程序能像开发材质一样,在材质编辑器中通过连线的方式就可以实现自己的作用器算法,我们称之为作用器材质。如图所示,目前开放项目中已经通过自定义的方式实现了一部分常用作用器材质。



同时为了丰富高度自定义内容,我们也封装了很多材质函数,以供开发者使用,比如访问每个作用器自定义的数据,uniform buffer数据,高度场,速度场贴图数据等。都能在材质编辑器中拖入使用。可以看到下面的截图,它是一个水源作用器的实现过程。



大量不同作用器材质的使用会导致drawcall数量增加的问题,那么我们如何解决这个问题呢?刚刚的分享当中我已经提到了,我们这里也会对相同材质的作用器进行合批处理。我们可以看到截图里面,在开放项目中,我们大量使用了作用器去模拟水源,波浪等,但最终的drawcall调用次数只有3次。



这里我们截取了开放项目中部分的作用器效果示例。可以看到借助作用器框架,可以方便的自定义实现多种Affector Material与水体进行交互的Gameplay玩法。




这个主题我们会向大家分享以往的传统做法,然后我们如何创造性地应用CDLOD来实现GPU驱动的水体网格渲染,包括如何在GPU上构建四叉树,如何实现遮挡剔除、超高网格密度、顶点变形等。传统的水体网格渲染,我们都知道我们一般会使用一个平面网格,加一个高度图来还原水面的波浪运动。在移动端甚至不需要真实的波浪,而是仅仅通过法线和UV动画来模拟波浪。



实现算法就是我们去还原波浪的高度以及还原顶点的位置,很简单,我们只需要在VertexShader中采样高度图,来还原顶点的Z坐标值。并通过采样邻近高度场数据来重新计算每个顶点的切线空间,最后把顶点的切线空间插值到光栅化阶段。



在实现GPU驱动之前,我们也调研了UE4.26 的水体插件,其中截帧分析了海洋的例子,可以看到,Unreal为了表现不同的海洋网格密度,它使用了6种不同的网格拓扑结构。虽然用了同一个水体材质,并且instance方式绘制,但也产生了6DrawCall。而且,UE4.26的水体分为海洋,河流和湖泊不同的水体Actor,这也会导致DrawCall数量的增加。另外UE4.26的水体是以CPU的方式驱动,而我们的目的是做GPU Driven。



最终我们在方案的选择上,我们采用了CDLOD的技术,CDLOD全称是基于连续距离的细节等级。它本来是用来解决大世界地形渲染优化问题的,我们利用这次机会,将它很好的实践到了大型水体渲染当中。CDLOD它有很多优点,它具有变化平滑,不会产生裂缝,Lod之间等级差不超过1的特点,并且非常适合做基于四叉树节点的剔除。



在GPU上面去构建四叉树的算法原理其实就是一个自顶而下的过程,从根节点开始,每个根节点是ComputeShader中的一个线程。如果当前节点在递归的这一级,又在下一级,它就确定了这个Quad。如果即在当前递归的这一级,又在下一级,那么意味着子节点需要继续递归到更低级别去确定,如此循环往复最终递归到0级。在GPU上构建去四叉树会遇到比较多的问题,我们遇到的第一个问题,首先在ComputeShader上面是不能使用递归函数的,它有递归函数使用的限制。



然后,我们如果想跳过这个限制,比如在shader代码中写大量的嵌套循环来解决递归函数问题,又会使得shader变得超级复杂,也会将寄存器耗尽。而且,一般的构建过程当中,递归复杂度会随着每一级递减,也就是说,根节点那一级他是最复杂的,也是最耗时的,0级是最不耗时的,如果我们把所有的级别都用统一的shader代码,就不能很好的平均每个线程执行时间。

为了解决这个问题,我们采用了分批次执行ComputeShader,每一级构建都会有自己对应的ComputeShader变种。每次使用上一次构建未确定的节点的输出作为这次的输入,这样使得每一次构建都只关心它当前这一级,从而大大降低了shader复杂度,平均了线程间的执行时间。



在构建的过程当中,我们也会先判断四叉树节点是不是应该被剔除,以减少Instance数量。通过采样水面高度的仿真结果,我们可以构建一个节点内的Quad内的Min/Max Height信息,从而构建一个WorldSpace下面的立方体。我们的剔除分为两种,一种是视锥剔除,另外一种是HZB剔除。视锥剔除会判断立方体的8顶点是否在裁剪空间内,而HZB则根据立方体的屏幕空间尺寸选择合适的Z-buffer mipmap做深度判断进行剔除。



对于构建好的节点,如果直接渲染的话,其密度是很低的,那么我们如何去构建一个高密度的网格呢?如下图所示,颜色相同的区域具有相同的网格密度。这里我们使用了2种网格密度,预先生成了2种面片mesh,第二面片的顶点数是第一个的1/4。

以全尺寸32和半尺寸16为例,我们去拿32和16去填充非边界和边界的四叉树节点,通过这种方法,我们仅使用2种拓扑结构就可以表达多种网格密度,DrawCall数量最大为2。



最终渲染的时候,最关键的就是要确定哪些顶点是需要变形,我们会为每一级设定一个当前这一级对应的节点尺寸大小的变形区域,处于区域内的顶点将进行变形。因为之前按照2的幂次方规则,使用了2种不同的面片进行网格密度填充,所以这些面片的顶点位置是奇数的是需要变形的。



另外我们也总结了构建分辨率和该分辨率下对应下的构建消耗时间对照表,无论场景多大,我们的构建四叉树花销的消耗时间只与构建分辨率有关,这样可以稳定性能上限。构建分辨率和网格密度可以随意搭配,根据实际项目需要进行配置,达到性能和效果的平衡。在目前的开源项目中,以512的构建分辨率+32的网格密度作为默认配置,如果想要性能更好,可以选择256 +16甚至更低。但是这样会导致网格精度会下降,可能会出现锯齿、走样。



最后我们来看下实际Demo中的效果,角色近处始终维持比较高的网格密度,而远处比较稀疏的网格会随着角色摄像机移动而进行平滑过渡。




接下来介绍如何改进UE4原生高度混合算法,并在此基础上实现静态浅水,然后结合仿真结果进一步实现了动态浅水。最后我们将展示在游戏Gameplay过程中的实际效果。

开放世界除了海洋,湖泊,河流这些常规水体。浅水也是一个很重要的能体现环境细节表达,特别是池塘洼地,雨后积水的路面。UE4的地形渲染,我们知道都是多层Layer进行Blend的结果。其中的基于高度的混合,可以让地表表现出缝隙或者低矮处混合。于是,我们设想在Landscape中通过插入一个浅水层,与其他层去做Height Blend,以表达浅水效果。



先来分析下UE原生的heightblend算法,这个算法很简单,它将每层的权重乘以高度值,然后累加,再归一化百分比,最后混合每个层的结果。这个算法很简单,但是它导致不同layer在整个权重区间都在Blend,效果显得很脏。

Layer weight 和 height map value 数值空间在[0,1]范围,这个范围很小,不是真实物理单位,它会丢失计算精度。并且在接缝处无法实现均值过渡,以及无法控制过渡阈值。

下图右侧是这个算法的原生效果。改进的做法,第一步把高度值映射到真实物理空间,然后乘以对应的权重,接下来我们会筛选一个权重最大的层,也就是最高的层。然后将每层权重与最高层的差值除以一个过渡阈值,这样就得到一个平滑过渡的权重,最后将这个平滑过渡的权重去做归一化百分比,最后混合每层得结果。这个算法的优点在于,首先将在[0,1]的height map value 映射到实际物理单位下,扩大了计算精度。在接缝的地方会是一个趋向于平均实现了均值过渡,以及可以控制过渡阈值。我们可以看到右边的截图是改进后的效果,可以看到基本达到了做浅水的要求。



另外很重要的是,我们不希望浅水的HeightBlend过程被固定死在C++代码中,而是开放让美术或者TA能在材质编辑器中通过连线的方式去进行编辑。UE默认的地表材质节点,Layer Blend是无法解耦浅水和其他层的混合操作的。所以,我们开发了自己的材质节点叫做Height Blend。可以看到截图里面,我们自己开发的这个节点除了输出其他层的混合结果以外,会将浅水层的权重信息单独输出,这样我们便能在材质中控制最终浅水的混合效果。



我们把最终的浅水混合操作都封装在了一个材质函数中,之前我们有提到,我们开发了一个自己的地表材质节点,它会将浅水层的权重单独输出,我们拿到这个权重后,就可以分别去混合浅水的颜色,法线和PBR信息了。法线和PBR的混合比较简单 就用了比较常规线性插值,而颜色方面我们则考虑了干燥地表向潮湿区域过渡的效果,以及潮湿区域向浅水过渡的效果。



刚才讲的其实都是静态浅水,进一步增加动态浅水,我们又加入了LBM的仿真结果,下图左侧是加入了LBM结果后的效果。我们把LBM的仿真结果去影响高度混合的高度值,可以看到它与周围环境产生了交互效果,并且真实反应了HeightBlend。然后,我们也测试了Pipe仿真和Rain Affector一起作用的效果,可以看到除了表面涟漪以外,还可以看到下图右侧,积水体积是不一样的,从而真实反应了仿真对积水体积的影响。



最后,是一些Gameplay中的有趣应用。可以看到主角在游戏世界中可以任意释放技能,这个技能可以在地表上残留一层浅水。浅水和地表形成高度混合的侵蚀效果,并且浅水会随时间慢慢吸收掉。接下来由家铭继续分享。



刚才了解到水体基础绘制的原理,现在会进一步讲解仿真结果是如何应用到更多水体的细节效果里。首先是水体表面的细节法线,有了细节法线,水流动的感觉更加强烈了;而这个效果也不难去实现的,我们只需要利用水体的速度场当作是 flowmap 去采样Detail Normal的就可以了。由于仿真出来的速度是在世界空间里面定义的,我们需要进行一个简单的 缩放 和 Clamp的操作。另外我们也需要考虑到速度为零的时侯把细节法线 Flatten。



还有就是泡沫效果, 跟其他方案通过分析水体高度图的 Jacobian 不一样。我们发现水体出现碰撞的地方通常都会有比较高的旋度,由于我们是二维的速度场,所以算出来的旋度是一个纯量。因此我们可以把旋度视为左边的公式的一个2维 旋度的计算方法, 在里面f 就是速度是x坐标 ; 而g就是速度的y 坐标; 而k就是一个c轴,可以忽略。我们再一次把速度场当成是 flow map 去采样泡沫的贴图,再乘以遮罩之后就能得到下图效果。



除了水体表面的效果外,水体周边的物体也会因为沾到水而改变材质颜色。为了计算沾水的程度,我们会利用一个 double buffering 的技巧。首先我们把当前帧 Buffer1 的水体高度拷到 Buffer2 里面, 然后读取上一帧Buffer2时候保存的高度,做一个缩减,再跟新的水体高度取 Max 再放回Buffer 1里面 所记录的水体高度就可以算出一个沾水权重。在渲染场景物体的时侯,我们会利用物体的世界坐标的C去减去Buffer 1 所记录的水体高度就能算出一个沾水权重。物体计算光照的时候PBR 参数,就利用这个权重从干和湿两组 Preset里面去插值出来。



还有是一个GPU 粒子与水体交互的例子。在视频里面演示的落叶效果不仅可以漂浮在水上,也可以随着波浪而旋转。这个效果的 粒子系统里面,每个粒子可以分为:掉落、漂浮还有消失三个状态。掉落时粒子会以 场景高度 和 水体高度 判断它是否已经掉落到水里面,如果是就切换到漂浮状态。漂浮时就简单的以水体高度作为它在世界空间里面的高度;还加上之前提到的旋度来控制叶子旋转。假如粒子是掉落到地上它就会变成一个消失,就是简单的把它设成一个透明,而后在等好几帧让粒子系统让它回收到池子里面就可以了。



再分享两个与水体高度有关的后处理效果;首先是 WaterLine ,这个效果会出现在水面跟水底交接的边缘部分。而它的思路就是在屏幕空间去找出接近水面的像素,再插值成WaterLine的颜色。利用投影距阵,我们可以计算 Near Plane 上每像素的世界坐标, 再用这坐标去采样水体高度, 这样我们就可以算出 Near Plane 对应像素与水面的距离,再把这个距离通过 falloff的函数 算出一个插值的权重就能得出左边截图的WaterLine 效果。



延伸刚才 Water Line 的思路,我们可以算出在视线上不同距离的世界坐标, WP利用WP我们就可以通过一些噪声 或者是水体压场模拟出该点的一些Scattering的亮度。再以WP采样水体的高度,我们就可以知道这一点在水下深度,再放到一个 falloff的函数里面就可以算出因为这个水深而做成的散射的缩减。这样,我们在视线上 Ray March 4 个点,同时算出它散射的一个积分,就能得到视频里的 Light Shafts 效果。



最后要分享的是跟玩法里面有紧密关系的浮力效果。有别于之前介绍的,浮力是在 CPU 上计算再给到物理引擎的刚体上。根据公式,浮力跟物体浸在水中的体积有关,所以我们需要在 CPU 访问物体位置对应的水深来算出它浸入体积。我们需要一个有效的机制从 GPU 里读取仿真结果,因此 Aqua 实现了一个延迟一帧的 GPU 读取功能。大概的流程是我们会在每帧都先记录所需要查询的位置,之后合批发给一个 CS 从Texture Atlas 中读取仿真结果并保存到一张分辨率很低的 Staging RT 里。等 CS Dispatch 完成之后我们才进行 read back, 最后在通过下一帧 C++ 回调来通知查询结果。这样就是可以尽量降低GPU 读取所带来的带宽消耗和延迟。有了水深,我就可以计算浮力。在 tech demo 里的浮木就是利用这个 GPU 读取框架来计算木头两端的浮力,再以AddImpluseAtLocation 应用到木头的刚体上。此外,当木头每一端检查到它是浸在水里,我们会用读取到的水体速度在这一端在给一道力;这样就能做出刚体随水流漂浮的一个效果了。



今天我们为大家分享了 Aqua 团队所开发的开放世界水体方案,里面包括了多层级仿真系统、作用器系统、GPU Driven 的 CDLOD 水体渲染;还有浅水效果渲染,以及各样的仿真结果应用。在经历了一年不长也不短的开发,Aqua 支持了不少功能和特性,但当中也有不完美或者可以续继优化的地方。比如说:我们目前还没有做音效的支持;又或者是方案还没可以支持像地穴这种复杂地形的水体模拟。希望后面我们有机会再继续优化和打磨 Aqua, 让它变得更尽善尽美。


平台注册入口