1fb726d48Sopenharmony_ci<!DOCTYPE html> 2fb726d48Sopenharmony_ci<html> 3fb726d48Sopenharmony_ci <head> 4fb726d48Sopenharmony_ci <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 5fb726d48Sopenharmony_ci <title>quickstart_Hiperf</title> 6fb726d48Sopenharmony_ci 7fb726d48Sopenharmony_ci <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 8fb726d48Sopenharmony_ci 9fb726d48Sopenharmony_ci <style> 10fb726d48Sopenharmony_ci code[class*='smartperf-'], 11fb726d48Sopenharmony_ci pre[class*='smartperf-'] { 12fb726d48Sopenharmony_ci color: #333333; 13fb726d48Sopenharmony_ci background: none; 14fb726d48Sopenharmony_ci font-family: Helvetica; 15fb726d48Sopenharmony_ci line-height: 1.6; 16fb726d48Sopenharmony_ci text-align: left; 17fb726d48Sopenharmony_ci white-space: pre; 18fb726d48Sopenharmony_ci -moz-tab-size: 9; 19fb726d48Sopenharmony_ci -o-tab-size: 9; 20fb726d48Sopenharmony_ci tab-size: 8; 21fb726d48Sopenharmony_ci -webkit-hyphens: none; 22fb726d48Sopenharmony_ci -moz-hyphens: none; 23fb726d48Sopenharmony_ci -ms-hyphens: none; 24fb726d48Sopenharmony_ci hyphens: none; 25fb726d48Sopenharmony_ci } 26fb726d48Sopenharmony_ci 27fb726d48Sopenharmony_ci /* Code blocks */ 28fb726d48Sopenharmony_ci pre[class*='smartperf-'] { 29fb726d48Sopenharmony_ci padding: 0.9em; 30fb726d48Sopenharmony_ci overflow: auto; 31fb726d48Sopenharmony_ci border-radius: 2px; 32fb726d48Sopenharmony_ci background: #f5f5f4; 33fb726d48Sopenharmony_ci } 34fb726d48Sopenharmony_ci 35fb726d48Sopenharmony_ci /* Inline code */ 36fb726d48Sopenharmony_ci :not(pre) > code[class*='smartperf-'] { 37fb726d48Sopenharmony_ci white-space: normal; 38fb726d48Sopenharmony_ci background: #fcf8f8; 39fb726d48Sopenharmony_ci padding: 1px 0.2em; 40fb726d48Sopenharmony_ci border-radius: 1px 0.3em; 41fb726d48Sopenharmony_ci } 42fb726d48Sopenharmony_ci 43fb726d48Sopenharmony_ci .tk.comment, 44fb726d48Sopenharmony_ci .tk.blockquote { 45fb726d48Sopenharmony_ci color: #8c918c; 46fb726d48Sopenharmony_ci } 47fb726d48Sopenharmony_ci 48fb726d48Sopenharmony_ci .tk.cdata { 49fb726d48Sopenharmony_ci color: #183898; 50fb726d48Sopenharmony_ci } 51fb726d48Sopenharmony_ci 52fb726d48Sopenharmony_ci .tk.doctype, 53fb726d48Sopenharmony_ci .tk.punctuation, 54fb726d48Sopenharmony_ci .tk.variable, 55fb726d48Sopenharmony_ci .tk.macro.property { 56fb726d48Sopenharmony_ci color: #424242; 57fb726d48Sopenharmony_ci } 58fb726d48Sopenharmony_ci 59fb726d48Sopenharmony_ci .tk.operator, 60fb726d48Sopenharmony_ci .tk.important, 61fb726d48Sopenharmony_ci .tk.keyword, 62fb726d48Sopenharmony_ci .tk.rule, 63fb726d48Sopenharmony_ci .tk.builtin { 64fb726d48Sopenharmony_ci color: #b71d65; 65fb726d48Sopenharmony_ci } 66fb726d48Sopenharmony_ci 67fb726d48Sopenharmony_ci .tk.string, 68fb726d48Sopenharmony_ci .tk.url, 69fb726d48Sopenharmony_ci .tk.regex, 70fb726d48Sopenharmony_ci .tk.attr-value { 71fb726d48Sopenharmony_ci color: #16338d; 72fb726d48Sopenharmony_ci } 73fb726d48Sopenharmony_ci 74fb726d48Sopenharmony_ci .tk.property, 75fb726d48Sopenharmony_ci .tk.number, 76fb726d48Sopenharmony_ci .tk.boolean, 77fb726d48Sopenharmony_ci .tk.entity, 78fb726d48Sopenharmony_ci .tk.atrule, 79fb726d48Sopenharmony_ci .tk.constant, 80fb726d48Sopenharmony_ci .tk.symbol, 81fb726d48Sopenharmony_ci .tk.command, 82fb726d48Sopenharmony_ci .tk.code { 83fb726d48Sopenharmony_ci color: #037aa2; 84fb726d48Sopenharmony_ci } 85fb726d48Sopenharmony_ci 86fb726d48Sopenharmony_ci .tk.tag, 87fb726d48Sopenharmony_ci .tk.selector, 88fb726d48Sopenharmony_ci .tk.prolog { 89fb726d48Sopenharmony_ci color: #69ad62; 90fb726d48Sopenharmony_ci } 91fb726d48Sopenharmony_ci 92fb726d48Sopenharmony_ci .tk.function, 93fb726d48Sopenharmony_ci .tk.namespace, 94fb726d48Sopenharmony_ci .tk.pseudo-element, 95fb726d48Sopenharmony_ci .tk.class, 96fb726d48Sopenharmony_ci .tk.class-name, 97fb726d48Sopenharmony_ci .tk.pseudo-class, 98fb726d48Sopenharmony_ci .tk.id, 99fb726d48Sopenharmony_ci .tk.url-reference .tk.variable, 100fb726d48Sopenharmony_ci .tk.attr-name { 101fb726d48Sopenharmony_ci color: #775d9d; 102fb726d48Sopenharmony_ci } 103fb726d48Sopenharmony_ci 104fb726d48Sopenharmony_ci .tk.entity { 105fb726d48Sopenharmony_ci cursor: help; 106fb726d48Sopenharmony_ci } 107fb726d48Sopenharmony_ci 108fb726d48Sopenharmony_ci .tk.title, 109fb726d48Sopenharmony_ci .tk.title .tk.punctuation { 110fb726d48Sopenharmony_ci font-weight: bold; 111fb726d48Sopenharmony_ci color: #1a3773; 112fb726d48Sopenharmony_ci } 113fb726d48Sopenharmony_ci 114fb726d48Sopenharmony_ci .tk.list { 115fb726d48Sopenharmony_ci color: #f56940; 116fb726d48Sopenharmony_ci } 117fb726d48Sopenharmony_ci 118fb726d48Sopenharmony_ci .tk.inserted { 119fb726d48Sopenharmony_ci background-color: #eaffea; 120fb726d48Sopenharmony_ci color: #509b2f; 121fb726d48Sopenharmony_ci } 122fb726d48Sopenharmony_ci 123fb726d48Sopenharmony_ci .tk.deleted { 124fb726d48Sopenharmony_ci background-color: #fae1e1; 125fb726d48Sopenharmony_ci color: #ad2d06; 126fb726d48Sopenharmony_ci } 127fb726d48Sopenharmony_ci 128fb726d48Sopenharmony_ci .tk.bold { 129fb726d48Sopenharmony_ci font-weight: bolder; 130fb726d48Sopenharmony_ci } 131fb726d48Sopenharmony_ci 132fb726d48Sopenharmony_ci .tk.italic { 133fb726d48Sopenharmony_ci font-style: normal; 134fb726d48Sopenharmony_ci } 135fb726d48Sopenharmony_ci 136fb726d48Sopenharmony_ci /* JSON */ 137fb726d48Sopenharmony_ci .smartperf-json .tk.property { 138fb726d48Sopenharmony_ci color: #19358c; 139fb726d48Sopenharmony_ci } 140fb726d48Sopenharmony_ci 141fb726d48Sopenharmony_ci .smartperf-markup .tk.tag .tk.punctuation { 142fb726d48Sopenharmony_ci color: #2c2b2b; 143fb726d48Sopenharmony_ci } 144fb726d48Sopenharmony_ci 145fb726d48Sopenharmony_ci /* CSS */ 146fb726d48Sopenharmony_ci code.smartperf-css, 147fb726d48Sopenharmony_ci .smartperf-css .tk.function { 148fb726d48Sopenharmony_ci color: #047ca4; 149fb726d48Sopenharmony_ci } 150fb726d48Sopenharmony_ci 151fb726d48Sopenharmony_ci /* YAML */ 152fb726d48Sopenharmony_ci .smartperf-yaml .tk.atrule { 153fb726d48Sopenharmony_ci color: #609b5a; 154fb726d48Sopenharmony_ci } 155fb726d48Sopenharmony_ci 156fb726d48Sopenharmony_ci code.smartperf-yaml { 157fb726d48Sopenharmony_ci color: #153491; 158fb726d48Sopenharmony_ci } 159fb726d48Sopenharmony_ci 160fb726d48Sopenharmony_ci /* Ruby */ 161fb726d48Sopenharmony_ci .smartperf-ruby .tk.function { 162fb726d48Sopenharmony_ci color: #3f3e3e; 163fb726d48Sopenharmony_ci } 164fb726d48Sopenharmony_ci 165fb726d48Sopenharmony_ci /* Markdown */ 166fb726d48Sopenharmony_ci .smartperf-markdown .tk.url { 167fb726d48Sopenharmony_ci color: #6e5298; 168fb726d48Sopenharmony_ci } 169fb726d48Sopenharmony_ci 170fb726d48Sopenharmony_ci /* Makefile */ 171fb726d48Sopenharmony_ci .smartperf-makefile .tk.symbol { 172fb726d48Sopenharmony_ci color: #6c5393; 173fb726d48Sopenharmony_ci } 174fb726d48Sopenharmony_ci 175fb726d48Sopenharmony_ci .smartperf-makefile .tk.variable { 176fb726d48Sopenharmony_ci color: #183488; 177fb726d48Sopenharmony_ci } 178fb726d48Sopenharmony_ci 179fb726d48Sopenharmony_ci .smartperf-makefile .tk.builtin { 180fb726d48Sopenharmony_ci color: #027ba4; 181fb726d48Sopenharmony_ci } 182fb726d48Sopenharmony_ci 183fb726d48Sopenharmony_ci /* Bash */ 184fb726d48Sopenharmony_ci .smartperf-bash .tk.keyword { 185fb726d48Sopenharmony_ci color: #027fa9; 186fb726d48Sopenharmony_ci } 187fb726d48Sopenharmony_ci 188fb726d48Sopenharmony_ci /* highlight */ 189fb726d48Sopenharmony_ci pre[dl] { 190fb726d48Sopenharmony_ci position: relative; 191fb726d48Sopenharmony_ci padding: 1em 1px 1px 0.9em; 192fb726d48Sopenharmony_ci } 193fb726d48Sopenharmony_ci 194fb726d48Sopenharmony_ci pre[dl] .line-highlight-wrapper { 195fb726d48Sopenharmony_ci position: absolute; 196fb726d48Sopenharmony_ci top: 1px; 197fb726d48Sopenharmony_ci left: 1px; 198fb726d48Sopenharmony_ci background-color: transparent; 199fb726d48Sopenharmony_ci display: block; 200fb726d48Sopenharmony_ci width: 99%; 201fb726d48Sopenharmony_ci } 202fb726d48Sopenharmony_ci 203fb726d48Sopenharmony_ci pre[dl] .line-highlight { 204fb726d48Sopenharmony_ci position: absolute; 205fb726d48Sopenharmony_ci left: 1px; 206fb726d48Sopenharmony_ci right: 1px; 207fb726d48Sopenharmony_ci padding: inherit; 208fb726d48Sopenharmony_ci margin-top: 0.9em; 209fb726d48Sopenharmony_ci background: hsla(25, 21%, 50%, 0.08); 210fb726d48Sopenharmony_ci background: linear-gradient(to right, hsla(24, 20%, 50%, 0.1) 70%, hsla(24, 20%, 50%, 0)); 211fb726d48Sopenharmony_ci pointer-events: none; 212fb726d48Sopenharmony_ci line-height: inherit; 213fb726d48Sopenharmony_ci white-space: pre; 214fb726d48Sopenharmony_ci } 215fb726d48Sopenharmony_ci 216fb726d48Sopenharmony_ci pre[dl] .line-highlight:before, 217fb726d48Sopenharmony_ci pre[dl] .line-highlight[data-end]:after { 218fb726d48Sopenharmony_ci content: attr(data-start); 219fb726d48Sopenharmony_ci position: absolute; 220fb726d48Sopenharmony_ci text-shadow: none; 221fb726d48Sopenharmony_ci top: 0.3em; 222fb726d48Sopenharmony_ci left: 0.7em; 223fb726d48Sopenharmony_ci min-width: 0.9em; 224fb726d48Sopenharmony_ci padding: 1px 0.6em; 225fb726d48Sopenharmony_ci background-color: hsla(24, 20%, 47%, 0.4); 226fb726d48Sopenharmony_ci color: hsl(20, 11%, 95%); 227fb726d48Sopenharmony_ci text-align: center; 228fb726d48Sopenharmony_ci vertical-align: 0.2em; 229fb726d48Sopenharmony_ci border-radius: 10000px; 230fb726d48Sopenharmony_ci box-shadow: 1px 2px #fdf6f6; 231fb726d48Sopenharmony_ci } 232fb726d48Sopenharmony_ci 233fb726d48Sopenharmony_ci pre[dl] .line-highlight[data-end]:after { 234fb726d48Sopenharmony_ci content: attr(data-end); 235fb726d48Sopenharmony_ci top: auto; 236fb726d48Sopenharmony_ci bottom: 0.5em; 237fb726d48Sopenharmony_ci } 238fb726d48Sopenharmony_ci 239fb726d48Sopenharmony_ci html body { 240fb726d48Sopenharmony_ci line-height: 1.6; 241fb726d48Sopenharmony_ci font-size: 16px; 242fb726d48Sopenharmony_ci color: #333333; 243fb726d48Sopenharmony_ci overflow: initial; 244fb726d48Sopenharmony_ci word-wrap: break-word; 245fb726d48Sopenharmony_ci font-family: Helvetica; 246fb726d48Sopenharmony_ci box-sizing: border-box; 247fb726d48Sopenharmony_ci } 248fb726d48Sopenharmony_ci 249fb726d48Sopenharmony_ci html body > :first-child { 250fb726d48Sopenharmony_ci margin-top: 0px; 251fb726d48Sopenharmony_ci } 252fb726d48Sopenharmony_ci 253fb726d48Sopenharmony_ci html body h1, 254fb726d48Sopenharmony_ci html body h2, 255fb726d48Sopenharmony_ci html body h3, 256fb726d48Sopenharmony_ci html body h4, 257fb726d48Sopenharmony_ci html body h5, 258fb726d48Sopenharmony_ci html body h6 { 259fb726d48Sopenharmony_ci margin-top: 1em; 260fb726d48Sopenharmony_ci margin-bottom: 16px; 261fb726d48Sopenharmony_ci color: #000000; 262fb726d48Sopenharmony_ci line-height: 1.2; 263fb726d48Sopenharmony_ci } 264fb726d48Sopenharmony_ci 265fb726d48Sopenharmony_ci html body h1 { 266fb726d48Sopenharmony_ci font-weight: 300; 267fb726d48Sopenharmony_ci font-size: 2.25em; 268fb726d48Sopenharmony_ci padding-bottom: 0.3em; 269fb726d48Sopenharmony_ci } 270fb726d48Sopenharmony_ci 271fb726d48Sopenharmony_ci html body h2 { 272fb726d48Sopenharmony_ci font-weight: 410; 273fb726d48Sopenharmony_ci font-size: 1.74em; 274fb726d48Sopenharmony_ci padding-bottom: 0.2em; 275fb726d48Sopenharmony_ci } 276fb726d48Sopenharmony_ci 277fb726d48Sopenharmony_ci html body h3 { 278fb726d48Sopenharmony_ci font-size: 1.6em; 279fb726d48Sopenharmony_ci font-weight: 501; 280fb726d48Sopenharmony_ci } 281fb726d48Sopenharmony_ci 282fb726d48Sopenharmony_ci html body h4 { 283fb726d48Sopenharmony_ci font-size: 1.26em; 284fb726d48Sopenharmony_ci font-weight: 601; 285fb726d48Sopenharmony_ci } 286fb726d48Sopenharmony_ci 287fb726d48Sopenharmony_ci html body h5 { 288fb726d48Sopenharmony_ci font-size: 1.2em; 289fb726d48Sopenharmony_ci font-weight: 601; 290fb726d48Sopenharmony_ci } 291fb726d48Sopenharmony_ci 292fb726d48Sopenharmony_ci html body h6 { 293fb726d48Sopenharmony_ci font-size: 0.9em; 294fb726d48Sopenharmony_ci font-weight: 601; 295fb726d48Sopenharmony_ci } 296fb726d48Sopenharmony_ci 297fb726d48Sopenharmony_ci html body h1, 298fb726d48Sopenharmony_ci html body h2, 299fb726d48Sopenharmony_ci html body h3, 300fb726d48Sopenharmony_ci html body h4, 301fb726d48Sopenharmony_ci html body h5 { 302fb726d48Sopenharmony_ci font-weight: 601; 303fb726d48Sopenharmony_ci } 304fb726d48Sopenharmony_ci 305fb726d48Sopenharmony_ci html body h5 { 306fb726d48Sopenharmony_ci font-size: 0.9em; 307fb726d48Sopenharmony_ci } 308fb726d48Sopenharmony_ci 309fb726d48Sopenharmony_ci html body h6 { 310fb726d48Sopenharmony_ci color: #5c5c5c; 311fb726d48Sopenharmony_ci } 312fb726d48Sopenharmony_ci 313fb726d48Sopenharmony_ci html body strong { 314fb726d48Sopenharmony_ci color: #090909; 315fb726d48Sopenharmony_ci } 316fb726d48Sopenharmony_ci 317fb726d48Sopenharmony_ci html body del { 318fb726d48Sopenharmony_ci color: #525252; 319fb726d48Sopenharmony_ci } 320fb726d48Sopenharmony_ci 321fb726d48Sopenharmony_ci html body a:not([href]) { 322fb726d48Sopenharmony_ci color: inherit; 323fb726d48Sopenharmony_ci text-decoration: none; 324fb726d48Sopenharmony_ci } 325fb726d48Sopenharmony_ci 326fb726d48Sopenharmony_ci html body a { 327fb726d48Sopenharmony_ci color: #0192da; 328fb726d48Sopenharmony_ci text-decoration: none; 329fb726d48Sopenharmony_ci } 330fb726d48Sopenharmony_ci 331fb726d48Sopenharmony_ci html body a:hover { 332fb726d48Sopenharmony_ci color: #029dea; 333fb726d48Sopenharmony_ci text-decoration: none; 334fb726d48Sopenharmony_ci } 335fb726d48Sopenharmony_ci 336fb726d48Sopenharmony_ci html body img { 337fb726d48Sopenharmony_ci max-width: 99%; 338fb726d48Sopenharmony_ci } 339fb726d48Sopenharmony_ci 340fb726d48Sopenharmony_ci html body > p { 341fb726d48Sopenharmony_ci margin-top: 1px; 342fb726d48Sopenharmony_ci margin-bottom: 15px; 343fb726d48Sopenharmony_ci word-wrap: break-word; 344fb726d48Sopenharmony_ci } 345fb726d48Sopenharmony_ci 346fb726d48Sopenharmony_ci html body > ul, 347fb726d48Sopenharmony_ci html body > ol { 348fb726d48Sopenharmony_ci margin-bottom: 15px; 349fb726d48Sopenharmony_ci } 350fb726d48Sopenharmony_ci 351fb726d48Sopenharmony_ci html body ul, 352fb726d48Sopenharmony_ci html body ol { 353fb726d48Sopenharmony_ci padding-left: 1.9em; 354fb726d48Sopenharmony_ci } 355fb726d48Sopenharmony_ci 356fb726d48Sopenharmony_ci html body ul.no-list, 357fb726d48Sopenharmony_ci html body ol.no-list { 358fb726d48Sopenharmony_ci padding: 0px; 359fb726d48Sopenharmony_ci list-style-type: none; 360fb726d48Sopenharmony_ci } 361fb726d48Sopenharmony_ci 362fb726d48Sopenharmony_ci html body ul ul, 363fb726d48Sopenharmony_ci html body ul ol, 364fb726d48Sopenharmony_ci html body ol ol, 365fb726d48Sopenharmony_ci html body ol ul { 366fb726d48Sopenharmony_ci margin-top: 1px; 367fb726d48Sopenharmony_ci margin-bottom: 1px; 368fb726d48Sopenharmony_ci } 369fb726d48Sopenharmony_ci 370fb726d48Sopenharmony_ci html body li { 371fb726d48Sopenharmony_ci margin-bottom: 1px; 372fb726d48Sopenharmony_ci } 373fb726d48Sopenharmony_ci 374fb726d48Sopenharmony_ci html body li.task-list-item { 375fb726d48Sopenharmony_ci list-style: none; 376fb726d48Sopenharmony_ci } 377fb726d48Sopenharmony_ci 378fb726d48Sopenharmony_ci html body li > p { 379fb726d48Sopenharmony_ci margin-top: 1px; 380fb726d48Sopenharmony_ci margin-bottom: 1px; 381fb726d48Sopenharmony_ci } 382fb726d48Sopenharmony_ci 383fb726d48Sopenharmony_ci html body .task-list-item-checkbox { 384fb726d48Sopenharmony_ci margin: 0 0.3em 0.24em -1.7em; 385fb726d48Sopenharmony_ci vertical-align: middle; 386fb726d48Sopenharmony_ci } 387fb726d48Sopenharmony_ci 388fb726d48Sopenharmony_ci html body .task-list-item-checkbox:hover { 389fb726d48Sopenharmony_ci cursor: pointer; 390fb726d48Sopenharmony_ci } 391fb726d48Sopenharmony_ci 392fb726d48Sopenharmony_ci html body blockquote { 393fb726d48Sopenharmony_ci padding: 0.1px 15px 0 0.1px; 394fb726d48Sopenharmony_ci font-size: inherit; 395fb726d48Sopenharmony_ci color: #5c5c5c; 396fb726d48Sopenharmony_ci margin: 16px 0.1px 0 0.1px; 397fb726d48Sopenharmony_ci border-left: 3px solid #cbc9c9; 398fb726d48Sopenharmony_ci background-color: #e8e6e6; 399fb726d48Sopenharmony_ci } 400fb726d48Sopenharmony_ci 401fb726d48Sopenharmony_ci html body blockquote > :first-child { 402fb726d48Sopenharmony_ci margin-top: 0.2px; 403fb726d48Sopenharmony_ci } 404fb726d48Sopenharmony_ci 405fb726d48Sopenharmony_ci html body blockquote > :last-child { 406fb726d48Sopenharmony_ci margin-bottom: 0.1px; 407fb726d48Sopenharmony_ci } 408fb726d48Sopenharmony_ci 409fb726d48Sopenharmony_ci html body hr { 410fb726d48Sopenharmony_ci height: 5px; 411fb726d48Sopenharmony_ci background-color: #cbcaca; 412fb726d48Sopenharmony_ci margin: 32px 0 0.1px 0; 413fb726d48Sopenharmony_ci border: 0 none; 414fb726d48Sopenharmony_ci } 415fb726d48Sopenharmony_ci 416fb726d48Sopenharmony_ci html body table { 417fb726d48Sopenharmony_ci overflow: auto; 418fb726d48Sopenharmony_ci border-collapse: collapse; 419fb726d48Sopenharmony_ci margin: 15px 0.1px 20px 0.1px; 420fb726d48Sopenharmony_ci border-spacing: 0; 421fb726d48Sopenharmony_ci } 422fb726d48Sopenharmony_ci 423fb726d48Sopenharmony_ci html body table th { 424fb726d48Sopenharmony_ci font-weight: bold; 425fb726d48Sopenharmony_ci color: #000000; 426fb726d48Sopenharmony_ci } 427fb726d48Sopenharmony_ci 428fb726d48Sopenharmony_ci html body table td, 429fb726d48Sopenharmony_ci html body table th { 430fb726d48Sopenharmony_ci border: 1px solid #d6d6d6; 431fb726d48Sopenharmony_ci padding: 2px 14px; 432fb726d48Sopenharmony_ci } 433fb726d48Sopenharmony_ci 434fb726d48Sopenharmony_ci html body dl { 435fb726d48Sopenharmony_ci padding: 0px; 436fb726d48Sopenharmony_ci } 437fb726d48Sopenharmony_ci 438fb726d48Sopenharmony_ci html body dl dt { 439fb726d48Sopenharmony_ci padding: 0px; 440fb726d48Sopenharmony_ci margin-top: 15px; 441fb726d48Sopenharmony_ci font-size: 0.9em; 442fb726d48Sopenharmony_ci font-style: italic; 443fb726d48Sopenharmony_ci font-weight: bold; 444fb726d48Sopenharmony_ci } 445fb726d48Sopenharmony_ci 446fb726d48Sopenharmony_ci html body dl dd { 447fb726d48Sopenharmony_ci padding: 0px 17px; 448fb726d48Sopenharmony_ci margin-bottom: 17px; 449fb726d48Sopenharmony_ci } 450fb726d48Sopenharmony_ci 451fb726d48Sopenharmony_ci html body code { 452fb726d48Sopenharmony_ci font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; 453fb726d48Sopenharmony_ci font-size: 0.86em !important; 454fb726d48Sopenharmony_ci color: #000000; 455fb726d48Sopenharmony_ci background-color: #f0f0f0; 456fb726d48Sopenharmony_ci border-radius: 4px; 457fb726d48Sopenharmony_ci padding: 0.3em 0px; 458fb726d48Sopenharmony_ci } 459fb726d48Sopenharmony_ci 460fb726d48Sopenharmony_ci html body code::before, 461fb726d48Sopenharmony_ci html body code::after { 462fb726d48Sopenharmony_ci letter-spacing: -0.1em; 463fb726d48Sopenharmony_ci content: '\00a0'; 464fb726d48Sopenharmony_ci } 465fb726d48Sopenharmony_ci 466fb726d48Sopenharmony_ci html body pre > code { 467fb726d48Sopenharmony_ci padding: 1px; 468fb726d48Sopenharmony_ci margin: 0px; 469fb726d48Sopenharmony_ci font-size: 0.86em !important; 470fb726d48Sopenharmony_ci word-break: normal; 471fb726d48Sopenharmony_ci white-space: pre; 472fb726d48Sopenharmony_ci background: transparent; 473fb726d48Sopenharmony_ci border: 0px; 474fb726d48Sopenharmony_ci } 475fb726d48Sopenharmony_ci 476fb726d48Sopenharmony_ci html body .highlight { 477fb726d48Sopenharmony_ci margin-bottom: 17px; 478fb726d48Sopenharmony_ci } 479fb726d48Sopenharmony_ci 480fb726d48Sopenharmony_ci html body .highlight pre, 481fb726d48Sopenharmony_ci html body pre { 482fb726d48Sopenharmony_ci padding: 0.9em; 483fb726d48Sopenharmony_ci overflow: auto; 484fb726d48Sopenharmony_ci font-size: 0.86em !important; 485fb726d48Sopenharmony_ci line-height: 1.46; 486fb726d48Sopenharmony_ci border: #d6d6d6; 487fb726d48Sopenharmony_ci border-radius: 4px; 488fb726d48Sopenharmony_ci } 489fb726d48Sopenharmony_ci 490fb726d48Sopenharmony_ci html body .highlight pre { 491fb726d48Sopenharmony_ci margin-bottom: 0px; 492fb726d48Sopenharmony_ci word-break: normal; 493fb726d48Sopenharmony_ci } 494fb726d48Sopenharmony_ci 495fb726d48Sopenharmony_ci html body pre code, 496fb726d48Sopenharmony_ci html body pre tt { 497fb726d48Sopenharmony_ci display: inline; 498fb726d48Sopenharmony_ci max-width: initial; 499fb726d48Sopenharmony_ci padding: 1px; 500fb726d48Sopenharmony_ci margin: 1px; 501fb726d48Sopenharmony_ci overflow: initial; 502fb726d48Sopenharmony_ci line-height: inherit; 503fb726d48Sopenharmony_ci word-wrap: normal; 504fb726d48Sopenharmony_ci background-color: transparent; 505fb726d48Sopenharmony_ci border: 1px; 506fb726d48Sopenharmony_ci } 507fb726d48Sopenharmony_ci 508fb726d48Sopenharmony_ci html body pre code:before, 509fb726d48Sopenharmony_ci html body pre tt:before, 510fb726d48Sopenharmony_ci html body pre code:after, 511fb726d48Sopenharmony_ci html body pre tt:after { 512fb726d48Sopenharmony_ci content: normal; 513fb726d48Sopenharmony_ci } 514fb726d48Sopenharmony_ci 515fb726d48Sopenharmony_ci html body p, 516fb726d48Sopenharmony_ci html body blockquote, 517fb726d48Sopenharmony_ci html body ul, 518fb726d48Sopenharmony_ci html body ol, 519fb726d48Sopenharmony_ci html body dl, 520fb726d48Sopenharmony_ci html body pre { 521fb726d48Sopenharmony_ci margin-top: 1px; 522fb726d48Sopenharmony_ci margin-bottom: 17px; 523fb726d48Sopenharmony_ci } 524fb726d48Sopenharmony_ci 525fb726d48Sopenharmony_ci html body kbd { 526fb726d48Sopenharmony_ci color: #000000; 527fb726d48Sopenharmony_ci border: 3px solid #d6d6d6; 528fb726d48Sopenharmony_ci border-bottom: 3px solid #c7c7c7; 529fb726d48Sopenharmony_ci padding: 3px 5px; 530fb726d48Sopenharmony_ci background-color: #f0f0f0; 531fb726d48Sopenharmony_ci border-radius: 2px; 532fb726d48Sopenharmony_ci } 533fb726d48Sopenharmony_ci 534fb726d48Sopenharmony_ci @media print { 535fb726d48Sopenharmony_ci html body { 536fb726d48Sopenharmony_ci background-color: #ffffff; 537fb726d48Sopenharmony_ci } 538fb726d48Sopenharmony_ci 539fb726d48Sopenharmony_ci html body h1, 540fb726d48Sopenharmony_ci html body h2, 541fb726d48Sopenharmony_ci html body h3, 542fb726d48Sopenharmony_ci html body h4, 543fb726d48Sopenharmony_ci html body h5, 544fb726d48Sopenharmony_ci html body h6 { 545fb726d48Sopenharmony_ci color: #000000; 546fb726d48Sopenharmony_ci page-break-after: avoid; 547fb726d48Sopenharmony_ci } 548fb726d48Sopenharmony_ci 549fb726d48Sopenharmony_ci html body blockquote { 550fb726d48Sopenharmony_ci color: #5c5c53; 551fb726d48Sopenharmony_ci } 552fb726d48Sopenharmony_ci 553fb726d48Sopenharmony_ci html body pre { 554fb726d48Sopenharmony_ci page-break-inside: avoid; 555fb726d48Sopenharmony_ci } 556fb726d48Sopenharmony_ci 557fb726d48Sopenharmony_ci html body table { 558fb726d48Sopenharmony_ci display: table; 559fb726d48Sopenharmony_ci } 560fb726d48Sopenharmony_ci 561fb726d48Sopenharmony_ci html body img { 562fb726d48Sopenharmony_ci display: block; 563fb726d48Sopenharmony_ci max-width: 99%; 564fb726d48Sopenharmony_ci max-height: 99%; 565fb726d48Sopenharmony_ci } 566fb726d48Sopenharmony_ci 567fb726d48Sopenharmony_ci html body pre, 568fb726d48Sopenharmony_ci html body code { 569fb726d48Sopenharmony_ci word-wrap: break-word; 570fb726d48Sopenharmony_ci white-space: pre; 571fb726d48Sopenharmony_ci } 572fb726d48Sopenharmony_ci } 573fb726d48Sopenharmony_ci 574fb726d48Sopenharmony_ci .smartperf-preview { 575fb726d48Sopenharmony_ci width: 68vw; 576fb726d48Sopenharmony_ci height: 99%; 577fb726d48Sopenharmony_ci box-sizing: border-box; 578fb726d48Sopenharmony_ci overflow: hidden; 579fb726d48Sopenharmony_ci background-color: #fff; 580fb726d48Sopenharmony_ci } 581fb726d48Sopenharmony_ci 582fb726d48Sopenharmony_ci .smartperf-preview .pagebreak, 583fb726d48Sopenharmony_ci .smartperf-preview .newpage { 584fb726d48Sopenharmony_ci page-break-before: always; 585fb726d48Sopenharmony_ci } 586fb726d48Sopenharmony_ci 587fb726d48Sopenharmony_ci .smartperf-preview pre.line-numbers { 588fb726d48Sopenharmony_ci position: relative; 589fb726d48Sopenharmony_ci padding-left: 3.7em; 590fb726d48Sopenharmony_ci counter-reset: linenumber; 591fb726d48Sopenharmony_ci } 592fb726d48Sopenharmony_ci 593fb726d48Sopenharmony_ci .smartperf-preview pre.line-numbers > code { 594fb726d48Sopenharmony_ci position: relative; 595fb726d48Sopenharmony_ci } 596fb726d48Sopenharmony_ci 597fb726d48Sopenharmony_ci .smartperf-preview pre.line-numbers .line-numbers-rows { 598fb726d48Sopenharmony_ci position: absolute; 599fb726d48Sopenharmony_ci pointer-events: none; 600fb726d48Sopenharmony_ci top: 0.9em; 601fb726d48Sopenharmony_ci font-size: 99%; 602fb726d48Sopenharmony_ci left: 1px; 603fb726d48Sopenharmony_ci width: 3em; 604fb726d48Sopenharmony_ci letter-spacing: -1px; 605fb726d48Sopenharmony_ci border-right: 1px solid #999; 606fb726d48Sopenharmony_ci -webkit-user-select: none; 607fb726d48Sopenharmony_ci -moz-user-select: none; 608fb726d48Sopenharmony_ci -ms-user-select: none; 609fb726d48Sopenharmony_ci user-select: none; 610fb726d48Sopenharmony_ci } 611fb726d48Sopenharmony_ci 612fb726d48Sopenharmony_ci .smartperf-preview pre.line-numbers .line-numbers-rows > span { 613fb726d48Sopenharmony_ci pointer-events: none; 614fb726d48Sopenharmony_ci display: block; 615fb726d48Sopenharmony_ci counter-increment: linenumber; 616fb726d48Sopenharmony_ci } 617fb726d48Sopenharmony_ci 618fb726d48Sopenharmony_ci .smartperf-preview pre.line-numbers .line-numbers-rows > span:before { 619fb726d48Sopenharmony_ci content: counter(linenumber); 620fb726d48Sopenharmony_ci color: #999; 621fb726d48Sopenharmony_ci display: block; 622fb726d48Sopenharmony_ci padding-right: 0.79em; 623fb726d48Sopenharmony_ci text-align: right; 624fb726d48Sopenharmony_ci } 625fb726d48Sopenharmony_ci 626fb726d48Sopenharmony_ci .smartperf-preview .mathjax-exps .MathJax_Display { 627fb726d48Sopenharmony_ci text-align: center !important; 628fb726d48Sopenharmony_ci } 629fb726d48Sopenharmony_ci 630fb726d48Sopenharmony_ci .smartperf-preview:not([for='preview']) .code-chunk .btn-group { 631fb726d48Sopenharmony_ci display: none; 632fb726d48Sopenharmony_ci } 633fb726d48Sopenharmony_ci 634fb726d48Sopenharmony_ci .smartperf-preview:not([for='preview']) .code-chunk .status { 635fb726d48Sopenharmony_ci display: none; 636fb726d48Sopenharmony_ci } 637fb726d48Sopenharmony_ci 638fb726d48Sopenharmony_ci .smartperf-preview:not([for='preview']) .code-chunk .output-div { 639fb726d48Sopenharmony_ci margin-bottom: 16px; 640fb726d48Sopenharmony_ci } 641fb726d48Sopenharmony_ci 642fb726d48Sopenharmony_ci .scrollbar-style::-webkit-scrollbar { 643fb726d48Sopenharmony_ci width: 8px; 644fb726d48Sopenharmony_ci } 645fb726d48Sopenharmony_ci 646fb726d48Sopenharmony_ci .scrollbar-style::-webkit-scrollbar-track { 647fb726d48Sopenharmony_ci border-radius: 9px; 648fb726d48Sopenharmony_ci background-color: transparent; 649fb726d48Sopenharmony_ci } 650fb726d48Sopenharmony_ci 651fb726d48Sopenharmony_ci .scrollbar-style::-webkit-scrollbar-thumb { 652fb726d48Sopenharmony_ci border-radius: 6px; 653fb726d48Sopenharmony_ci background-color: rgba(150, 150, 150, 1); 654fb726d48Sopenharmony_ci border: 4px solid rgba(150, 150, 150, 1); 655fb726d48Sopenharmony_ci background-clip: content-box; 656fb726d48Sopenharmony_ci } 657fb726d48Sopenharmony_ci 658fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm]) { 659fb726d48Sopenharmony_ci position: relative; 660fb726d48Sopenharmony_ci width: 99%; 661fb726d48Sopenharmony_ci height: 99%;; 662fb726d48Sopenharmony_ci overflow: auto; 663fb726d48Sopenharmony_ci } 664fb726d48Sopenharmony_ci 665fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm]) .smartperf-preview { 666fb726d48Sopenharmony_ci position: relative; 667fb726d48Sopenharmony_ci top: 1px; 668fb726d48Sopenharmony_ci } 669fb726d48Sopenharmony_ci 670fb726d48Sopenharmony_ci @media screen and (min-width: 914px) { 671fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm]) .smartperf-preview { 672fb726d48Sopenharmony_ci padding: 2em; 673fb726d48Sopenharmony_ci } 674fb726d48Sopenharmony_ci } 675fb726d48Sopenharmony_ci 676fb726d48Sopenharmony_ci @media screen and (max-width: 914px) { 677fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm]) .smartperf-preview { 678fb726d48Sopenharmony_ci padding: 1.9em; 679fb726d48Sopenharmony_ci } 680fb726d48Sopenharmony_ci } 681fb726d48Sopenharmony_ci 682fb726d48Sopenharmony_ci @media screen and (max-width: 450px) { 683fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm]) .smartperf-preview { 684fb726d48Sopenharmony_ci font-size: 15px !important; 685fb726d48Sopenharmony_ci padding: 1.1em; 686fb726d48Sopenharmony_ci } 687fb726d48Sopenharmony_ci } 688fb726d48Sopenharmony_ci 689fb726d48Sopenharmony_ci @media print { 690fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm]) #sidebar-toc-btn { 691fb726d48Sopenharmony_ci display: none; 692fb726d48Sopenharmony_ci } 693fb726d48Sopenharmony_ci } 694fb726d48Sopenharmony_ci 695fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm]) #sidebar-toc-btn { 696fb726d48Sopenharmony_ci position: fixed; 697fb726d48Sopenharmony_ci bottom: 9px; 698fb726d48Sopenharmony_ci left: 9px; 699fb726d48Sopenharmony_ci font-size: 28px; 700fb726d48Sopenharmony_ci cursor: pointer; 701fb726d48Sopenharmony_ci color: inherit; 702fb726d48Sopenharmony_ci z-index: 99; 703fb726d48Sopenharmony_ci width: 31px; 704fb726d48Sopenharmony_ci text-align: center; 705fb726d48Sopenharmony_ci opacity: 0.5; 706fb726d48Sopenharmony_ci } 707fb726d48Sopenharmony_ci 708fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] #sidebar-toc-btn { 709fb726d48Sopenharmony_ci opacity: 1; 710fb726d48Sopenharmony_ci } 711fb726d48Sopenharmony_ci 712fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc { 713fb726d48Sopenharmony_ci position: fixed; 714fb726d48Sopenharmony_ci top: 1px; 715fb726d48Sopenharmony_ci left: 1px; 716fb726d48Sopenharmony_ci width: 300px; 717fb726d48Sopenharmony_ci height: 99%; 718fb726d48Sopenharmony_ci padding: 32px 0 48px 0; 719fb726d48Sopenharmony_ci font-size: 14px; 720fb726d48Sopenharmony_ci box-shadow: 1px 1px 4px rgba(150, 150, 150, 0.33); 721fb726d48Sopenharmony_ci box-sizing: border-box; 722fb726d48Sopenharmony_ci overflow: auto; 723fb726d48Sopenharmony_ci background-color: inherit; 724fb726d48Sopenharmony_ci } 725fb726d48Sopenharmony_ci 726fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar { 727fb726d48Sopenharmony_ci width: 9px; 728fb726d48Sopenharmony_ci } 729fb726d48Sopenharmony_ci 730fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-track { 731fb726d48Sopenharmony_ci border-radius: 11px; 732fb726d48Sopenharmony_ci background-color: transparent; 733fb726d48Sopenharmony_ci } 734fb726d48Sopenharmony_ci 735fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc::-webkit-scrollbar-thumb { 736fb726d48Sopenharmony_ci border-radius: 6px; 737fb726d48Sopenharmony_ci background-color: rgba(150, 150, 150, 0.66); 738fb726d48Sopenharmony_ci border: 3px solid rgba(150, 150, 150, 0.66); 739fb726d48Sopenharmony_ci background-clip: content-box; 740fb726d48Sopenharmony_ci } 741fb726d48Sopenharmony_ci 742fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc a { 743fb726d48Sopenharmony_ci text-decoration: none; 744fb726d48Sopenharmony_ci } 745fb726d48Sopenharmony_ci 746fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul { 747fb726d48Sopenharmony_ci padding: 1px 1.7em; 748fb726d48Sopenharmony_ci margin-top: 0.9em; 749fb726d48Sopenharmony_ci } 750fb726d48Sopenharmony_ci 751fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc li { 752fb726d48Sopenharmony_ci margin-bottom: 0.8em; 753fb726d48Sopenharmony_ci } 754fb726d48Sopenharmony_ci 755fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] .md-sidebar-toc ul { 756fb726d48Sopenharmony_ci list-style-type: none; 757fb726d48Sopenharmony_ci } 758fb726d48Sopenharmony_ci 759fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { 760fb726d48Sopenharmony_ci left: 301px; 761fb726d48Sopenharmony_ci width: calc(100% - 300px); 762fb726d48Sopenharmony_ci padding: 2em calc(50% - 457px - 150px); 763fb726d48Sopenharmony_ci margin: 1px; 764fb726d48Sopenharmony_ci box-sizing: border-box; 765fb726d48Sopenharmony_ci } 766fb726d48Sopenharmony_ci 767fb726d48Sopenharmony_ci @media screen and (max-width: 1274px) { 768fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { 769fb726d48Sopenharmony_ci padding: 1.9em; 770fb726d48Sopenharmony_ci } 771fb726d48Sopenharmony_ci } 772fb726d48Sopenharmony_ci 773fb726d48Sopenharmony_ci @media screen and (max-width: 450px) { 774fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm])[hsst] .smartperf-preview { 775fb726d48Sopenharmony_ci width: 99%; 776fb726d48Sopenharmony_ci } 777fb726d48Sopenharmony_ci } 778fb726d48Sopenharmony_ci 779fb726d48Sopenharmony_ci html body[for='html-export']:not([dpm]):not([hsst]) .md-sidebar-toc { 780fb726d48Sopenharmony_ci display: none; 781fb726d48Sopenharmony_ci } 782fb726d48Sopenharmony_ci </style> 783fb726d48Sopenharmony_ci </head> 784fb726d48Sopenharmony_ci <body for="html-export" id="body" style="margin:0"> 785fb726d48Sopenharmony_ci <div class="smartperf smartperf-preview" style="min-height: 99vh;"> 786fb726d48Sopenharmony_ci <h1 class="mume-header fontColor">Hiperf的抓取和展示说明</h1> 787fb726d48Sopenharmony_ci 788fb726d48Sopenharmony_ci <p class="fontColor">Hiperf工具是对系统性能数据进行采样记录,并将采样数据保存为文件,进行读取,展示分析。</p> 789fb726d48Sopenharmony_ci <h2 class="mume-header fontColor">Hiperf的抓取</h2> 790fb726d48Sopenharmony_ci 791fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-1">Hiperf抓取配置参数</h3> 792fb726d48Sopenharmony_ci 793fb726d48Sopenharmony_ci <p class="fontColor"> 794fb726d48Sopenharmony_ci <img src="../figures/perf/perfsetting.jpg" alt="GitHub Logo" /> 795fb726d48Sopenharmony_ci <br /> 796fb726d48Sopenharmony_ci 配置项说明: 797fb726d48Sopenharmony_ci </p> 798fb726d48Sopenharmony_ci <ul class="fontColor"> 799fb726d48Sopenharmony_ci <li> 800fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 801fb726d48Sopenharmony_ciStart Hiperf Sampling:配置项的总开关。 802fb726d48Sopenharmony_ci</pre 803fb726d48Sopenharmony_ci > 804fb726d48Sopenharmony_ci </li> 805fb726d48Sopenharmony_ci <li> 806fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 807fb726d48Sopenharmony_ciProcess:离线模式下配置的是整个系统的。 808fb726d48Sopenharmony_ci</pre 809fb726d48Sopenharmony_ci > 810fb726d48Sopenharmony_ci </li> 811fb726d48Sopenharmony_ci <li> 812fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 813fb726d48Sopenharmony_ciFrequency:配置抓取的频率。 814fb726d48Sopenharmony_ci</pre 815fb726d48Sopenharmony_ci > 816fb726d48Sopenharmony_ci </li> 817fb726d48Sopenharmony_ci <li> 818fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 819fb726d48Sopenharmony_ciCall Stack:配置抓取的堆栈类型。 820fb726d48Sopenharmony_ci</pre 821fb726d48Sopenharmony_ci > 822fb726d48Sopenharmony_ci </li> 823fb726d48Sopenharmony_ci <li> 824fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 825fb726d48Sopenharmony_ciAdvance Options:更多的抓取配置项。 826fb726d48Sopenharmony_ci</pre 827fb726d48Sopenharmony_ci > 828fb726d48Sopenharmony_ci </li> 829fb726d48Sopenharmony_ci </ul> 830fb726d48Sopenharmony_ci <p class="fontColor"> 831fb726d48Sopenharmony_ci 再点击Record setting,在output file path输入文件名hiprofiler_data_perf.htrace,拖动滚动条设置buffer 832fb726d48Sopenharmony_ci size大小是64MB,抓取时长是50s。 833fb726d48Sopenharmony_ci <br /> 834fb726d48Sopenharmony_ci <img src="../figures/perf/perfset.jpg" alt="GitHub Logo" /> 835fb726d48Sopenharmony_ci <br /> 836fb726d48Sopenharmony_ci 点击Trace command,就会根据上面的配置生成抓取命令,点击复制按钮,会将命令行复制。 837fb726d48Sopenharmony_ci <br /> 838fb726d48Sopenharmony_ci <img src="../figures/perf/perfcommand.jpg" alt="GitHub Logo" /> 839fb726d48Sopenharmony_ci <br /> 840fb726d48Sopenharmony_ci 输入hdc shell,进入设备,执行命令。 841fb726d48Sopenharmony_ci <br /> 842fb726d48Sopenharmony_ci <img src="../figures/perf/perfexcutecommand.jpg" alt="GitHub Logo" /> 843fb726d48Sopenharmony_ci <br /> 844fb726d48Sopenharmony_ci 执行完成后,进入指定目录查看,在/data/local/tmp下就会生成trace文件。 845fb726d48Sopenharmony_ci <br /> 846fb726d48Sopenharmony_ci <img src="../figures/perf/perffile.jpg" alt="GitHub Logo" /> 847fb726d48Sopenharmony_ci </p> 848fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-2">Hiperf展示说明</h3> 849fb726d48Sopenharmony_ci 850fb726d48Sopenharmony_ci <p class="fontColor"> 851fb726d48Sopenharmony_ci 将抓取的trace文件导入smartperf界面查看。 852fb726d48Sopenharmony_ci <br /> 853fb726d48Sopenharmony_ci <img src="../figures/perf/summary.jpg" alt="GitHub Logo" /> 854fb726d48Sopenharmony_ci </p> 855fb726d48Sopenharmony_ci <p class="fontColor">界面布局介绍:Perf整体界面布局分为3个部分:</p> 856fb726d48Sopenharmony_ci <ul class="fontColor"> 857fb726d48Sopenharmony_ci <li> 858fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 859fb726d48Sopenharmony_ci红色区域:泳道图。 860fb726d48Sopenharmony_ci</pre 861fb726d48Sopenharmony_ci > 862fb726d48Sopenharmony_ci </li> 863fb726d48Sopenharmony_ci <li> 864fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 865fb726d48Sopenharmony_ci绿色区域:详细信息(Perf Profile和Sample List)。 866fb726d48Sopenharmony_ci</pre 867fb726d48Sopenharmony_ci > 868fb726d48Sopenharmony_ci </li> 869fb726d48Sopenharmony_ci <li> 870fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 871fb726d48Sopenharmony_ci黄色区域:辅助信息(Call Stack)。 872fb726d48Sopenharmony_ci</pre 873fb726d48Sopenharmony_ci > 874fb726d48Sopenharmony_ci </li> 875fb726d48Sopenharmony_ci </ul> 876fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-3">Hiperf泳道图展示</h3> 877fb726d48Sopenharmony_ci 878fb726d48Sopenharmony_ci <p class="fontColor"> 879fb726d48Sopenharmony_ci Hiperf泳道图展示按照CPU使用量,进程和线程展示,鼠标移动到泳道图上,悬浮框会显示CPU的使用量。 880fb726d48Sopenharmony_ci <br /> 881fb726d48Sopenharmony_ci <img src="../figures/perf/chart.jpg" alt="GitHub Logo" /> 882fb726d48Sopenharmony_ci <br /> 883fb726d48Sopenharmony_ci 按住w键放大界面,泳道图会出现P的标志,鼠标移动到P图标上,悬浮框会显示每个callstack和调用的深度如下图。 884fb726d48Sopenharmony_ci <br /> 885fb726d48Sopenharmony_ci <img src="../figures/perf/callstack.jpg" alt="GitHub Logo" /> 886fb726d48Sopenharmony_ci <br /> 887fb726d48Sopenharmony_ci Hiperf泳道图上浅色表示无效调用栈的采样点,抓取时由于设备上的对应的so无符号信息,函数跟地址都无法获取到,固该采样点在tab页中不做显示。 888fb726d48Sopenharmony_ci <br /> 889fb726d48Sopenharmony_ci <img src="../figures/perf/perf_nocallstack.jpg" alt="GitHub Logo" /> 890fb726d48Sopenharmony_ci </p> 891fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-4">Hiperf泳道图的框选功能</h3> 892fb726d48Sopenharmony_ci 893fb726d48Sopenharmony_ci <p class="fontColor"> 894fb726d48Sopenharmony_ci 可以对CPU使用量区,进程和线程区数据进行框选,框选后在最下方的弹出层中会展示框选数据的统计表格,总共有四个tab页。 895fb726d48Sopenharmony_ci <br /> 896fb726d48Sopenharmony_ci Perf Profile的Tab页如图: 897fb726d48Sopenharmony_ci <br /> 898fb726d48Sopenharmony_ci <img src="../figures/perf/PerfProfile.jpg" alt="GitHub Logo" /> 899fb726d48Sopenharmony_ci </p> 900fb726d48Sopenharmony_ci <ul class="fontColor"> 901fb726d48Sopenharmony_ci <li> 902fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 903fb726d48Sopenharmony_ciCall Stack:为经过符号解析后的Callstack,并且给出动态链接库或者进程名的信息。 904fb726d48Sopenharmony_ci</pre 905fb726d48Sopenharmony_ci > 906fb726d48Sopenharmony_ci </li> 907fb726d48Sopenharmony_ci <li> 908fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 909fb726d48Sopenharmony_ciLocal:为该调用方法自身占用的CPU时间。 910fb726d48Sopenharmony_ci</pre 911fb726d48Sopenharmony_ci > 912fb726d48Sopenharmony_ci </li> 913fb726d48Sopenharmony_ci <li> 914fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 915fb726d48Sopenharmony_ciSample Count:采样次数。 916fb726d48Sopenharmony_ci</pre 917fb726d48Sopenharmony_ci > 918fb726d48Sopenharmony_ci </li> 919fb726d48Sopenharmony_ci <li> 920fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 921fb726d48Sopenharmony_ciEvent Count:事件次数。 922fb726d48Sopenharmony_ci</pre 923fb726d48Sopenharmony_ci > 924fb726d48Sopenharmony_ci </li> 925fb726d48Sopenharmony_ci </ul> 926fb726d48Sopenharmony_ci <p class="fontColor"> 927fb726d48Sopenharmony_ci Sample List的Tab页如图: 928fb726d48Sopenharmony_ci <br /> 929fb726d48Sopenharmony_ci <img src="../figures/perf/Samplelist.jpg" alt="GitHub Logo" /> 930fb726d48Sopenharmony_ci </p> 931fb726d48Sopenharmony_ci <ul class="fontColor"> 932fb726d48Sopenharmony_ci <li> 933fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 934fb726d48Sopenharmony_ciSample Time:采样的时间戳信息。 935fb726d48Sopenharmony_ci</pre 936fb726d48Sopenharmony_ci > 937fb726d48Sopenharmony_ci </li> 938fb726d48Sopenharmony_ci <li> 939fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 940fb726d48Sopenharmony_ciCore:当前的CPU核信息。 941fb726d48Sopenharmony_ci</pre 942fb726d48Sopenharmony_ci > 943fb726d48Sopenharmony_ci </li> 944fb726d48Sopenharmony_ci <li> 945fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 946fb726d48Sopenharmony_ciProcess:进程名。 947fb726d48Sopenharmony_ci</pre 948fb726d48Sopenharmony_ci > 949fb726d48Sopenharmony_ci </li> 950fb726d48Sopenharmony_ci <li> 951fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 952fb726d48Sopenharmony_ciThread:线程名。 953fb726d48Sopenharmony_ci</pre 954fb726d48Sopenharmony_ci > 955fb726d48Sopenharmony_ci </li> 956fb726d48Sopenharmony_ci <li> 957fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 958fb726d48Sopenharmony_ciState:运行状态。 959fb726d48Sopenharmony_ci</pre 960fb726d48Sopenharmony_ci > 961fb726d48Sopenharmony_ci </li> 962fb726d48Sopenharmony_ci <li> 963fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 964fb726d48Sopenharmony_ciBacktrace:栈顶的调用栈名称。 965fb726d48Sopenharmony_ci</pre 966fb726d48Sopenharmony_ci > 967fb726d48Sopenharmony_ci </li> 968fb726d48Sopenharmony_ci </ul> 969fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-5">Hiperf支持多种Options展示风格</h3> 970fb726d48Sopenharmony_ci 971fb726d48Sopenharmony_ci <p class="fontColor"> 972fb726d48Sopenharmony_ci 点击Perf Profile的Tab页底部的Options,会有四个CheckBox复选框。 973fb726d48Sopenharmony_ci <br /> 974fb726d48Sopenharmony_ci <img src="../figures/perf/Options.jpg" alt="GitHub Logo" /> 975fb726d48Sopenharmony_ci </p> 976fb726d48Sopenharmony_ci <ul class="fontColor"> 977fb726d48Sopenharmony_ci <li> 978fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 979fb726d48Sopenharmony_ciInvert:反向输出调用树。 980fb726d48Sopenharmony_ci</pre 981fb726d48Sopenharmony_ci > 982fb726d48Sopenharmony_ci </li> 983fb726d48Sopenharmony_ci <li> 984fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 985fb726d48Sopenharmony_ciHide System so:隐藏系统库文件。 986fb726d48Sopenharmony_ci</pre 987fb726d48Sopenharmony_ci > 988fb726d48Sopenharmony_ci </li> 989fb726d48Sopenharmony_ci <li> 990fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 991fb726d48Sopenharmony_ciHide Thread:隐藏线程。 992fb726d48Sopenharmony_ci</pre 993fb726d48Sopenharmony_ci > 994fb726d48Sopenharmony_ci </li> 995fb726d48Sopenharmony_ci <li> 996fb726d48Sopenharmony_ci <pre class="smartperf-text fontColor light"> 997fb726d48Sopenharmony_ciHide Thread State:隐藏线程状态。 998fb726d48Sopenharmony_ci</pre 999fb726d48Sopenharmony_ci > 1000fb726d48Sopenharmony_ci </li> 1001fb726d48Sopenharmony_ci </ul> 1002fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-6">Hiperf支持过滤调用栈调用次数的展示风格</h3> 1003fb726d48Sopenharmony_ci 1004fb726d48Sopenharmony_ci <p class="fontColor"> 1005fb726d48Sopenharmony_ci 点击Perf Profile的Tab页底部的Sample Count Filter,可以填上区间值。过滤出符合该区间值调用次数的调用栈信息。 1006fb726d48Sopenharmony_ci <br /> 1007fb726d48Sopenharmony_ci <img src="../figures/perf/samplecounter.jpg" alt="GitHub Logo" /> 1008fb726d48Sopenharmony_ci </p> 1009fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-7">Hiperf功能的调用栈Group展示-数据分析支持剪裁功能</h3> 1010fb726d48Sopenharmony_ci 1011fb726d48Sopenharmony_ci <p class="fontColor"><img src="../figures/perf/datamining.jpg" alt="GitHub Logo" /></p> 1012fb726d48Sopenharmony_ci <ul class="fontColor"> 1013fb726d48Sopenharmony_ci <li> 1014fb726d48Sopenharmony_ci <p class="fontColor"> 1015fb726d48Sopenharmony_ci 裁剪Callstack,点击Callstack上一个节点符号,再点击底部Symbol 1016fb726d48Sopenharmony_ci Filter按钮,则该符号自动被裁剪掉,同时将该节点往下所有的Callstack内容裁剪掉。 1017fb726d48Sopenharmony_ci </p> 1018fb726d48Sopenharmony_ci </li> 1019fb726d48Sopenharmony_ci <li> 1020fb726d48Sopenharmony_ci <p class="fontColor">裁剪Library,点击Library上一个节点符号,再点击底部Library Filter按钮,则该符号自动被裁剪掉,同时将该节点往下所有的Callstack内容裁剪掉。</p> 1021fb726d48Sopenharmony_ci </li> 1022fb726d48Sopenharmony_ci <li> 1023fb726d48Sopenharmony_ci <p class="fontColor">先选中要恢复的内容,再点击Reset按钮,将恢复选中的裁剪内容。</p> 1024fb726d48Sopenharmony_ci </li> 1025fb726d48Sopenharmony_ci </ul> 1026fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-8">Hiperf功能的调用栈Group展示支持按条件过滤</h3> 1027fb726d48Sopenharmony_ci 1028fb726d48Sopenharmony_ci <p class="fontColor"> 1029fb726d48Sopenharmony_ci 在Input Filter输入关键字,会显示出带有该关键字的展示信息。 1030fb726d48Sopenharmony_ci <br /> 1031fb726d48Sopenharmony_ci <img src="../figures/perf/inputfilter.jpg" alt="GitHub Logo" /> 1032fb726d48Sopenharmony_ci </p> 1033fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-9">Hiperf辅助信息区展示调用栈</h3> 1034fb726d48Sopenharmony_ci 1035fb726d48Sopenharmony_ci <p class="fontColor"> 1036fb726d48Sopenharmony_ci 当在详细信息区选择一个符号时,将展示与该符号相关的完整的调用栈。对上展示到根节点,对下则展示CPU占用率最大的调用栈。调用栈右侧有Sliding 1037fb726d48Sopenharmony_ci bar可以滚动。 1038fb726d48Sopenharmony_ci <br /> 1039fb726d48Sopenharmony_ci 如下图的Heaviest Stack Trace: 1040fb726d48Sopenharmony_ci <br /> 1041fb726d48Sopenharmony_ci <img src="../figures/perf/heaviesttrace1.jpg" alt="GitHub Logo" /> 1042fb726d48Sopenharmony_ci </p> 1043fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-10">Hiperf的火焰图功能</h3> 1044fb726d48Sopenharmony_ci 1045fb726d48Sopenharmony_ci <p class="fontColor"> 1046fb726d48Sopenharmony_ci 点击Perf Profile左下角的柱状图的图标,会切换到火焰图页面。 1047fb726d48Sopenharmony_ci <br /> 1048fb726d48Sopenharmony_ci <img src="../figures/perf/flame.jpg" alt="GitHub Logo" /> 1049fb726d48Sopenharmony_ci <br /> 1050fb726d48Sopenharmony_ci 进入到火焰图页面,火焰图的展示跟 Perf Profile 1051fb726d48Sopenharmony_ci 的tab页的调用栈显示一致,鼠标放到色块上,悬浮框可以显示调用栈名称,Lib,Addr,Count,% in current Thread,% in 1052fb726d48Sopenharmony_ci current Process,% in all Process。 1053fb726d48Sopenharmony_ci <br /> 1054fb726d48Sopenharmony_ci <img src="../figures/perf/flameshow.jpg" alt="GitHub Logo" /> 1055fb726d48Sopenharmony_ci </p> 1056fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-11">Hiperf的show event count功能</h3> 1057fb726d48Sopenharmony_ci 1058fb726d48Sopenharmony_ci <p class="fontColor"> 1059fb726d48Sopenharmony_ci 在Hiperf的父级泳道图上增加筛选功能,可在Cpu Usage 和各种event 1060fb726d48Sopenharmony_ci type之间选择,切换选择之后即可将Hiperf下级各个泳道图数据更新,悬浮框可以根据选择的事件名显示对应的event count。 1061fb726d48Sopenharmony_ci <br /> 1062fb726d48Sopenharmony_ci <img src="../figures/perf/showevent.jpg" alt="GitHub Logo" /> 1063fb726d48Sopenharmony_ci </p> 1064fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-12"> 1065fb726d48Sopenharmony_ci Hiperf的CPU/进程级/线程级泳道支持时序火焰图, 按照每个时间点的调用栈显示功能 1066fb726d48Sopenharmony_ci </h3> 1067fb726d48Sopenharmony_ci 1068fb726d48Sopenharmony_ci <p class="fontColor"> 1069fb726d48Sopenharmony_ci 根据Hiperf父级泳道图所筛选的类型,来显示各个CPU或者线程的时序火焰图,用户可根据自己的需要,点击泳道图旁边的齿轮标志筛选出某个cpu 1070fb726d48Sopenharmony_ci 或者线程的时序火焰图数据。 1071fb726d48Sopenharmony_ci <br /> 1072fb726d48Sopenharmony_ci <img src="../figures/perf/cpuandthreadrow.jpg" alt="GitHub Logo" /> 1073fb726d48Sopenharmony_ci </p> 1074fb726d48Sopenharmony_ci <h3 class="mume-header fontColor" id="header-index-13"> 1075fb726d48Sopenharmony_ci Hiperf的调用栈分析饼图/火焰图支持按进程、线程粒度可选, 饼图可以跳转到火焰图功能 1076fb726d48Sopenharmony_ci </h3> 1077fb726d48Sopenharmony_ci 1078fb726d48Sopenharmony_ci <p class="fontColor"> 1079fb726d48Sopenharmony_ci Hiperf分为process、thread、library、function四层,调用栈均可在每层的表格上鼠标点击右键跳转到对应的火焰图Tab页。火焰图上方标题显示是由哪一层跳转而来,点击关闭图标火焰图重置为当前框选范围的所有数据 1080fb726d48Sopenharmony_ci <br /> 1081fb726d48Sopenharmony_ci <img src="../figures/perf/perf_analysisjump.jpg" alt="GitHub Logo" /> 1082fb726d48Sopenharmony_ci <br /> 1083fb726d48Sopenharmony_ci 如上图,右键点击hiprofiler_plugins可以跳转到下图 1084fb726d48Sopenharmony_ci <br /> 1085fb726d48Sopenharmony_ci <img src="../figures/perf/perf_jumpframe.jpg" alt="GitHub Logo" /> 1086fb726d48Sopenharmony_ci <br /> 1087fb726d48Sopenharmony_ci 筛选面板新增Hide Thread、Hide Thread State筛选选项,Hiperf可隐藏线程和线程状态。 1088fb726d48Sopenharmony_ci <br /> 1089fb726d48Sopenharmony_ci <img src="../figures/perf/perf_hide.jpg" alt="GitHub Logo" /> 1090fb726d48Sopenharmony_ci </p> 1091fb726d48Sopenharmony_ci </div> 1092fb726d48Sopenharmony_ci 1093fb726d48Sopenharmony_ci <script> 1094fb726d48Sopenharmony_ci window.onload = () => { 1095fb726d48Sopenharmony_ci let isDark = getURLParameter('dark'); 1096fb726d48Sopenharmony_ci let targetId = getURLParameter('targetId'); 1097fb726d48Sopenharmony_ci let isBack = getURLParameter('isBack'); 1098fb726d48Sopenharmony_ci if (isDark === 'true') { 1099fb726d48Sopenharmony_ci document.getElementById('body').setAttribute('style', 'background-color:#272C34;'); 1100fb726d48Sopenharmony_ci let header = document.getElementsByClassName('fontColor'); 1101fb726d48Sopenharmony_ci for (let i = 0; i < header.length; i++) { 1102fb726d48Sopenharmony_ci header[i].style.color = '#fff'; 1103fb726d48Sopenharmony_ci } 1104fb726d48Sopenharmony_ci let lightBackGround = document.getElementsByClassName('light'); 1105fb726d48Sopenharmony_ci for (let i = 0; i < lightBackGround.length; i++) { 1106fb726d48Sopenharmony_ci lightBackGround[i].style.backgroundColor = '#32373F'; 1107fb726d48Sopenharmony_ci } 1108fb726d48Sopenharmony_ci } 1109fb726d48Sopenharmony_ci function getURLParameter(name) { 1110fb726d48Sopenharmony_ci return (new URL(document.location)).searchParams.get(name); 1111fb726d48Sopenharmony_ci } 1112fb726d48Sopenharmony_ci 1113fb726d48Sopenharmony_ci if ( targetId !== null ) { 1114fb726d48Sopenharmony_ci let targetElement = document.getElementById(targetId); 1115fb726d48Sopenharmony_ci targetElement.scrollIntoView({ behavior: 'smooth' }); 1116fb726d48Sopenharmony_ci } 1117fb726d48Sopenharmony_ci }; 1118fb726d48Sopenharmony_ci </script> 1119fb726d48Sopenharmony_ci </body> 1120fb726d48Sopenharmony_ci</html> 1121