安卓4.x以上电力系统调频具备cpu调频功能吗

查看: 4023|回复: 17
关于魔趣5.X/4.4使用一段时间发热后,CPU自动到最低频率降频导致卡顿的解决办法
阅读权限10
在线时间 小时
TA的每日心情慵懒 03:17签到天数: 2 天连续签到: 1 天[LV.1]初来乍到
当前用户组为 整装待发当前积分为 23, 升到下一级还需要 27 点。
来自移动版
本帖最后由 enjoyMTXCL 于
16:15 编辑
建议使用电脑版观看!!!!
如题,这个问题曾经困扰了我许久,通过查阅资料,和亲自实践,得出解决办法!!!
需要的软件
es文件管理器
安卓调谐器:3C Toolbox(Android Tuner)
设备控制:Device Control
这3款软件酷安网都有,直接复制搜索就可以了
效果图 我设置的最高频率为1.4Ghz
原理:通过删除CPU温控文件来阻止CPU过热降频,但是,仅仅删除文件无法达成目的,需要软件配合
第一步,首先进入es文件管理器(RE也可以),删除如下文件
\system\etc\thermal-engine-8226.conf
\system\bin\thermal-engine
第二步:打开设备控制:Device Control(每次重启,关机都需要执行第二步)1.2.3.4.
第三步;打开安卓调谐器:3C Toolbox(Android Tuner)
本帖子中包含更多资源
才可以下载或查看,没有帐号?
阅读权限10
在线时间 小时
TA的每日心情慵懒 03:17签到天数: 2 天连续签到: 1 天[LV.1]初来乍到
当前用户组为 整装待发当前积分为 23, 升到下一级还需要 27 点。
这样就可以了
阅读权限10
在线时间 小时
TA的每日心情开心 22:58签到天数: 2 天连续签到: 1 天[LV.1]初来乍到
当前用户组为 整装待发当前积分为 12, 升到下一级还需要 38 点。
请问这个方法有烧坏的危险吗?
阅读权限10
在线时间 小时
TA的每日心情慵懒 03:17签到天数: 2 天连续签到: 1 天[LV.1]初来乍到
当前用户组为 整装待发当前积分为 23, 升到下一级还需要 27 点。
来自移动版
chenlid299 发表于
请问这个方法有烧坏的危险吗?
不会,放心使用!!
阅读权限80
在线时间 小时
TA的每日心情开心 07:42签到天数: 488 天连续签到: 1 天[LV.9]以坛为家II
温馨提示,小心烫伤和爆炸。
阅读权限10
在线时间 小时
TA的每日心情怒 18:14签到天数: 5 天连续签到: 1 天[LV.2]偶尔看看I
当前用户组为 整装待发当前积分为 26, 升到下一级还需要 24 点。
来自移动版
我也是醉了,发热不降频,那不是更热?那还不爆炸?请问楼主哪里来的自信认为手机发热不降频不会有烧坏的可能
阅读权限10
在线时间 小时
TA的每日心情慵懒 03:17签到天数: 2 天连续签到: 1 天[LV.1]初来乍到
当前用户组为 整装待发当前积分为 23, 升到下一级还需要 27 点。
来自移动版
fyypll 发表于
我也是醉了,发热不降频,那不是更热?那还不爆炸?请问楼主哪里来的自信认为手机发热不降频不会有烧坏的可 ...
因为我一直在用
阅读权限10
在线时间 小时
TA的每日心情慵懒 03:17签到天数: 2 天连续签到: 1 天[LV.1]初来乍到
当前用户组为 整装待发当前积分为 23, 升到下一级还需要 27 点。
来自移动版
fyypll 发表于
我也是醉了,发热不降频,那不是更热?那还不爆炸?请问楼主哪里来的自信认为手机发热不降频不会有烧坏的可 ...
并不是一直不降频,只是在发热时也能保持最高频率,魔趣强制锁300mhz你难道不知道??
阅读权限10
在线时间 小时
TA的每日心情擦汗 13:45签到天数: 3 天连续签到: 1 天[LV.2]偶尔看看I
当前用户组为 整装待发当前积分为 20, 升到下一级还需要 30 点。
非游戏状态,CPU频率范围在384~600MHz范围就足够了。安卓4.3、4.4,可以用SetCPU来限制频率范围。
最低频率设置到300MHz,容易出现手机反应迟钝的现象,但最低频率设置为384MHz,则不易出现反应迟钝现象。
阅读权限15
在线时间 小时
TA的每日心情开心7&天前签到天数: 32 天连续签到: 1 天[LV.5]常住居民I
当前用户组为 初入江湖当前积分为 103, 升到下一级还需要 47 点。
楼主说的很有道理,9楼说的cpuset其实并没有什么用,一般情况下确实可用,可以对各种使用情况进行相关的cpu频率设置,当然自带的并没有这么详尽的功能。然而当发热导致魔趣cpu锁定最大最小300时,cpuset的调节并不能起到作用,因为此时cpu以及被锁定了300,调节无效。根据我多次刷机及长时间的体验,自带的cpu调节功能和cpuset的调节功能是一样的,只不过cpuset可以设置各种情景模式对cpu进行多样的调节以便适应不同的使用需求。以上纯属个人看法,不足处还请指教。。。
&我们旨在提供一个良好的手机玩家技术交流、资源分享社区,如果有涉及版权的资源,请联系管理员并提供相应的版权证明,我们会进行相应处理。
Powered by Discuz! X3.2
Comsenz Inc.让你的Ubuntu系统支持CPU动态调频_Linux教程_Linux公社-Linux系统门户网站
你好,游客
让你的Ubuntu系统支持CPU动态调频
来源:csdn&
作者:sunnybeike
首先,你得确保你的电脑是支持并且打开了CPU动态调频功能的,方法如下:
(我用的是的DELL机)
(1)开机后进入BIOS,找到performance选项,在speedset子选项中你会看到你的CPU动态调频是否开启了,如果未开启,要开启。
(2)查看你的内核是否安装了支持动态调频的模块:
$cd sys/devices/system/cpu/cpufreq
如果这个文件夹是空的,则说明你并没有安装相应的模块,否则,该文件夹下应该有ondemand文件夹。
如果没有安装,则需要你手动安装了:
$sudo apt-get install cpufrequtils
(3)重启你的电脑,查看/sys/devices/system/cpu/cpufreq文件夹是否有了ondemand文件夹。
如果你还是不确定,则可以运行如下的一个systemtap脚本:
global&times&&
#probe&kernel.function("do_dbs_timer@drivers/cpufreq/cpufreq_conservative.c")&{ &&
probe&kernel.function("do_dbs_timer")&{&&
&&&&times++&&
probe&timer.ms(1000)&{&&
&&&&if(times)&{&&
&&&&&&&&printf("%s&&%d\n",&execname(),&times)&&&
这个脚本用来统计进入do_dbs_timer函数多少次,这个函数是负责CPU调频的,执行这个脚本&
$sudo stap -v cpuload.stp&
会有如下的运行 结果:&
sun@sun-pc:dbs_timer$&clear&&
sun@sun-pc:dbs_timer$&sudo&stap&-v&cpuload.stp&&&
Pass&1:&parsed&user&script&and&76&library&script(s)&using&24216virt/13692res/2276shr&kb,&in&130usr/20sys/146real&ms.&&
Pass&2:&analyzed&script:&3&probe(s),&1&function(s),&3&embed(s),&1&global(s)&using&221608virt/33032res/3264shr&kb,&in&610usr/170sys/783real&ms.&&
Pass&3:&using&cached&/home/sun/.systemtap/cache/70/stap_7a733f9b86_2071.c&&
Pass&4:&using&cached&/home/sun/.systemtap/cache/70/stap_7a733f9b86_2071.ko&&
Pass&5:&starting&run.&&
swapper/1&&&136&&
swapper/1&&&272&&
swapper/1&&&409&&
swapper/1&&&544&&
swapper/1&&&681&&
swapper/1&&&816&&
swapper/1&&&950&&
swapper/1&&&1095&&
swapper/1&&&1236&&
Xorg&&&&1397&&
swapper/1&&&1543&&
swapper/1&&&1679&&
swapper/1&&&1815&&
swapper/1&&&1951&&
swapper/1&&&2087&&
相关资讯 & & &
& (02/04/:15)
& (01/29/:07)
& (07/05/:25)
& (02/01/:27)
& (12/28/:36)
图片资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款50498人阅读
系统性能调优工具介绍在软件开发过程中,想必很多读者都遇到过系统性能问题。而解决系统性能问题的几个主要步骤是:测评:对系统进行大量有针对性的测试,以得到合适的测试数据。分析系统瓶颈:分析测试数据,找到其中的hotspot(热点,即bottleneck)。性能优化:对hotspot相关的代码进行优化。由上述步骤可知,性能优化的目标对象是。如果找到的并非真正的热点,则性能优化的结果必然是事倍功半甚至竹篮打水一场空。所以,作为性能调优相关知识的第一部分,本篇首先将向读者介绍平台中三个重要的性能测试工具,它们能很好得帮助开发者找到。一介绍简介是平台特有的数据采集和分析工具,它主要用于分析中应用程序的。本身只是一个数据分析工具,而数据的采集则需要使用中的类或者利用工具。二者的用法如下:开发者在一些关键代码段开始前调用Android SDK中Debug类的startMethodTracing函数,并在关键代码段结束前调用stopMethodTracing函数。这两个函数运行过程中将采集运行时间内该应用所有线程(注意,只能是Java线程)的函数执行情况,并将采集数据保存到/mnt/sdcard/下的一个文件中。开发者然后需要利用SDK中的Traceview工具来分析这些数据。借助Android SDK中的DDMS工具。DDMS可采集系统中某个正在运行的进程的函数调用信息。对开发者而言,此方法适用于没有目标应用源代码的情况。DDMS工具中Traceview的使用如图1-1所示。图中使用示意图点击图中所示按钮即可以采集目标进程的数据。当停止采集时,会自动触发工具来浏览采集数据。下面,我们通过一个示例程序向读者介绍类以及的使用。示例分析示例程序运行时的界面如图所示:图示例界面图图中:SystraceDemoStringAAA等字样是TraceviewDemo程序启动时ListView最初显示的字符串。当用户点击ListView中的某一项时,Traceview将计算对应项当前显示的字符串的MD5值40次,然后用计算得到的MD5字符串替换该项之前显示的内容。其效果如图1-2中的“MD5值“箭头所示。该示例的关键代码如图所示:图示例代码由图可知:左图中,Debug类的startMethodTracing和stopMethodTracing分别在MainAcvtivity的构造方法和onDestroy函数中调用。onCreate函数中我们设置了第一个hotspot,即getStringToShow函数。它将解析一个XML文件,并将解析后的字符串保存到mListItem中以作为ListView的显示内容。右图中,当用户点击ListView中的某个Item时,程序在onListItem中将计算MD5值40次,然后用计算结果做为被点击项的新字符串显示。generateMD5中的函数是本示例的第二个hotspot。现在,我们用工具将测试结果文件打开。界面比较复杂,其划分为上下两个面板,即时间线面板和分析面板。图所示为界面:图示意图图中的又可细分为左右两个:左边Pane显示的是测试数据中所采集的线程信息。由图1-4可知,本次测试数据采集了main线程,两个Binder线程和其它系统辅助线程(例如GC线程等)的信息。右边Pane所示为时间线,时间线上是每个线程测试时间段内所涉及的函数调用信息。这些信息包括函数名、函数执行时间等。由图1-4可知,main线程对应行的的内容非常丰富,而其他线程在这段时间内干得工作则要少得多。另外,开发者可以在时间线Pane中移动时间线纵轴。纵轴上边将显示当前时间点中某线程正在执行的函数信息。现在来看的界面,如图所示:图界面是的核心界面,其内涵非常丰富。它主要展示了某个线程(先在中选择线程)中各个函数调用的情况,包括使用时间、调用次数等信息。而这些信息正是查找的关键依据。所以,对开发者而言,一定要了解中各列的含义。笔者总结了其中几个重要列的作用,如表所示:表各列作用说明列名描述该线程运行过程中所调用的函数名某函数占用的时间,包含内部调用其它函数的时间某函数占用的时间,但不含内部调用其它函数所占用的时间某函数运行的真实时间(以毫秒为单位),内含调用其它函数所占用的真实时间某函数运行的真实时间(以毫秒为单位),不含调用其它函数所占用的真实时间某函数被调用次数以及递归调用占总调用次数的百分比某函数调用时间与调用次数的比。相当于该函数平均执行时间同类似,只不过统计单位换成了真实时间另外,每一个列还对应有一个用时间百分比来统计的列(如列对应还有一个列名为的列,表示以时间百分比来统计的)。了解完的后,现在介绍如何利用来查找。一般而言,包括两种类型的函数:一类是调用次数不多,但每次调用却需要花费很长时间的函数。在示例代码中,它就是hotspot 1。一类是那些自身占用时间不长,但调用却非常频繁的函数。在示例代码中,它就是hotspot 2。首先,我们来查找。在中,选择按进行降序排序(从上之下排列,每项的耗费时间由高到低),得到如图所示的结果:图按降序排列数据图中:MainActivity.onCreate是应用程序中的函数,它耗时为。然后,点击MainActivity.onCreate项,得到箭头所示的小图。小图中,Parents一行显示的是MainActivity.onCreate的调用者,本例中它是performCreate函数。这部分代码属于Framework部分。Children行显示的是MainActivity.onCreate调用的子函数。在MainActivity.onCreate调用的子函数中,我们发现getStringsToShow在Incl Cpu Time %一列中占据了63.3%,它是onCreate子函数耗费时间最长的,而且Calls+Recur Calls/Total列显示其调用次数为1,即它仅仅被调用一次了。这个函数是应用程序实现的,所以极有可能是一个潜在的Hotspot。另外,由于笔者已经知道getStringsToShow是示例应用自己实现的函数,故在图1-6的大图中,可直接根据MainActivity.getStringsToShow花费了CPU时间这个信息来确定Hotspot就是它。相对来说,类型的比较好找,步骤是先按降序对时间项进行排列(可以是时间百分比、真实时间或时间),然后查找耗费时间最多的函数。一般而言,先应对应用程序自己实现的函数进行排查,的函数也有可能是,但主因一般还是在应用本身(例如设置复杂的界面,导致对应解析非常慢)。现在,我们来看如何查找类型的。点击列头,使之按降序排列。关注点放在那些调用频繁并且占用资源较多的函数。图为降序排列的结果图。图类型查找过程示意之一图所示的运行最频繁的几个函数中,我们发现了几个怀疑点,由图中的和箭头标示。结合代码,箭头1所指的函数在代码中实际并不存在。这是因为代码中直接访问了内部类的私有成员,导致java编译器在编译时自动生成了这个函数。这个函数的调用次数非常多。所以,为了提高效率,我们可以修改内部类成员的访问类型定义为public。不过,该函数的Incl Cpu Time并不高,只有3.2%。同样,箭头2所指部分的函数调用次数也很多,达到了5888多次。不过它们占用的时间百分比只有0.9%。第一次查找的潜在点被排除后,继续浏览数据,得到如图所示的结果。图类型查找过程示意之二在图中:红框处有两个重载的MyMD5.getHashString函数调用,它们各运行了368次,而且占用的CPU时间百分比达到了31.8%和53.2%。很显然,这2处调用就有优化的余地,这就是我们所怀疑的hotspot2。找到之后,开发者就需要结合代码来进行对应的优化了。关于代码优化,读者可参考如下资料:总体而言,的查找是一个细致的工作,需要开发者对目标程序的代码,以及工具都比较熟悉才行。小结工具是平台应用程序性能分析的利器。不过笔者觉得它的还是有些复杂。并且使用时感觉流畅度不够好。官方关于的介绍可参考以下链接,不过其内容以及较久未更新了。。二介绍简介是中新增的性能数据采样和分析工具。它可帮助开发者收集关键子系统(如、等部分关键模块、服务)的运行信息,从而帮助开发者更直观的分析系统瓶颈,改进性能。的功能包括跟踪系统的操作、内核工作队列、负载以及各个子系统的运行状况等。在平台中,它主要由部分组成:内核部分:Systrace利用了Linux Kernel中的ftrace功能。所以,如果要使用Systrace的话,必须开启kernel中和ftrace相关的模块。数据采集部分:Android定义了一个Trace类。应用程序可利用该类把统计信息输出给ftrace。同时,Android还有一个atrace程序,它可以从ftrace中读取统计信息然后交给数据分析工具来处理。数据分析工具:Android提供一个systrace.py(python脚本文件,位于Android SDK目录/tools/systrace中,其内部将调用atrace程序)用来配置数据采集的方式(如采集数据的标签、输出文件名等)和收集ftrace统计数据并生成一个结果网页文件供用户查看。从本质上说,是对中的封装。应用进程需要利用提供的类来使用。为系统中的几个关键进程和模块都添加了功能。以显示系统中重要模块为例,其代码中使用的方法如图所示:图模块使用示例图中,应用程序只要通过三个宏就可使用了:定义ATRACE_TAG:Hwcomposer使用了ATRACE_TAG_GRAPHICS,表示它和Graphics相关。ATRACE_INIT:用于统计某个变量使用的情况。下文将见到代码中”VSYNC”的统计结果。ATRACE_CALL:用于统计函数的调用情况。由于篇幅关系,关于使用更多的信息请读者阅读或者类。下面,我们通过一个示例来展示的使用。实例首先,在机上运行如下命令以启动,如图所示:图操作步骤执行上述命令后,将得到一个名为的文件(是默认文件名,读者也可在命令行中指定其他文件名)。通过浏览器打开此文件,结果如图所示:图内容示意图中所示的页面内容和的非常类似。图中包含的内容如下:由于在systrace.py中指定了-f -l和-i参数,Systrace将生成CPU频率、负载和状态相关的信息。它们为图2-1中第一个红框所示。由于笔者所测手机CPU为双核,故图中有CPU 0和CPU 1之分。为行文方便,笔者用CPU N来指代CPU的某个核。“CPU N“所示行对应于整个测试时间内,某个核上运行的进程信息。“CPU N C-State“所示行为整个测试时间内,某个CPU状态的变化。C-State取值见表2-1。“CPU N Clock Frequency”所示行展示了某个CPU运行的频率。通过点击这一行的色块可以查看某个时间点上CPU N的运行频率。“cpufreq”:该行所示内容和CPU交互式频率调节器(Interactive Governor)的工作有关。交互式CPU调节器驱动添加了对CPU频率调节事件的跟踪。感兴趣的读者不妨阅读kernel中的include/trace/events/cpufreq_interactive.h文件以了解更多的信息。图中,信息以下的行就是通过提供的宏而添加的统计信息,其中:VSYNC:这一行的统计信息来自于图2-1中ATRACE_INIT宏的使用。在Hwcomposer代码中,ATRACE_INIT宏被用于统计VSYNC的Tick-Tack情况(即0,1,0,1交错输出)。VSYNC行显示了每次Tick Tack的时间大概都在16ms左右。由于Framework代码也在显示部分添加了ATRACE_INIT的使用,所以图中com.example.systracedemo/com.example.systracedemo.MainActivity所示为应用程序占用显示Buffer的Tick-Tack情况。如果使用时间超过16ms,将导致界面显示迟滞等现象。SurfaceFlinger使用了ATRACE_CALL宏,故图中SurfaceFlinger行展示了其函数调用的CPU耗时情况(如箭头1所指,SurfaceFlinger中的onMessageReceived函数的运行信息)。在图2-1最下部的方框中,详细显示了当前鼠标在时间线中选择的部分(即SurfaceFlinger中的onMessageReceived)的详细信息。表所示为状态取值信息:表状态描述,运行模式。,就位模式,随时准备投入运行,休眠状态,被唤醒投入运行时有一定的延迟,关闭状态,需要有较长的延迟才能进入运行状态,减少耗电小结总体来说,比用途更广泛,它支持对、进程甚至线程进行性能数据采样,可帮助开发者对整个系统的性能情况进行一个详尽的分析。不过其用法比要复杂,而且还需要对做一些配置调整。官方对也有一些介绍,请读者阅读:三的使用简介是另一个功能更强大的性能数据采集和分析工具,其工作原理如下:它利用性能计数器(Performance Counter)或者定时器(针对kernel不支持性能计数器的情况),通过连续的采样获得统计数据,从而对内核和用户空间进程进行性能分析。以性能计数器为例,在系统运行过程中,当某个事件发生时,对应的性能计数器就会自加。当达到计数器的设定值时会产生一个中断。Oprofile驱动利用这个中断来进行采样统计。通过获取中断发生时PC指针的值以及内核中保存运行的任务的信息等,并把它们转化成对测评有用的数据。包括内核驱动和用户空间工具两个部分,其中:内核驱动实现了一个oprofilefs虚拟文件系统。它挂载到/dev/oprofile,用来向用户空间报告数据和接收来自用户空间的设置。它是用户空间进程与内核通信的桥梁。驱动中还包括了与架构相关和通用的驱动,通过它们访问性能计数器寄存器、收集数据后报告给用户空间。守护进程用户从内核接收数据并保存在磁盘上以备分析使用。在用户空间提供了两个工具:oprofiled(作为守护进程在后台通过和/dev/oprofile交互以获取驱动收集的数据)、opcontrol(用户操作的控制工具,它通过读写oprofilefs来控制采样相关的设置)。默认提供了对的支持,其组成包括:代码:位于exetrnal/oprofile中。不过,只有编译类型为非user的系统才会使用它。四个主要工具,即opcontrol,oprofiled、opreport和opimport。开发者只要使用opcontrol和opreport即可。读者应该熟练掌握和工具的作用,我们此处也总结了它们的用法:opcontrol:它用来控制采样过程,比如采样的开始和结束、采样的事件类型和频率等。其内部通过读写oprofilefs来实现。opcontrol的常用选项如表3-1所示:表常用选项选项功能列出当前所支持的事件对测评进行设置,比如关闭旧的守护进程、挂载设置将要分析的内核镜像文件设置跟踪函数调用的层数内核二进制文件起始和结束的虚拟地址开始停止采样设置对某事件进行采样。:事件的名字:采样时事件发生的次数:事件的掩码(支持的事件以及掩码见的文档):是否采样内核事件:是否采样用户事件opreport:opreport是使用采样数据生成报告的工具,可根据用户要求生成不同的报告。一般用法是“opreport [options] [image]”,其中image指定报告需要显示的程序的名字(指程序名字、共享库名字和内核)。image参数可选。不指定它时,opreport将打印所有进程的报告结果。常用options如表3-2所示:表常用选项选项功能显示函数调用的符号名字以调试的形式打印函数符号,包括函数所在文件及行数等。显示函数调用堆栈报告输出到指定文件另外,提供了一个特别的工具。它可把采样数据从手机中到上,并对数据进行一些简单处理以供使用。所以,在平台上,开发者只要使用了就可以了。现在,我们来看的使用实例。实例的使用大体可以分成以下三步:内核加载oprofile驱动(如果该驱动静态编译到内核中,则可略过此步骤)。配置采样事件、然后进行采样。获取报告、进行分析,针对分析结果进行改进。下面分别来看这三个步骤:内核配置如下所示为内核配置的示例,如图所示:图内核配置示意运行需要权限,所以目标设备中最好运行的是或者版本的。用户空间配置用户空间配置的示例如图所示。假设当前目录为源码根目录,并且已经初始化编译环境(执行完毕和)。图用户空间配置示意用户空间的配置主要通过执行命令来完成。而内部是通过往传递对应的控制参数来完成的。例如图中“”命令也可通过“”来实现。结果分析在上一步中,我们已经获取了测评采样的数据。现在,就可以使用它们来生成采样报告了,方法如图所示:图生成采样报告方法示意图为报告的一部分内容:图测评报告概要图中,我们发现调用的采样数为,排第位。那么中哪个函数调用次数最多呢?开发者可通过如下命令获取的更为详细的信息。方法如图所示:图使用示例执行上述命令后的结果如图所示:图关于的详细结果由图可知,函数占用最多的资源。所以可以考虑优化。此处,笔者针对双核处理器,使用汇编的方法对进行了优化。优化后的结果如图所示。对比图和图可明显看出,优化后的对资源的占用降低了个百分点。图优化后的测试结果小结在性能分析中,无疑是一个使用最广泛、功能最强大的测评工具。对于平台开发者来说,它可以采集和分析整个系统的运行状态信息,对于分析查找系统瓶颈进而优化系统具有重大意义。四总结性能调优向来是一件“高深莫测”的任务,但打破它们神秘面纱的工具就是上文所述的工具了。所以,对有志开展这方面工作的读者而言,首要一步的工作就是先了解各个工具的作用及优缺点。除了本文介绍的这三个工具外,系统还支持其他一些更有针对性的测试工具,例如用于测评系统整体功能的,、测试系统启动性能的、测试文件系统性能的等。由于篇幅关系,笔者就不再一一介绍它们了。关于的详情,读者可参考,“分析“一文。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1437136次
积分:14317
积分:14317
排名:第419名
原创:152篇
评论:1966条
好兄弟的新书《深入理解Android 卷3》即将上市,感谢大家对《深入理解Android》系列书籍的支持。
文章:81篇
阅读:1064768
(1)(1)(1)(1)(28)(1)(3)(1)(1)(1)(1)(1)(1)(2)(12)(3)(1)(2)(2)(2)(1)(1)(1)(3)(1)(2)(1)(4)(7)(3)(1)(2)(1)(1)(5)(6)(4)(4)(5)(2)(1)(6)(2)(3)(15)(6)(2)}

我要回帖

更多关于 电力系统调频 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信