×

内核调校

华为nova3如何快速省电?Visual Studio Debug下的Attach Process是什么原理

admin admin 发表于2023-03-18 11:54:22 浏览33 评论0

抢沙发发表评论

本文目录

华为nova3如何快速省电

关于省电这个话题我有很多要讲,不单单针对华为nova3,省电来说一般的从系统级来说,一般从几个方面入手。系统级的省电应用就没必要说,无非是调整屏幕亮度,关闭蓝牙 NFC GPS 震动等,关键是清理后台应用数量。就算做到这些还是感觉电量下的飞快,怀疑电池的损耗,其实对我个人来讲,省电无非是下面两点。

1 关闭应用程序的无限制唤醒,中国的软件生态圈可以用混乱来形容,充斥太多的流氓软件,这里包括BAT三家,无意义的唤醒,没必要的权限索取,一个日历的APP居然还要打电话的权限!这里我推荐下载Google play上面的应用,google play有应用审查,流氓软件不会上架,就拿微信来说,对于Google play就是两个版本。

2 如果有root权限,那就更好了,有太多的压制流氓软件的方法,绿色守护,黑域,写轮眼,如果有一点的玩机经验推荐去酷安学习。省电的还有一个重要元素那就是内核。也就是处理器的调节。推荐使用内核调校,提升处理器性能的同时,还可以针对一些场景来设置CPU的工作范围达到省电目的。

Visual Studio Debug下的Attach Process是什么原理

所谓的附加实际上是附加调试器,首先CPU必须支持调试,其次windows有用户模式调试框架和和内核调试器,还有最原始但是也是最有效的SEH,当程序出现异常时候windows会首先寻找位于SEH中注册的函数,如果SEH未注册或者未处理异常,则寻找是否存在用户模式调试器,如果存在通过消息通知调试器程序下一步的动作,在用户模式下winodws用DebugActiveProcess函数给程序附加调试器,一旦附加成功,程序就进入了调试模式,该模式在_EROCESS结构有标志位,具体应该是在TEB中。处于调试模式的进程必须拥有调试循环,因为程序运如果遇到异常则需要通知调试器,如果没有调试循环处理调试事件那么进程会一直被系统Suspend,调试循环中调试器通过WaitForDebugEvent函数接受来自程序各种调试事件,并且处理调试事件以后调试器必须通过ContinueDebugEvent才能恢复被调试程序的运行。

PS:至于单步调试是如何实现的,这个依赖CPU的EFLAG里面的IF和TF标志位,调试器还涉及到线程的挂起和恢复,涉及到程序控制权在系统调试自身之间转移,还有消息在三者之间的传递,这就要涉及到windows的系统机制了,APC/DPC在线程调度中的作用等等..