• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 研发工具链子系统<a name="ZH-CN_TOPIC_0000001089932323"></a>
2
3-   [简介](#section11660541593)
4-   [系统架构](#section342962219551)
5-   [目录](#section71879353610)
6-   [使用说明](#section3199114314427)
7-   [相关仓](#section1371113476307)
8
9## 简介<a name="section11660541593"></a>
10
11在OpenHarmony中,研发工具链子系统主要为开发人员提供了开发时用于调试的命令行以及追踪性能轨迹、查看性能的工具。
12
13本子系统主要实现了以下功能:
14
15-   bytrace,开发人员用于追踪进程轨迹、查看性能的一种工具,主要对内核ftrace进行了封装和扩展,来支持用户态的打点。
16-   hdc,开发人员用于调试的命令行工具,通过该工具可以在windows/linux/mac等系统上与开发机或者模拟器进行交互。
17-   profiler,旨在为开发者提供一套性能调优平台,可以用来分析内存、性能等问题。
18
19## 系统架构<a name="section342962219551"></a>
20
21工具链子系统的架构图如下:
22
23**图 1**  研发工具链子系统架构图<a name="fig4460722185514"></a>
24
25
26![](figures/zh-cn_image_0000001162757669.png)
27
28## 目录<a name="section71879353610"></a>
29
30```
31/developtools             # 研发工具链子系统目录结构
32├── bytrace_standard      # bytrace组件代码目录
33│   └── bin               # bytrace组件功能实现目录
34│   └── innerkits         # 对内部子系统暴露的头文件存放目录
35├── hdc_standard          # hdc组件代码目录
36│   └── src               # hdc组件功能实现目录
37│   └── prebuilt          # 预编译目录
38├── profiler              # 性能调优组件代码目录
39│   └── device            # 设备侧代码目录
40│   └── host              # host端代码目录
41│   └── interfaces        # 模块间和对外提供的接口代码目录
42│   └── trace_analyzer    # bytrace解析模块的代码目录
43│   └── protos            # proto格式文件的代码目录
44```
45
46## 使用说明<a name="section3199114314427"></a>
47
48**1. bytrace**
49
50bytrace当前支持如下命令:
51
52**表 1**  命令行列表
53
54<a name="table16968161192218"></a>
55<table><thead align="left"><tr id="row1796810110224"><th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.1"><p id="p19686142212"><a name="p19686142212"></a><a name="p19686142212"></a>Option</p>
56</th>
57<th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.2"><p id="p169681311225"><a name="p169681311225"></a><a name="p169681311225"></a>Description</p>
58</th>
59</tr>
60</thead>
61<tbody><tr id="row14968118227"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1696819114221"><a name="p1696819114221"></a><a name="p1696819114221"></a>-h,--help</p>
62</td>
63<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1896813132220"><a name="p1896813132220"></a><a name="p1896813132220"></a>查看帮助信息</p>
64</td>
65</tr>
66<tr id="row1396816117229"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1496871152211"><a name="p1496871152211"></a><a name="p1496871152211"></a>-b <em id="i13968181112216"><a name="i13968181112216"></a><a name="i13968181112216"></a>n</em>,--buffer_size <em id="i896891152212"><a name="i896891152212"></a><a name="i896891152212"></a>n</em></p>
67</td>
68<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p139682017228"><a name="p139682017228"></a><a name="p139682017228"></a>指定<em id="i496841112217"><a name="i496841112217"></a><a name="i496841112217"></a>n</em>(KB)内存大小用于存取trace日志,默认2MB</p>
69</td>
70</tr>
71<tr id="row196941152212"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p29691917228"><a name="p29691917228"></a><a name="p29691917228"></a>-t <em id="i196931152213"><a name="i196931152213"></a><a name="i196931152213"></a>n</em>,--time <em id="i17969201142218"><a name="i17969201142218"></a><a name="i17969201142218"></a>n</em></p>
72</td>
73<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1396913162213"><a name="p1396913162213"></a><a name="p1396913162213"></a>用来指定trace运行的时间(单位:s),取决于需要分析过程的时间</p>
74</td>
75</tr>
76<tr id="row6969211227"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p5969141112217"><a name="p5969141112217"></a><a name="p5969141112217"></a>--trace_clock <em id="i1096917113223"><a name="i1096917113223"></a><a name="i1096917113223"></a>clock</em></p>
77</td>
78<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p39696116229"><a name="p39696116229"></a><a name="p39696116229"></a>trace输出的时钟类型,一般设备支持boot、global、mono、uptime、perf等,默认为boot</p>
79</td>
80</tr>
81<tr id="row39691110223"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p4969161112211"><a name="p4969161112211"></a><a name="p4969161112211"></a>--trace_begin</p>
82</td>
83<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p8969617229"><a name="p8969617229"></a><a name="p8969617229"></a>启动抓trace</p>
84</td>
85</tr>
86<tr id="row129693111224"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p19693132216"><a name="p19693132216"></a><a name="p19693132216"></a>--trace_dump</p>
87</td>
88<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p4969161122217"><a name="p4969161122217"></a><a name="p4969161122217"></a>将数据输出到指定位置(默认控制台)</p>
89</td>
90</tr>
91<tr id="row1296920110224"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1296961202217"><a name="p1296961202217"></a><a name="p1296961202217"></a>--trace_finish</p>
92</td>
93<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p69691614229"><a name="p69691614229"></a><a name="p69691614229"></a>停止抓trace,并将数据输出到指定位置(默认控制台)</p>
94</td>
95</tr>
96<tr id="row15969813223"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p10969181132217"><a name="p10969181132217"></a><a name="p10969181132217"></a>-l,--list_categories</p>
97</td>
98<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p20969516221"><a name="p20969516221"></a><a name="p20969516221"></a>输出手机能支持的trace模块</p>
99</td>
100</tr>
101<tr id="row096921142218"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p119691714221"><a name="p119691714221"></a><a name="p119691714221"></a>--overwrite</p>
102</td>
103<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p109693162215"><a name="p109693162215"></a><a name="p109693162215"></a>当缓冲区满的时候,将丢弃最新的信息。(默认丢弃最老的日志)</p>
104</td>
105</tr>
106<tr id="row119698110224"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p9970318228"><a name="p9970318228"></a><a name="p9970318228"></a>-o <em id="i10970113229"><a name="i10970113229"></a><a name="i10970113229"></a>filename</em>,--output <em id="i39705111227"><a name="i39705111227"></a><a name="i39705111227"></a>filename</em></p>
107</td>
108<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p697017110220"><a name="p697017110220"></a><a name="p697017110220"></a>指定输出的目标文件名称</p>
109</td>
110</tr>
111<tr id="row16970412224"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p397017114221"><a name="p397017114221"></a><a name="p397017114221"></a>-z</p>
112</td>
113<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p149704113226"><a name="p149704113226"></a><a name="p149704113226"></a>抓取trace后进行压缩</p>
114</td>
115</tr>
116</tbody>
117</table>
118
119以下是常用bytrace命令示例,供开发者参考:
120
121-   查询支持的label。
122
123    ```
124    bytrace -l
125    或者
126    bytrace --list_categories
127    ```
128
129
130-   设置4M缓存,抓取10秒,抓取label为ability的trace信息。
131
132    ```
133    bytrace -b 4096 -t 10 --overwrite ability > /data/mytrace.ftrace
134    ```
135
136
137-   设置trace的输出时钟为mono。
138
139    ```
140    bytrace --trace_clock mono  -b 4096 -t 10 --overwrite ability > /data/mytrace.ftrace
141    ```
142
143
144-   抓取trace后进行压缩。
145
146    ```
147    bytrace -z  -b 4096 -t 10 --overwrite ability > /data/mytrace.ftrace
148    ```
149
150
151**2. hdc**
152
153hdc当前支持如下命令:
154
155**表 2**  hdc命令列表
156
157<a name="table12971913225"></a>
158<table><thead align="left"><tr id="row129711413225"><th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.1"><p id="p20971914227"><a name="p20971914227"></a><a name="p20971914227"></a>Option</p>
159</th>
160<th class="cellrowborder" valign="top" width="50%" id="mcps1.2.3.1.2"><p id="p29716117225"><a name="p29716117225"></a><a name="p29716117225"></a>Description</p>
161</th>
162</tr>
163</thead>
164<tbody><tr id="row199713117228"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p149713122214"><a name="p149713122214"></a><a name="p149713122214"></a>-t <em id="i89715114222"><a name="i89715114222"></a><a name="i89715114222"></a>key</em></p>
165</td>
166<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p29713110221"><a name="p29713110221"></a><a name="p29713110221"></a>用于<span>指定连接该指定设备标识key</span></p>
167</td>
168</tr>
169<tr id="row19711111221"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p199711819225"><a name="p199711819225"></a><a name="p199711819225"></a>-s <em id="i129711811227"><a name="i129711811227"></a><a name="i129711811227"></a>socket</em></p>
170</td>
171<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1597101162218"><a name="p1597101162218"></a><a name="p1597101162218"></a>用于<span>指定服务监听的socket配置</span></p>
172</td>
173</tr>
174<tr id="row6971191132217"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p8971121112219"><a name="p8971121112219"></a><a name="p8971121112219"></a>-h/help -v/version</p>
175</td>
176<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p697261142216"><a name="p697261142216"></a><a name="p697261142216"></a><span>用于显示hdc相关的帮助、版本信息</span></p>
177</td>
178</tr>
179<tr id="row20972415226"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p69722019226"><a name="p69722019226"></a><a name="p69722019226"></a>list targets[-v]</p>
180</td>
181<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p11972151152217"><a name="p11972151152217"></a><a name="p11972151152217"></a><span>显示所有已经连接的目标设备列表</span></p>
182</td>
183</tr>
184<tr id="row2972181192217"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p79729132213"><a name="p79729132213"></a><a name="p79729132213"></a>target mount</p>
185</td>
186<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1197217117221"><a name="p1197217117221"></a><a name="p1197217117221"></a><span>以读写模式挂载/system等分区</span></p>
187</td>
188</tr>
189<tr id="row1997213112229"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p149728117225"><a name="p149728117225"></a><a name="p149728117225"></a>target boot [bootloader|recovery]</p>
190</td>
191<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p149721818223"><a name="p149721818223"></a><a name="p149721818223"></a><span>重启目标设备,默认启动系统,可支持bootloader,recover等引导模式</span></p>
192</td>
193</tr>
194<tr id="row9972191202215"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p179721518220"><a name="p179721518220"></a><a name="p179721518220"></a>smode [off]</p>
195</td>
196<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1397216111225"><a name="p1397216111225"></a><a name="p1397216111225"></a>授予后台服务进程root权限, 使用off参数取消授权</p>
197</td>
198</tr>
199<tr id="row159721418223"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p697291172215"><a name="p697291172215"></a><a name="p697291172215"></a>kill</p>
200</td>
201<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p2097212117225"><a name="p2097212117225"></a><a name="p2097212117225"></a><span>终止服务进程</span></p>
202</td>
203</tr>
204<tr id="row597211110226"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p179728192214"><a name="p179728192214"></a><a name="p179728192214"></a>tconn <em id="i179731172210"><a name="i179731172210"></a><a name="i179731172210"></a>host</em>[:<em id="i15973111202216"><a name="i15973111202216"></a><a name="i15973111202216"></a>port</em>][-remove]</p>
205</td>
206<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1497314112218"><a name="p1497314112218"></a><a name="p1497314112218"></a>通过【ip地址:端口号】来指定连接的设置</p>
207</td>
208</tr>
209<tr id="row129737118221"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1297311119225"><a name="p1297311119225"></a><a name="p1297311119225"></a>tmode usb</p>
210</td>
211<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p997319113226"><a name="p997319113226"></a><a name="p997319113226"></a><span>执行后设备端对应daemon进程重启,并首先选用usb连接方式</span></p>
212</td>
213</tr>
214<tr id="row1697331192218"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1973116220"><a name="p1973116220"></a><a name="p1973116220"></a>tmode port <em id="i159734192213"><a name="i159734192213"></a><a name="i159734192213"></a>port-number</em></p>
215</td>
216<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p197314122212"><a name="p197314122212"></a><a name="p197314122212"></a><span>执行后设备端对应daemon进程重启,并优先使用网络方式连接设备,如果连接设备再选择usb连接</span></p>
217</td>
218</tr>
219<tr id="row1597312118225"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p897315112215"><a name="p897315112215"></a><a name="p897315112215"></a>fport <em id="i097410112211"><a name="i097410112211"></a><a name="i097410112211"></a>local remote</em> -b</p>
220</td>
221<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p169742111221"><a name="p169742111221"></a><a name="p169742111221"></a><span>创建端口、文件、设备转发</span></p>
222</td>
223</tr>
224<tr id="row4974101182217"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p997461132214"><a name="p997461132214"></a><a name="p997461132214"></a>fport list</p>
225</td>
226<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p159741142218"><a name="p159741142218"></a><a name="p159741142218"></a><span>查看所有已建立的映射连接列表,显示的参数包括转发配置字符串,转发类型,转发参数</span></p>
227</td>
228</tr>
229<tr id="row18974310221"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p15974418228"><a name="p15974418228"></a><a name="p15974418228"></a>fport rm <em id="i1797419132213"><a name="i1797419132213"></a><a name="i1797419132213"></a>local</em></p>
230</td>
231<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p179742115221"><a name="p179742115221"></a><a name="p179742115221"></a><span>删除已映射的给定配置字符串连接(配置字符串值可以通过list获取),没有指定则删除所有</span></p>
232</td>
233</tr>
234<tr id="row17974141142212"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1397481142212"><a name="p1397481142212"></a><a name="p1397481142212"></a>file send<em id="i797514162218"><a name="i797514162218"></a><a name="i797514162218"></a> </em><em id="i19975131192214"><a name="i19975131192214"></a><a name="i19975131192214"></a>local remote</em></p>
235</td>
236<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1897531132216"><a name="p1897531132216"></a><a name="p1897531132216"></a><span>发送文件至远端设备</span></p>
237</td>
238</tr>
239<tr id="row69758162213"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p197519113224"><a name="p197519113224"></a><a name="p197519113224"></a>file recv [-a] <em id="i159759192217"><a name="i159759192217"></a><a name="i159759192217"></a>remote local</em></p>
240</td>
241<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p189754172214"><a name="p189754172214"></a><a name="p189754172214"></a><span>从远端设备接收文件至本地</span></p>
242</td>
243</tr>
244<tr id="row39752019225"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p89758162216"><a name="p89758162216"></a><a name="p89758162216"></a>app install<em id="i1397515112211"><a name="i1397515112211"></a><a name="i1397515112211"></a> </em>[-r/-d/-g]<em id="i1497514114225"><a name="i1497514114225"></a><a name="i1497514114225"></a> </em><em id="i1697517172212"><a name="i1697517172212"></a><a name="i1697517172212"></a>package</em></p>
245</td>
246<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p8975181132218"><a name="p8975181132218"></a><a name="p8975181132218"></a><span>安装</span><span id="text597619112215"><a name="text597619112215"></a><a name="text597619112215"></a>OpenHarmony</span><span> package</span></p>
247</td>
248</tr>
249<tr id="row179764152210"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p13976116221"><a name="p13976116221"></a><a name="p13976116221"></a>app install-multiple [-rdg] --hap <em id="i1497631152216"><a name="i1497631152216"></a><a name="i1497631152216"></a>path</em></p>
250</td>
251<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1897681192216"><a name="p1897681192216"></a><a name="p1897681192216"></a><span>安装指定路径下的所有</span><span id="text129769117229"><a name="text129769117229"></a><a name="text129769117229"></a>OpenHarmony</span><span> package</span></p>
252</td>
253</tr>
254<tr id="row29769172213"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p1897651182210"><a name="p1897651182210"></a><a name="p1897651182210"></a>app uninstall [-k] <em id="i179761617224"><a name="i179761617224"></a><a name="i179761617224"></a>package</em></p>
255</td>
256<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1297610142217"><a name="p1297610142217"></a><a name="p1297610142217"></a><span>卸载</span><span id="text29761218227"><a name="text29761218227"></a><a name="text29761218227"></a>OpenHarmony</span><span>应用</span></p>
257</td>
258</tr>
259<tr id="row1297713132213"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p17977171182218"><a name="p17977171182218"></a><a name="p17977171182218"></a>hilog</p>
260</td>
261<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p997711192216"><a name="p997711192216"></a><a name="p997711192216"></a><span>支持查看抓取log调试信息</span></p>
262</td>
263</tr>
264<tr id="row209773116224"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p897711102214"><a name="p897711102214"></a><a name="p897711102214"></a>bugreport [<em id="i4977918221"><a name="i4977918221"></a><a name="i4977918221"></a>PATH</em>]</p>
265</td>
266<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p139777116227"><a name="p139777116227"></a><a name="p139777116227"></a><span>支持抓取bugreport调试信息</span></p>
267</td>
268</tr>
269<tr id="row149772115228"><td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.1 "><p id="p179771017220"><a name="p179771017220"></a><a name="p179771017220"></a>shell<em id="i11977131112211"><a name="i11977131112211"></a><a name="i11977131112211"></a> </em>[<em id="i497721172211"><a name="i497721172211"></a><a name="i497721172211"></a>command</em>]</p>
270</td>
271<td class="cellrowborder" valign="top" width="50%" headers="mcps1.2.3.1.2 "><p id="p1697710162213"><a name="p1697710162213"></a><a name="p1697710162213"></a><span>远程执行命令或进入交互命令环境</span></p>
272</td>
273</tr>
274</tbody>
275</table>
276
277以下是常用hdc命令示例,供开发者参考:
278
279-   往设备中推送文件
280
281    ```
282    hdc file send  E:\c.txt  /sdcard
283    ```
284
285-   重启设备
286
287    ```
288    hdc target boot
289    ```
290
291
292-   查看日志
293
294    ```
295    hdc hilog
296    ```
297
298-   进入命令行交互模式
299
300    ```
301    hdc shell
302    ```
303
304-   配置服务监听的socket。
305
306    ```
307    hdc -s 192.168.1.100:1234
308    ```
309
310
311-   重启至bootloader模式。
312
313    ```
314    hdc target boot bootloader
315    ```
316
317-   网络连接。
318
319    ```
320    hdc tconn 192.168.0.100:8710
321    ```
322
323
324**3. profiler**
325
326性能调优组件包含系统和应用调优框架,旨在为开发者提供一套性能调优平台,可以用来分析内存、性能等问题。
327
328该组件整体分为PC端和设备端两部分:
329
330- PC端最终作为deveco studio的插件进行发布,内部主要包括分为UI绘制、设备管理、进程管理、插件管理、数据导入、数据存储、 数据分析、Session管理、配置管理等模块。
331
332- 设备端主要包括命令行工具、服务进程、插件集合、应用程序组件等模块。设备端提供了插件扩展能力,对外提供了插件接口,基于该扩展能力可以按需定义自己的能力,并集成到框架中来,目前基于插件能力已经完成了实时内存插件和trace插件。详细内容见性能调优组件。
333
334## 相关仓<a name="section1371113476307"></a>
335
336**研发工具链子系统**
337
338[developtools\_hdc\_standard](https://gitee.com/openharmony/developtools_hdc_standard)
339
340[developtools\_bytrace\_standard](https://gitee.com/openharmony/developtools_bytrace_standard)
341
342[developtools\_profiler](https://gitee.com/openharmony/developtools_profiler)
343
344