Automattic / node-canvas

Node canvas is a Cairo backed Canvas implementation for NodeJS.
10.18k stars 1.17k forks source link

Performance bottleneck caused by _registerFont function #2014

Open lixiaoqian521 opened 2 years ago

lixiaoqian521 commented 2 years ago

image hello,i meet a Performance bottleneck problem caused by the function _registerFont but i dont know why this function use too much cpu cost and i dont know why i invoked this function,because im sure im not use this function in my project,i just use loadImage createCanvas Image these three function,so i guess maybe these functions invoke _registerFont?am i right?please tell me

zbjornson commented 2 years ago

The V8 JS profiler often misattributes native (C/C++) functions, so there's a good chance this isn't really _registerFont and is instead all of the other C++ functions in node-canvas lumped together. Can you provide a reproduction for us to try out?

lixiaoqian521 commented 2 years ago

The V8 JS profiler often misattributes native (C/C++) functions, so there's a good chance this isn't really _registerFont and is instead all of the other C++ functions in node-canvas lumped together. Can you provide a reproduction for us to try out?

this is my code,sorry, i cant give you a total project,because its the company project,but can i give you the code that how i use? in A.ts, i invoke svgToImg const { poster: posterImageBase64, width, height } = await svgToImg(posterSvgXml, imageType, !!IS_DEBUG); and the function svgToImg is defined in B.ts,in B.ts, I encapsulated a function to use,and the B.ts is

import { createCanvas, Image, loadImage } from 'canvas';

const log = createLog({}, __filename);

// eslint-disable-next-line max-len
export const svgToImg = async (svgXml: string, imgType: string, isBase64: boolean): Promise<{ poster: Buffer | string, width: number, height: number }> => {
  const imageType = `image/${imgType || 'jpeg'}`;

  const img: Image = await loadImage(Buffer.from(svgXml));

  const canvas = createCanvas(img.width, img.height);

  const ctx = canvas.getContext('2d');
  ctx.drawImage(img, 0, 0, img.width, img.height);

  const imgCanvas = canvas.toBuffer(imageType as never, { quality: 1 });

  const poster = isBase64 ? imgCanvas : imgCanvas.toString('base64');

  return { poster, width: img.width, height: img.height };
};

and im sure svgToImg is the reason This function is causing a performance bottleneck,because when i delete this code const { poster: posterImageBase64, width, height } = await svgToImg(posterSvgXml, imageType, !!IS_DEBUG);,when i am not invoke svgToImg(this function use canvas),and i use ab to for stress testing, The qps(Queries Per Second) of my service will go from 20 to 200,

so maybe my usage is wrong and maybe you can give me another way to use these functions(createCanvas, Image, loadImage) in canvas

lixiaoqian521 commented 2 years ago

Now I have located the problem,this line of program const img: Image = await loadImage(Buffer.from(svgXml));

spend too much cpu time, Am I using this function incorrectly?

LinusU commented 2 years ago

Just to be sure, could you try to split that line into two and measure the two things separately?

console.time('Buffer.from')
const src = Buffer.from(svgXml)
console.timeEnd('Buffer.from')

console.time('loadImage')
const img = await loadImage(src)
console.timeEnd('loadImage')
lixiaoqian521 commented 2 years ago

Sorry, I said something wrong yesterday. Maybe loadImage is not the most time-consuming function. After I printed the time, I found that it was this function.

import { createCanvas, Image, loadImage } from 'canvas';

// eslint-disable-next-line max-len
export const svgToImg = async (svgXml: string, imgType: string, isBase64: boolean): Promise<{ poster: Buffer | string, width: number, height: number }> => {
  const imageType = `image/${imgType || 'jpeg'}`;

  log.info('[svgToBase64] start');
  const src = Buffer.from(svgXml);
  log.info('[svgToBase64] Buffer.from');
  const img: Image = await loadImage(src);
  log.info('[svgToBase64] loadImage');
  const canvas = createCanvas(img.width, img.height);
  log.info('[svgToBase64] createCanvas');

  const ctx = canvas.getContext('2d');
  ctx.drawImage(img, 0, 0, img.width, img.height);

  log.info('[svgToBase64] drawImage');

  const imgCanvas = canvas.toBuffer(imageType as never, { quality: 1 });

  log.info('canvas.toBuffer');
  const poster = isBase64 ? imgCanvas : imgCanvas.toString('base64');
  log.info('[svgToBase64] toBase64');

  return { poster, width: img.width, height: img.height };
};

and this is the cost of everyline;

2022-04-02 11:44:43 INFO  [svgToBase64] start +1ms
2022-04-02 11:44:43 INFO  [svgToBase64] Buffer.from +1ms
2022-04-02 11:44:43 INFO  [svgToBase64] loadImage +7ms
2022-04-02 11:44:43 INFO  [svgToBase64] createCanvas +1ms
2022-04-02 11:44:43 INFO  [svgToBase64] drawImage +0ms
2022-04-02 11:44:43 INFO  canvas.toBuffer +37ms
2022-04-02 11:44:43 INFO  [svgToBase64] toBase64 +0ms
lixiaoqian521 commented 2 years ago

so maybe you can give me better Performance tools, and let me try again

zbjornson commented 2 years ago

That looks like what I would expect: only loadImage and toBuffer taking a significant amount of time.

I'm not sure what platform you're on, but on Windows you can attach the Visual Studio (not Visual Studio Code) profiler to get accurate C++ profiling. There are also two guides from Node.js here:

lixiaoqian521 commented 2 years ago

hello, i use this command to start my project

node --perf-basic-prof scripts/serve.js

this is my command list

node --perf-basic-prof scripts/serve.js

sudo perf record -F99 -p `pgrep -n node` -g -- sleep 240 (then i have perf.data)

ab -n5000 -c100 -p post.json -T application/json http://9.134.186.224:3000/api/poster(to test the project)

sed -i \
  -e "/( __libc_start| LazyCompile | v8::internal::| Builtin:| Stub:| LoadIC:|\[unknown\]| LoadPolymorphicIC:)/d" \
  -e 's/ LazyCompile:[*~]\?/ /' \
perf.data

sudo perf script -i perf.data &> perf.unfold

sudo ./FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded

sudo ./FlameGraph/flamegraph.pl perf.folded > perf.svg

and then i have the svg(flamegraph), image can you tell me what is the performance bottleneck of my project?

lixiaoqian521 commented 2 years ago

and i also run the this command

node --prof scripts/serve.js

and i have a log isolate-0x4340e00-19957-v8.log

and i run this command

node --prof-process isolate-0x4340e00-19957-v8.log > prof.txt

this is the file(prof.txt)

Statistical profiling result from isolate-0x4340e00-19957-v8.log, (94155 ticks, 36679 unaccounted, 0 excluded).

 [Shared libraries]:
   ticks  total  nonlib   name
   3692    3.9%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
    478    0.5%          /usr/lib64/libc-2.17.so
     52    0.1%          /usr/lib64/libpthread-2.17.so
     12    0.0%          [vdso]

 [JavaScript]:
   ticks  total  nonlib   name
  49742   52.8%   55.3%  RegExp: .+\.(jpg|jpeg|gif|bmp|png)$
    255    0.3%    0.3%  RegExp: [\"\&\'\<\>]|(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])
     43    0.0%    0.0%  RegExp: [\x00-\x1f\x22\x5c]
     34    0.0%    0.0%  RegExp: [\x00-\x1f\x22\x5c] {1}
     20    0.0%    0.0%  LazyCompile: *Tokenizer.parse /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/htmlparser2/lib/Tokenizer.js:627:42
     17    0.0%    0.0%  LazyCompile: *readPackageScope internal/modules/cjs/loader.js:279:26
     13    0.0%    0.0%  LazyCompile: *DerivedLogger.<computed> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/create-logger.js:71:47
     12    0.0%    0.0%  LazyCompile: *resolve path.js:973:10
      9    0.0%    0.0%  RegExp: [\x00-\x1f\x22\x5c] {2}
      8    0.0%    0.0%  RegExp: d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'
      8    0.0%    0.0%  LazyCompile: *requestWithCallback /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/urllib/lib/urllib.js:200:29
      8    0.0%    0.0%  LazyCompile: *format /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/fecha/lib/fecha.umd.js:246:25
      7    0.0%    0.0%  RegExp: [^.\d]
      7    0.0%    0.0%  LazyCompile: *processTicksAndRejections internal/process/task_queues.js:69:35
      7    0.0%    0.0%  LazyCompile: *hidden internal/errors.js:282:25
      7    0.0%    0.0%  LazyCompile: *<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio-select/lib/index.js:288:35
      6    0.0%    0.0%  LazyCompile: *parseSelector /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/css-what/lib/parse.js:149:23
      6    0.0%    0.0%  LazyCompile: *normalizeString path.js:52:25
      6    0.0%    0.0%  LazyCompile: *encodeStr internal/querystring.js:32:19
      5    0.0%    0.0%  RegExp: ^((?:(?:[0-9a-fA-F]{1,4}):){7}(?:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){6}(?:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|:(?:[0-9a-fA-F]{1,4})|:)|(?:(?:[0-9a-fA-F]{1,4}):){5}(?::((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,2}|:)|(?:(?:[0-9a-fA-F]{1,4}):){4}(?:(:(?:[0-9a-fA-F]{1,4})){0,1}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,3}|:)|(?:(?:[0-9a-fA-F]{1,4}):){3}(?:(:(?:[0-9a-fA-F]{1,4})){0,2}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,4}|:)|(?:(?:[0-9a-fA-F]{1,4}):){2}(?:(:(?:[0-9a-fA-F]{1,4})){0,3}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,5}|:)|(?:(?:[0-9a-fA-F]{1,4}):){1}(?:(:(?:[0-9a-fA-F]{1,4})){0,4}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(:(?:[0-9a-fA-F]{1,4})){1,6}|:)|(?::((?::(?:[0-9a-fA-F]{1,4})){0,5}:((?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])[.]){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])|(?::(?:[0-9a-fA-F]{1,4})){1,7}|:)))(%[0-9a-zA-Z]{1,})?$
      5    0.0%    0.0%  LazyCompile: *stringifySimple /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/safe-stable-stringify/stable.js:453:26
      5    0.0%    0.0%  LazyCompile: *renderNode /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/dom-serializer/lib/index.js:120:20
      5    0.0%    0.0%  LazyCompile: *onwrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:444:17
      5    0.0%    0.0%  LazyCompile: *get /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/domutils/lib/index.js:23:75
      5    0.0%    0.0%  LazyCompile: *emit events.js:263:44
      4    0.0%    0.0%  RegExp: ^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+
      4    0.0%    0.0%  RegExp: [^\t\x20-\x7e\x80-\xff]
      4    0.0%    0.0%  LazyCompile: *ondata /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:679:18
      4    0.0%    0.0%  LazyCompile: *compileToken /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/css-select/lib/compile.js:66:22
      4    0.0%    0.0%  LazyCompile: *checkString /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/file-type/core.js:72:22
      4    0.0%    0.0%  LazyCompile: *afterWrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:466:20
      4    0.0%    0.0%  LazyCompile: *addChunk /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:295:18
      4    0.0%    0.0%  LazyCompile: *_write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/index.js:69:51
      4    0.0%    0.0%  LazyCompile: *_transform /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/logger.js:267:13
      3    0.0%    0.0%  LazyCompile: *writeOrBuffer _stream_writable.js:355:23
      3    0.0%    0.0%  LazyCompile: *readBuffer /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/strtok3/lib/BufferTokenizer.js:23:21
      3    0.0%    0.0%  LazyCompile: *onwrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js:444:17
      3    0.0%    0.0%  LazyCompile: *get internal/bootstrap/pre_execution.js:304:8
      3    0.0%    0.0%  LazyCompile: *format url.js:575:39
      3    0.0%    0.0%  LazyCompile: *exports.validate /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/joi/lib/validator.js:173:29
      3    0.0%    0.0%  LazyCompile: *Readable.removeListener _stream_readable.js:901:45
      3    0.0%    0.0%  LazyCompile: *Readable.read _stream_readable.js:377:35
      3    0.0%    0.0%  LazyCompile: *Readable.read /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:392:36
      3    0.0%    0.0%  LazyCompile: *ClientRequest _http_client.js:85:23
      3    0.0%    0.0%  LazyCompile: *<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/api/traversing.js:429:38
      3    0.0%    0.0%  LazyCompile: *<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-logger/dist/logger.js:27:35
      2    0.0%    0.0%  RegExp: ^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$
      2    0.0%    0.0%  RegExp: \[([^]*?)\]
      2    0.0%    0.0%  RegExp: .+\.(jpg|jpeg|gif|bmp|png)$ {1}
      2    0.0%    0.0%  LazyCompile: *validate /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/joi/lib/types/keys.js:52:13
      2    0.0%    0.0%  LazyCompile: *slice buffer.js:656:12
      2    0.0%    0.0%  LazyCompile: *removeListener events.js:451:28
      2    0.0%    0.0%  LazyCompile: *ref timers.js:224:6
      2    0.0%    0.0%  LazyCompile: *nextTick internal/process/task_queues.js:105:18
      2    0.0%    0.0%  LazyCompile: *log /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/transports/console.js:44:6
      2    0.0%    0.0%  LazyCompile: *isTag /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/domhandler/lib/node.js:320:15
      2    0.0%    0.0%  LazyCompile: *initAsyncResource internal/timers.js:148:27
      2    0.0%    0.0%  LazyCompile: *groupSelectors /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio-select/lib/helpers.js:11:24
      2    0.0%    0.0%  LazyCompile: *get internal/bootstrap/pre_execution.js:292:8
      2    0.0%    0.0%  LazyCompile: *find /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/api/traversing.js:35:14
      2    0.0%    0.0%  LazyCompile: *compileGeneralSelector /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/css-select/lib/general.js:9:32
      2    0.0%    0.0%  LazyCompile: *clearBuffer _stream_writable.js:497:21
      2    0.0%    0.0%  LazyCompile: *addListener events.js:405:58
      2    0.0%    0.0%  LazyCompile: *WritableState.onwrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js:159:27
      2    0.0%    0.0%  LazyCompile: *Writable.write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:288:37
      2    0.0%    0.0%  LazyCompile: *Tokenizer.stateInAttributeValueDoubleQuotes /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/htmlparser2/lib/Tokenizer.js:342:70
      2    0.0%    0.0%  LazyCompile: *HH /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/fecha/lib/fecha.umd.js:125:20
      2    0.0%    0.0%  LazyCompile: *<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/fecha/lib/fecha.umd.js:265:43
      1    0.0%    0.0%  RegExp: ^[a-z0-9.+-]+:
      1    0.0%    0.0%  RegExp: ^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$
      1    0.0%    0.0%  RegExp: ^ *([A-Za-z0-9][A-Za-z0-9!#$&^_-]{0,126})\/([A-Za-z0-9][A-Za-z0-9!#$&^_.+-]{0,126}) *$
      1    0.0%    0.0%  RegExp: [^\u0021-\u00ff]
      1    0.0%    0.0%  RegExp: [\"\&\'\<\>]|(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]) {1}
      1    0.0%    0.0%  LazyCompile: *validateString internal/validators.js:118:24
      1    0.0%    0.0%  LazyCompile: *toString buffer.js:775:46
      1    0.0%    0.0%  LazyCompile: *syncExports internal/bootstrap/loaders.js:252:14
      1    0.0%    0.0%  LazyCompile: *singleCharReplacer /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/entities/lib/encode.js:94:28
      1    0.0%    0.0%  LazyCompile: *setAlignByStyle /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:40:25
      1    0.0%    0.0%  LazyCompile: *searchElementLocation /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/serach-element-location.js:14:31
      1    0.0%    0.0%  LazyCompile: *removeSubsets /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/domutils/lib/helpers.js:11:23
      1    0.0%    0.0%  LazyCompile: *realpathSync fs.js:1534:22
      1    0.0%    0.0%  LazyCompile: *parseParams internal/url.js:722:21
      1    0.0%    0.0%  LazyCompile: *pad /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/fecha/lib/fecha.umd.js:88:22
      1    0.0%    0.0%  LazyCompile: *mm /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/fecha/lib/fecha.umd.js:127:20
      1    0.0%    0.0%  LazyCompile: *maybeReadMore /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:558:23
      1    0.0%    0.0%  LazyCompile: *lookupAndConnect net.js:984:26
      1    0.0%    0.0%  LazyCompile: *initialize /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/load.js:36:24
      1    0.0%    0.0%  LazyCompile: *hasTickScheduled internal/process/task_queues.js:49:26
      1    0.0%    0.0%  LazyCompile: *getName _http_agent.js:166:43
      1    0.0%    0.0%  LazyCompile: *getAttributeValue /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/domutils/lib/traversal.js:62:27
      1    0.0%    0.0%  LazyCompile: *get /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/entities/lib/index.js:40:79
      1    0.0%    0.0%  LazyCompile: *first /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/ee-first/index.js:24:15
      1    0.0%    0.0%  LazyCompile: *findElements /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio-select/lib/index.js:279:22
      1    0.0%    0.0%  LazyCompile: *escapeFn /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/safe-stable-stringify/stable.js:28:19
      1    0.0%    0.0%  LazyCompile: *default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      1    0.0%    0.0%  LazyCompile: *check /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/file-type/core.js:71:16
      1    0.0%    0.0%  LazyCompile: *attr /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/api/attributes.js:68:14
      1    0.0%    0.0%  LazyCompile: *addAdapter /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/css-select/lib/index.js:46:31
      1    0.0%    0.0%  LazyCompile: *_storeHeader _http_outgoing.js:337:22
      1    0.0%    0.0%  LazyCompile: *_fromTokenizer /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/file-type/core.js:68:30
      1    0.0%    0.0%  LazyCompile: *Transform._read /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js:171:38
      1    0.0%    0.0%  LazyCompile: *Module._nodeModulePaths internal/modules/cjs/loader.js:742:37
      1    0.0%    0.0%  LazyCompile: *MM /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/fecha/lib/fecha.umd.js:111:20
      1    0.0%    0.0%  LazyCompile: *<anonymous> internal/util/debuglog.js:61:18
      1    0.0%    0.0%  LazyCompile: *<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/css-select/lib/attributes.js:98:25
      1    0.0%    0.0%  LazyCompile: *<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/api/traversing.js:87:37
      1    0.0%    0.0%  LazyCompile: *<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/api/traversing.js:72:25

 [C++]:
   ticks  total  nonlib   name
    468    0.5%    0.5%  do_futex_wait.constprop.1
    356    0.4%    0.4%  __libc_writev
    320    0.3%    0.4%  __GI_memset
    184    0.2%    0.2%  node::contextify::ContextifyContext::CompileFunction(v8::FunctionCallbackInfo<v8::Value> const&)
    160    0.2%    0.2%  epoll_pwait
    151    0.2%    0.2%  node::Buffer::(anonymous namespace)::CreateFromString(v8::FunctionCallbackInfo<v8::Value> const&)
    146    0.2%    0.2%  node::Buffer::(anonymous namespace)::ByteLengthUtf8(v8::FunctionCallbackInfo<v8::Value> const&)
     90    0.1%    0.1%  _int_malloc
     74    0.1%    0.1%  void node::StreamBase::JSMethod<&node::StreamBase::Writev>(v8::FunctionCallbackInfo<v8::Value> const&)
     49    0.1%    0.1%  node::url::(anonymous namespace)::Parse(v8::FunctionCallbackInfo<v8::Value> const&)
     46    0.0%    0.1%  __GI_mprotect
     37    0.0%    0.0%  node::native_module::NativeModuleEnv::CompileFunction(v8::FunctionCallbackInfo<v8::Value> const&)
     37    0.0%    0.0%  __memmove_ssse3
     37    0.0%    0.0%  __memcpy_ssse3
     32    0.0%    0.0%  __pthread_cond_wait
     30    0.0%    0.0%  node::cares_wrap::(anonymous namespace)::GetAddrInfo(v8::FunctionCallbackInfo<v8::Value> const&)
     27    0.0%    0.0%  node::binding::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)
     26    0.0%    0.0%  _int_free
     24    0.0%    0.0%  node::EnvGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&)
     21    0.0%    0.0%  __pthread_cond_signal
     20    0.0%    0.0%  __strlen_sse42
     19    0.0%    0.0%  node::(anonymous namespace)::DecodeData(v8::FunctionCallbackInfo<v8::Value> const&)
     18    0.0%    0.0%  __lll_unlock_wake
     16    0.0%    0.0%  malloc_consolidate
     15    0.0%    0.0%  tcgetattr
     15    0.0%    0.0%  brk
     15    0.0%    0.0%  __lll_lock_wait
     14    0.0%    0.0%  __GI___libc_malloc
     13    0.0%    0.0%  node::fs::InternalModuleStat(v8::FunctionCallbackInfo<v8::Value> const&)
     13    0.0%    0.0%  cfree
     11    0.0%    0.0%  void node::Buffer::(anonymous namespace)::StringSlice<(node::encoding)1>(v8::FunctionCallbackInfo<v8::Value> const&)
     11    0.0%    0.0%  __gconv_transform_internal_ascii
     10    0.0%    0.0%  void node::GetSockOrPeerName<node::TCPWrap, &uv_tcp_getpeername>(v8::FunctionCallbackInfo<v8::Value> const&)
     10    0.0%    0.0%  node::TCPWrap::Connect(v8::FunctionCallbackInfo<v8::Value> const&)
     10    0.0%    0.0%  __GI__IO_vfprintf
      9    0.0%    0.0%  v8::internal::MarkingBarrier(v8::internal::HeapObject, v8::internal::FullObjectSlot, v8::internal::Object)
      9    0.0%    0.0%  node::(anonymous namespace)::GetLibuvNow(v8::FunctionCallbackInfo<v8::Value> const&)
      8    0.0%    0.0%  node::StringBytes::Encode(v8::Isolate*, char const*, unsigned long, node::encoding, v8::Local<v8::Value>*)
      8    0.0%    0.0%  __strncpy_ssse3
      8    0.0%    0.0%  __gconv_transform_utf8_internal
      7    0.0%    0.0%  void node::StreamBase::JSMethod<&(int node::StreamBase::WriteString<(node::encoding)1>(v8::FunctionCallbackInfo<v8::Value> const&))>(v8::FunctionCallbackInfo<v8::Value> const&)
      7    0.0%    0.0%  void node::Buffer::(anonymous namespace)::StringSlice<(node::encoding)2>(v8::FunctionCallbackInfo<v8::Value> const&)
      7    0.0%    0.0%  v8::internal::Accessors::ArrayLengthSetter(v8::Local<v8::Name>, v8::Local<v8::Value>, v8::PropertyCallbackInfo<v8::Boolean> const&)
      7    0.0%    0.0%  __memcmp_sse4_1
      6    0.0%    0.0%  v8::internal::Accessors::FunctionPrototypeGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&)
      6    0.0%    0.0%  node::TCPWrap::New(v8::FunctionCallbackInfo<v8::Value> const&)
      6    0.0%    0.0%  node::HandleWrap::Close(v8::FunctionCallbackInfo<v8::Value> const&)
      6    0.0%    0.0%  __GI_shutdown
      6    0.0%    0.0%  __GI___pthread_mutex_lock
      5    0.0%    0.0%  std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
      5    0.0%    0.0%  node::crypto::GetRootCertificates(v8::FunctionCallbackInfo<v8::Value> const&)
      5    0.0%    0.0%  __GI_memchr
      4    0.0%    0.0%  v8::internal::FixedArray::set(int, v8::internal::Object)
      4    0.0%    0.0%  node::fs::Read(v8::FunctionCallbackInfo<v8::Value> const&)
      4    0.0%    0.0%  fwrite
      4    0.0%    0.0%  __strcmp_sse42
      4    0.0%    0.0%  __gconv_get_builtin_trans
      4    0.0%    0.0%  __fmod_finite
      4    0.0%    0.0%  __GI_strcmp
      4    0.0%    0.0%  __GI___libc_realloc
      3    0.0%    0.0%  v8::internal::PropertyCallbackArguments::PropertyCallbackArguments(v8::internal::Isolate*, v8::internal::Object, v8::internal::Object, v8::internal::JSObject, v8::Maybe<v8::internal::ShouldThrow>)
      3    0.0%    0.0%  v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*)
      3    0.0%    0.0%  v8::internal::Builtin_ArrayBufferConstructor(int, unsigned long*, v8::internal::Isolate*)
      3    0.0%    0.0%  v8::internal::AstValueFactory::GetString(unsigned int, bool, v8::internal::Vector<unsigned char const>)
      3    0.0%    0.0%  v8::internal::AstValueFactory::GetOneByteStringInternal(v8::internal::Vector<unsigned char const>)
      3    0.0%    0.0%  node::fs::Open(v8::FunctionCallbackInfo<v8::Value> const&)
      3    0.0%    0.0%  node::fs::LStat(v8::FunctionCallbackInfo<v8::Value> const&)
      3    0.0%    0.0%  node::fs::Close(v8::FunctionCallbackInfo<v8::Value> const&)
      3    0.0%    0.0%  iconv_open
      3    0.0%    0.0%  __floor_sse41
      3    0.0%    0.0%  __GI___xstat
      3    0.0%    0.0%  __GI___pthread_getspecific
      2    0.0%    0.0%  void node::StreamBase::JSMethod<&node::StreamBase::Shutdown>(v8::FunctionCallbackInfo<v8::Value> const&)
      2    0.0%    0.0%  v8::internal::LookupIterator::PropertyOrElement(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::LookupIterator::Configuration)
      2    0.0%    0.0%  v8::internal::Builtins::name(int)
      2    0.0%    0.0%  v8::internal::Builtin_DateNow(int, unsigned long*, v8::internal::Isolate*)
      2    0.0%    0.0%  v8::internal::(anonymous namespace)::ProbeInstantiationsCache(v8::internal::Isolate*, v8::internal::Handle<v8::internal::NativeContext>, int, v8::internal::(anonymous namespace)::CachingMode)
      2    0.0%    0.0%  v8::String::NewFromOneByte(v8::Isolate*, unsigned char const*, v8::NewStringType, int)
      2    0.0%    0.0%  operator new(unsigned long)
      2    0.0%    0.0%  node::binding::GetInternalBinding(v8::FunctionCallbackInfo<v8::Value> const&)
      2    0.0%    0.0%  node::NodePlatform::CurrentClockTimeMillis()
      2    0.0%    0.0%  node::InternalCallbackScope::Close()
      2    0.0%    0.0%  node::(anonymous namespace)::Parser::Initialize(v8::FunctionCallbackInfo<v8::Value> const&)
      2    0.0%    0.0%  node::(anonymous namespace)::Parser::Execute(v8::FunctionCallbackInfo<v8::Value> const&)
      2    0.0%    0.0%  getsockopt
      2    0.0%    0.0%  getenv
      2    0.0%    0.0%  finite
      2    0.0%    0.0%  bool v8::internal::MarkBit::Set<(v8::internal::AccessMode)0>() [clone .isra.74]
      2    0.0%    0.0%  __ieee754_acos_sse2
      2    0.0%    0.0%  __gconv_lookup_cache
      2    0.0%    0.0%  __cos_avx
      2    0.0%    0.0%  __GI_munmap
      2    0.0%    0.0%  __GI_madvise
      2    0.0%    0.0%  __GI___pthread_mutex_unlock
      2    0.0%    0.0%  __GI__IO_file_xsputn
      2    0.0%    0.0%  __GI__IO_default_xsputn
      1    0.0%    0.0%  void node::Buffer::(anonymous namespace)::StringSlice<(node::encoding)4>(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  void node::BaseObject::InternalFieldSet<2, &(v8::Value::IsFunction() const)>(v8::Local<v8::String>, v8::Local<v8::Value>, v8::PropertyCallbackInfo<void> const&)
      1    0.0%    0.0%  v8::internal::Zone::New(unsigned long)
      1    0.0%    0.0%  v8::internal::String::Flatten(v8::internal::Isolate*, v8::internal::Handle<v8::internal::String>, v8::internal::AllocationType)
      1    0.0%    0.0%  v8::internal::SharedFunctionInfo::script() const
      1    0.0%    0.0%  v8::internal::Scope::ResolveVariablesRecursively(v8::internal::ParseInfo*)
      1    0.0%    0.0%  v8::internal::Scope::LookupInScopeInfo(v8::internal::AstRawString const*, v8::internal::Scope*)
      1    0.0%    0.0%  v8::internal::Scope::GetClassScope()
      1    0.0%    0.0%  v8::internal::Scope::AllocateVariablesRecursively()
      1    0.0%    0.0%  v8::internal::ObjectLiteral::CalculateEmitStore(v8::internal::Zone*)
      1    0.0%    0.0%  v8::internal::HandleScope::~HandleScope()
      1    0.0%    0.0%  v8::internal::Compiler::CompileOptimized(v8::internal::Handle<v8::internal::JSFunction>, v8::internal::ConcurrencyMode)
      1    0.0%    0.0%  v8::internal::Compiler::Compile(v8::internal::Handle<v8::internal::SharedFunctionInfo>, v8::internal::Compiler::ClearExceptionFlag, v8::internal::IsCompiledScope*)
      1    0.0%    0.0%  v8::internal::Compiler::Compile(v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Compiler::ClearExceptionFlag, v8::internal::IsCompiledScope*)
      1    0.0%    0.0%  v8::internal::CompareOperation::IsLiteralCompareTypeof(v8::internal::Expression**, v8::internal::Literal**)
      1    0.0%    0.0%  v8::internal::Builtins::builtin(int)
      1    0.0%    0.0%  v8::internal::Builtin_ObjectGetOwnPropertySymbols(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_JsonStringify(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_ErrorConstructor(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_DataViewConstructor(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_ArrayConcat(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::AstValueFactory::Internalize(v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::ApiNatives::InstantiateObject(v8::internal::Isolate*, v8::internal::Handle<v8::internal::ObjectTemplateInfo>, v8::internal::Handle<v8::internal::JSReceiver>)
      1    0.0%    0.0%  v8::internal::Accessors::IsJSObjectFieldAccessor(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::Name>, v8::internal::FieldIndex*)
      1    0.0%    0.0%  v8::internal::Accessors::FunctionLengthGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  v8::String::Utf8Length(v8::Isolate*) const
      1    0.0%    0.0%  v8::String::NewFromUtf8(v8::Isolate*, char const*, v8::NewStringType, int)
      1    0.0%    0.0%  v8::Object::InternalFieldCount()
      1    0.0%    0.0%  v8::Isolate::GetCurrentContext()
      1    0.0%    0.0%  v8::HandleScope::~HandleScope()
      1    0.0%    0.0%  v8::External::Value() const
      1    0.0%    0.0%  v8::Context::Global()
      1    0.0%    0.0%  v8::Context::Exit()
      1    0.0%    0.0%  v8::ArrayBufferView::ByteOffset()
      1    0.0%    0.0%  v8::(anonymous namespace)::CallDepthScope<true>::~CallDepthScope()
      1    0.0%    0.0%  std::ostream::sentry::sentry(std::ostream&)
      1    0.0%    0.0%  std::locale::id::_M_id() const
      1    0.0%    0.0%  std::local_Rb_tree_decrement(std::_Rb_tree_node_base*)
      1    0.0%    0.0%  round
      1    0.0%    0.0%  rand_r
      1    0.0%    0.0%  operator new(unsigned long, std::nothrow_t const&)
      1    0.0%    0.0%  operator delete[](void*)
      1    0.0%    0.0%  node::util::GuessHandleType(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::i18n::ToASCII(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::fs::ReadDir(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::fs::OpenFileHandle(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::fs::InternalModuleReadJSON(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::contextify::ContextifyContext::MakeContext(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::cares_wrap::(anonymous namespace)::ChannelWrap::New(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::cares_wrap::(anonymous namespace)::AfterGetAddrInfo(uv_getaddrinfo_s*, int, addrinfo*)
      1    0.0%    0.0%  node::Utf8Value::Utf8Value(v8::Isolate*, v8::Local<v8::Value>)
      1    0.0%    0.0%  node::StreamBase::GetBytesRead(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::LibuvStreamWrap::ReadStart()::{lambda(uv_handle_s*, unsigned long, uv_buf_t*)#1}::_FUN(uv_handle_s*, unsigned long, uv_buf_t*)
      1    0.0%    0.0%  node::InternalMakeCallback(node::Environment*, v8::Local<v8::Object>, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context)
      1    0.0%    0.0%  node::HandleWrap::OnClose(uv_handle_s*)
      1    0.0%    0.0%  node::Environment::PrintSyncTrace() const
      1    0.0%    0.0%  node::Buffer::Length(v8::Local<v8::Object>)
      1    0.0%    0.0%  node::AsyncWrap::~AsyncWrap()
      1    0.0%    0.0%  node::AsyncWrap::GetAsyncId(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::AsyncWrap::EmitTraceEventAfter(node::AsyncWrap::ProviderType, double)
      1    0.0%    0.0%  node::AsyncWrap::EmitBefore(node::Environment*, double)
      1    0.0%    0.0%  node::(anonymous namespace)::Parser::Proxy<int (node::(anonymous namespace)::Parser::*)(), &node::(anonymous namespace)::Parser::on_headers_complete>::Raw(llhttp__internal_s*)
      1    0.0%    0.0%  node::(anonymous namespace)::Parser::New(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::(anonymous namespace)::Parser::Free(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  mmap
      1    0.0%    0.0%  epoll_ctl
      1    0.0%    0.0%  calloc
      1    0.0%    0.0%  buffered_vfprintf
      1    0.0%    0.0%  bsearch
      1    0.0%    0.0%  acos
      1    0.0%    0.0%  accept4
      1    0.0%    0.0%  _int_realloc
      1    0.0%    0.0%  _init
      1    0.0%    0.0%  __tls_get_addr
      1    0.0%    0.0%  __strncmp_sse42
      1    0.0%    0.0%  __pthread_cond_timedwait
      1    0.0%    0.0%  __lll_lock_wait_private
      1    0.0%    0.0%  __libc_enable_asynccancel
      1    0.0%    0.0%  __hash_string
      1    0.0%    0.0%  __clock_gettime
      1    0.0%    0.0%  __GI_strlen
      1    0.0%    0.0%  __GI_sigemptyset
      1    0.0%    0.0%  __GI_memcpy
      1    0.0%    0.0%  __GI___pthread_once
      1    0.0%    0.0%  __GI___pthread_mutex_init
      1    0.0%    0.0%  __GI___lxstat

 [Summary]:
   ticks  total  nonlib   name
  50400   53.5%   56.0%  JavaScript
   2842    3.0%    3.2%  C++
   1380    1.5%    1.5%  GC
   4234    4.5%          Shared libraries
  36679   39.0%          Unaccounted

 [C++ entry points]:
   ticks    cpp   total   name
    857   41.5%    0.9%  v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*)
    319   15.4%    0.3%  __GI_memset
    184    8.9%    0.2%  node::task_queue::RunMicrotasks(v8::FunctionCallbackInfo<v8::Value> const&)
    137    6.6%    0.1%  v8::internal::Builtin_JsonStringify(int, unsigned long*, v8::internal::Isolate*)
     69    3.3%    0.1%  _int_malloc
     39    1.9%    0.0%  v8::internal::Builtin_JsonParse(int, unsigned long*, v8::internal::Isolate*)
     37    1.8%    0.0%  __memmove_ssse3
     29    1.4%    0.0%  __memcpy_ssse3
     24    1.2%    0.0%  node::EnvGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&)
     20    1.0%    0.0%  v8::internal::Builtin_DateConstructor(int, unsigned long*, v8::internal::Isolate*)
     19    0.9%    0.0%  v8::internal::Builtin_ArrayConcat(int, unsigned long*, v8::internal::Isolate*)
     19    0.9%    0.0%  __strlen_sse42
     16    0.8%    0.0%  v8::internal::Builtin_ErrorConstructor(int, unsigned long*, v8::internal::Isolate*)
     15    0.7%    0.0%  tcgetattr
     13    0.6%    0.0%  __GI___libc_malloc
     11    0.5%    0.0%  _int_free
     11    0.5%    0.0%  __gconv_transform_internal_ascii
      9    0.4%    0.0%  v8::internal::Builtin_ArrayBufferConstructor(int, unsigned long*, v8::internal::Isolate*)
      9    0.4%    0.0%  malloc_consolidate
      8    0.4%    0.0%  v8::internal::MarkingBarrier(v8::internal::HeapObject, v8::internal::FullObjectSlot, v8::internal::Object)
      8    0.4%    0.0%  node::StringBytes::Encode(v8::Isolate*, char const*, unsigned long, node::encoding, v8::Local<v8::Value>*)
      8    0.4%    0.0%  __strncpy_ssse3
      8    0.4%    0.0%  __gconv_transform_utf8_internal
      7    0.3%    0.0%  v8::internal::Accessors::ArrayLengthSetter(v8::Local<v8::Name>, v8::Local<v8::Value>, v8::PropertyCallbackInfo<v8::Boolean> const&)
      7    0.3%    0.0%  __GI_mprotect
      6    0.3%    0.0%  v8::internal::Accessors::FunctionPrototypeGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&)
      6    0.3%    0.0%  __memcmp_sse4_1
      6    0.3%    0.0%  __GI__IO_vfprintf
      5    0.2%    0.0%  v8::internal::Builtin_NumberPrototypeToString(int, unsigned long*, v8::internal::Isolate*)
      5    0.2%    0.0%  std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)
      5    0.2%    0.0%  cfree
      5    0.2%    0.0%  __GI_memchr
      4    0.2%    0.0%  v8::internal::Builtin_TypedArrayPrototypeBuffer(int, unsigned long*, v8::internal::Isolate*)
      4    0.2%    0.0%  node::url::(anonymous namespace)::Parse(v8::FunctionCallbackInfo<v8::Value> const&)
      4    0.2%    0.0%  node::(anonymous namespace)::Parser::Execute(v8::FunctionCallbackInfo<v8::Value> const&)
      4    0.2%    0.0%  __strcmp_sse42
      4    0.2%    0.0%  __pthread_cond_signal
      4    0.2%    0.0%  __gconv_get_builtin_trans
      4    0.2%    0.0%  __GI_strcmp
      3    0.1%    0.0%  v8::internal::PropertyCallbackArguments::PropertyCallbackArguments(v8::internal::Isolate*, v8::internal::Object, v8::internal::Object, v8::internal::JSObject, v8::Maybe<v8::internal::ShouldThrow>)
      3    0.1%    0.0%  v8::internal::Builtin_DateNow(int, unsigned long*, v8::internal::Isolate*)
      3    0.1%    0.0%  v8::internal::AstValueFactory::GetString(unsigned int, bool, v8::internal::Vector<unsigned char const>)
      3    0.1%    0.0%  v8::internal::AstValueFactory::GetOneByteStringInternal(v8::internal::Vector<unsigned char const>)
      3    0.1%    0.0%  iconv_open
      3    0.1%    0.0%  fwrite
      3    0.1%    0.0%  __GI___xstat
      3    0.1%    0.0%  __GI___libc_realloc
      2    0.1%    0.0%  v8::internal::LookupIterator::PropertyOrElement(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::JSReceiver>, v8::internal::LookupIterator::Configuration)
      2    0.1%    0.0%  v8::internal::Builtin_ObjectGetOwnPropertySymbols(int, unsigned long*, v8::internal::Isolate*)
      2    0.1%    0.0%  v8::internal::Builtin_DataViewConstructor(int, unsigned long*, v8::internal::Isolate*)
      2    0.1%    0.0%  operator new(unsigned long)
      2    0.1%    0.0%  getenv
      2    0.1%    0.0%  finite
      2    0.1%    0.0%  __ieee754_acos_sse2
      2    0.1%    0.0%  __gconv_lookup_cache
      2    0.1%    0.0%  __cos_avx
      2    0.1%    0.0%  __GI_madvise
      2    0.1%    0.0%  __GI___pthread_mutex_lock
      2    0.1%    0.0%  __GI___pthread_getspecific
      2    0.1%    0.0%  __GI__IO_file_xsputn
      1    0.0%    0.0%  void node::BaseObject::InternalFieldSet<2, &(v8::Value::IsFunction() const)>(v8::Local<v8::String>, v8::Local<v8::Value>, v8::PropertyCallbackInfo<void> const&)
      1    0.0%    0.0%  v8::internal::Zone::New(unsigned long)
      1    0.0%    0.0%  v8::internal::String::Flatten(v8::internal::Isolate*, v8::internal::Handle<v8::internal::String>, v8::internal::AllocationType)
      1    0.0%    0.0%  v8::internal::SharedFunctionInfo::script() const
      1    0.0%    0.0%  v8::internal::Scope::ResolveVariablesRecursively(v8::internal::ParseInfo*)
      1    0.0%    0.0%  v8::internal::Scope::AllocateVariablesRecursively()
      1    0.0%    0.0%  v8::internal::HandleScope::~HandleScope()
      1    0.0%    0.0%  v8::internal::FixedArray::set(int, v8::internal::Object)
      1    0.0%    0.0%  v8::internal::Compiler::CompileOptimized(v8::internal::Handle<v8::internal::JSFunction>, v8::internal::ConcurrencyMode)
      1    0.0%    0.0%  v8::internal::Compiler::Compile(v8::internal::Handle<v8::internal::SharedFunctionInfo>, v8::internal::Compiler::ClearExceptionFlag, v8::internal::IsCompiledScope*)
      1    0.0%    0.0%  v8::internal::Compiler::Compile(v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Compiler::ClearExceptionFlag, v8::internal::IsCompiledScope*)
      1    0.0%    0.0%  v8::internal::CompareOperation::IsLiteralCompareTypeof(v8::internal::Expression**, v8::internal::Literal**)
      1    0.0%    0.0%  v8::internal::Builtins::name(int)
      1    0.0%    0.0%  v8::internal::Builtins::builtin(int)
      1    0.0%    0.0%  v8::internal::Builtin_StringPrototypeToUpperCaseIntl(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_StringPrototypeLastIndexOf(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_ReflectOwnKeys(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_ObjectDefineProperty(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_ObjectDefineProperties(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_CallSitePrototypeGetLineNumber(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_ArrayUnshift(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_ArrayShift(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Builtin_ArrayPop(int, unsigned long*, v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::AstValueFactory::Internalize(v8::internal::Isolate*)
      1    0.0%    0.0%  v8::internal::Accessors::IsJSObjectFieldAccessor(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Map>, v8::internal::Handle<v8::internal::Name>, v8::internal::FieldIndex*)
      1    0.0%    0.0%  v8::internal::Accessors::FunctionLengthGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  v8::internal::Accessors::ErrorStackGetter(v8::Local<v8::Name>, v8::PropertyCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  v8::String::Utf8Length(v8::Isolate*) const
      1    0.0%    0.0%  v8::String::NewFromUtf8(v8::Isolate*, char const*, v8::NewStringType, int)
      1    0.0%    0.0%  v8::Object::InternalFieldCount()
      1    0.0%    0.0%  v8::Isolate::GetCurrentContext()
      1    0.0%    0.0%  v8::HandleScope::~HandleScope()
      1    0.0%    0.0%  v8::External::Value() const
      1    0.0%    0.0%  v8::Context::Global()
      1    0.0%    0.0%  v8::ArrayBufferView::ByteOffset()
      1    0.0%    0.0%  std::ostream::sentry::sentry(std::ostream&)
      1    0.0%    0.0%  std::locale::id::_M_id() const
      1    0.0%    0.0%  std::local_Rb_tree_decrement(std::_Rb_tree_node_base*)
      1    0.0%    0.0%  round
      1    0.0%    0.0%  rand_r
      1    0.0%    0.0%  operator new(unsigned long, std::nothrow_t const&)
      1    0.0%    0.0%  operator delete[](void*)
      1    0.0%    0.0%  node::loader::ModuleWrap::Evaluate(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::inspector::(anonymous namespace)::InspectorConsoleCall(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::Utf8Value::Utf8Value(v8::Isolate*, v8::Local<v8::Value>)
      1    0.0%    0.0%  node::StreamBase::GetBytesRead(v8::FunctionCallbackInfo<v8::Value> const&)
      1    0.0%    0.0%  node::Environment::PrintSyncTrace() const
      1    0.0%    0.0%  node::Buffer::Length(v8::Local<v8::Object>)
      1    0.0%    0.0%  calloc
      1    0.0%    0.0%  buffered_vfprintf
      1    0.0%    0.0%  bsearch
      1    0.0%    0.0%  acos
      1    0.0%    0.0%  _int_realloc
      1    0.0%    0.0%  _init
      1    0.0%    0.0%  __tls_get_addr
      1    0.0%    0.0%  __strncmp_sse42
      1    0.0%    0.0%  __libc_enable_asynccancel
      1    0.0%    0.0%  __hash_string
      1    0.0%    0.0%  __floor_sse41
      1    0.0%    0.0%  __clock_gettime
      1    0.0%    0.0%  __GI_strlen
      1    0.0%    0.0%  __GI_memcpy
      1    0.0%    0.0%  __GI___pthread_once
      1    0.0%    0.0%  __GI___pthread_mutex_unlock
      1    0.0%    0.0%  __GI___pthread_mutex_init
      1    0.0%    0.0%  __GI___lxstat
      1    0.0%    0.0%  __GI__IO_default_xsputn

 [Bottom up (heavy) profile]:
  Note: percentage shows a share of a particular caller in the total
  amount of its parent calls.
  Callers occupying less than 1.0% are not shown.

   ticks parent  name
  49742   52.8%  RegExp: .+\.(jpg|jpeg|gif|bmp|png)$
  49742  100.0%    /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
  46510   93.5%      LazyCompile: ~isImgUrl /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/url-handler.js:70:18
  46510  100.0%        LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/url-handler.js:54:17
  46510  100.0%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
  46510  100.0%            LazyCompile: ~imagesToBase64 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/url-handler.js:50:24
   3232    6.5%      /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
   3232  100.0%        LazyCompile: ~isImgUrl /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/url-handler.js:70:18
   3232  100.0%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/url-handler.js:54:17
   3232  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node

  36679   39.0%  UNKNOWN
  35345   96.4%    v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*)
  35097   99.3%      LazyCompile: ~svgToImg /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/draw-canvas.js:8:18
  35095  100.0%        /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
  33620   95.8%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
  33620  100.0%            LazyCompile: *processTicksAndRejections internal/process/task_queues.js:69:35
   1475    4.2%          node::task_queue::RunMicrotasks(v8::FunctionCallbackInfo<v8::Value> const&)
   1475  100.0%            LazyCompile: ~processTicksAndRejections internal/process/task_queues.js:69:35
    879    2.4%    LazyCompile: ~svgToImg /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/draw-canvas.js:8:18
    757   86.1%      LazyCompile: ~default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
    757  100.0%        /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
    757  100.0%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
    757  100.0%            LazyCompile: *processTicksAndRejections internal/process/task_queues.js:69:35
    120   13.7%      LazyCompile: *default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
    120  100.0%        /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
    120  100.0%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
    120  100.0%            LazyCompile: *processTicksAndRejections internal/process/task_queues.js:69:35
    385    1.0%    LazyCompile: ~getImgSize /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/utils/util.js:13:20
    199   51.7%      LazyCompile: ~setAlignByStyle /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:40:25
    199  100.0%        LazyCompile: ~image /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:16:12
    199  100.0%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:83:14
    199  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
    186   48.3%      LazyCompile: *setAlignByStyle /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:40:25
    186  100.0%        LazyCompile: ~image /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:16:12
    169   90.9%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:83:14
    169  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
     17    9.1%          LazyCompile: *<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:83:14
     17  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node

   3692    3.9%  /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
    967   26.2%    /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
    226   23.4%      /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
     52   23.0%        LazyCompile: *format /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/fecha/lib/fecha.umd.js:246:25
     38   73.1%          LazyCompile: *_write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/index.js:69:51
     38  100.0%            LazyCompile: *ondata /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:679:18
     12   23.1%          LazyCompile: *Writable.write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:288:37
     12  100.0%            LazyCompile: ~ondata /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:679:18
      2    3.8%          LazyCompile: ~_write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/index.js:69:51
      2  100.0%            LazyCompile: ~doWrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:404:17
     19    8.4%        LazyCompile: *renderNode /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/dom-serializer/lib/index.js:120:20
     15   78.9%          LazyCompile: *renderNode /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/dom-serializer/lib/index.js:120:20
     12   80.0%            LazyCompile: *renderNode /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/dom-serializer/lib/index.js:120:20
      2   13.3%            LazyCompile: *render /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/dom-serializer/lib/index.js:110:16
      1    6.7%            LazyCompile: ~render /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/dom-serializer/lib/index.js:110:16
      2   10.5%          LazyCompile: ~render /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/dom-serializer/lib/index.js:110:16
      2  100.0%            LazyCompile: ~render /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/static.js:18:16
      2   10.5%          LazyCompile: *render /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/dom-serializer/lib/index.js:110:16
      2  100.0%            LazyCompile: ~render /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/static.js:18:16
     19    8.4%        LazyCompile: *readPackageScope internal/modules/cjs/loader.js:279:26
     19  100.0%          LazyCompile: *readPackageScope internal/modules/cjs/loader.js:279:26
     14   73.7%            LazyCompile: *_transform /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/logger.js:267:13
      2   10.5%            LazyCompile: *_write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/index.js:69:51
      1    5.3%            LazyCompile: ~stringify /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/safe-stable-stringify/stable.js:538:20
      1    5.3%            LazyCompile: ~_write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/index.js:69:51
      1    5.3%            LazyCompile: *<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/logform/json.js:26:25
     13    5.8%        /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
     10   76.9%          LazyCompile: *processTicksAndRejections internal/process/task_queues.js:69:35
      2   15.4%          LazyCompile: *validate /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/joi/lib/types/keys.js:52:13
      2  100.0%            LazyCompile: *exports.validate /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/joi/lib/validator.js:173:29
      1    7.7%          LazyCompile: ~replaceXRange /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/polaris/node_modules/semver/classes/range.js:351:23
      1  100.0%            LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/polaris/node_modules/semver/classes/range.js:346:32
     12    5.3%        LazyCompile: *processTicksAndRejections internal/process/task_queues.js:69:35
      9    4.0%        LazyCompile: *parseSelector /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/css-what/lib/parse.js:149:23
      4   44.4%          LazyCompile: *find /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/api/traversing.js:35:14
      4  100.0%            LazyCompile: *initialize /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/load.js:36:24
      3   33.3%          LazyCompile: *parse /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/css-what/lib/parse.js:140:15
      3  100.0%            LazyCompile: ~select /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio-select/lib/index.js:175:16
      2   22.2%          LazyCompile: *searchElementLocation /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/serach-element-location.js:14:31
      1   50.0%            LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/serach-element-location.js:6:71
      1   50.0%            LazyCompile: *default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      8    3.5%        LazyCompile: *find /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/api/traversing.js:35:14
      7   87.5%          LazyCompile: *initialize /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/load.js:36:24
      4   57.1%            LazyCompile: ~rect /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:24:11
      1   14.3%            LazyCompile: ~image /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:16:12
      1   14.3%            LazyCompile: ~fillDataToSvgXml /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:75:26
      1   14.3%            LazyCompile: *setAlignByStyle /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:40:25
      1   12.5%          LazyCompile: *searchElementLocation /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/serach-element-location.js:14:31
      1  100.0%            LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/serach-element-location.js:6:71
      7    3.1%        LazyCompile: ~readPackage internal/modules/cjs/loader.js:245:21
      7  100.0%          LazyCompile: ~readPackageScope internal/modules/cjs/loader.js:279:26
      6   85.7%            LazyCompile: ~trySelf internal/modules/cjs/loader.js:396:17
      1   14.3%            LazyCompile: ~Module._extensions..js internal/modules/cjs/loader.js:1147:37
      7    3.1%        LazyCompile: ~imagesToBase64 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/url-handler.js:50:24
      7  100.0%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      6   85.7%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      1   14.3%            node::task_queue::RunMicrotasks(v8::FunctionCallbackInfo<v8::Value> const&)
      7    3.1%        LazyCompile: ~format /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/fecha/lib/fecha.umd.js:246:25
      6   85.7%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/logform/timestamp.js:14:25
      6  100.0%            LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/logform/combine.js:17:10
      1   14.3%          LazyCompile: ~_write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/index.js:69:51
      1  100.0%            LazyCompile: ~doWrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:404:17
      5    2.2%        LazyCompile: ~LoadedCheerio /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/load.js:31:31
      5  100.0%          LazyCompile: ~initialize /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/load.js:36:24
      3   60.0%            LazyCompile: ~setAlignByStyle /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:40:25
      2   40.0%            LazyCompile: ~searchElementLocation /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/serach-element-location.js:14:31
      5    2.2%        LazyCompile: *toArray /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/api/traversing.js:735:17
      4   80.0%          LazyCompile: ~find /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/api/traversing.js:35:14
      2   50.0%            LazyCompile: *searchElementLocation /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/serach-element-location.js:14:31
      2   50.0%            LazyCompile: *initialize /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/load.js:36:24
      1   20.0%          LazyCompile: ~fillDataToSvgXml /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:75:26
      1  100.0%            LazyCompile: ~default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      4    1.8%        LazyCompile: ~unescapeCSS /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/css-what/lib/parse.js:125:21
      4  100.0%          LazyCompile: ~getName /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/css-what/lib/parse.js:154:21
      4  100.0%            LazyCompile: ~parseSelector /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/css-what/lib/parse.js:149:23
      4    1.8%        LazyCompile: ~calculateServerName _http_agent.js:286:29
      4  100.0%          LazyCompile: ~addRequest _http_agent.js:188:49
      3   75.0%            LazyCompile: *ClientRequest _http_client.js:85:23
      1   25.0%            LazyCompile: ~ClientRequest _http_client.js:85:23
      3    1.3%        LazyCompile: ~log /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-accesslog-middleware/node_modules/@tencent/xdc-cube-reporter/dist/index.js:66:8
      3  100.0%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-accesslog-middleware/dist/index.js:31:27
      3  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      3    1.3%        LazyCompile: ~getImgSize /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/utils/util.js:13:20
      2   66.7%          LazyCompile: *setAlignByStyle /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:40:25
      2  100.0%            LazyCompile: ~image /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:16:12
      1   33.3%          LazyCompile: ~setAlignByStyle /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:40:25
      1  100.0%            LazyCompile: ~image /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:16:12
      3    1.3%        LazyCompile: ~getHeaders _http_outgoing.js:550:59
      3  100.0%          LazyCompile: ~get header /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa/lib/response.js:47:13
      3  100.0%            LazyCompile: ~get headers /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa/lib/response.js:61:14
      3    1.3%        LazyCompile: ~fillDataToSvgXml /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:75:26
      2   66.7%          LazyCompile: *default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      2  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      1   33.3%          LazyCompile: ~default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      1  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      3    1.3%        LazyCompile: *searchElementLocation /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/serach-element-location.js:14:31
      2   66.7%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/serach-element-location.js:6:71
      2  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      1   33.3%          LazyCompile: *default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      1  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
     26    2.7%      LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/create-logger.js:53:45
     26  100.0%        /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
     26  100.0%          LazyCompile: ~module.exports /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/create-logger.js:25:27
     26  100.0%            LazyCompile: ~createLogger /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-logger/dist/logger.js:24:22
     20    2.1%      LazyCompile: *format /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/fecha/lib/fecha.umd.js:246:25
     17   85.0%        LazyCompile: *_write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/index.js:69:51
     15   88.2%          LazyCompile: *ondata /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:679:18
     15  100.0%            LazyCompile: *addChunk /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:295:18
      2   11.8%          LazyCompile: ~doWrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:404:17
      2  100.0%            LazyCompile: ~writeOrBuffer /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:363:23
      3   15.0%        LazyCompile: *Writable.write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:288:37
      3  100.0%          LazyCompile: ~ondata /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:679:18
      3  100.0%            LazyCompile: *emit events.js:263:44
     16    1.7%      LazyCompile: *processTicksAndRejections internal/process/task_queues.js:69:35
     15    1.6%      LazyCompile: *nextTick internal/process/task_queues.js:105:18
      4   26.7%        LazyCompile: ~onwrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js:444:17
      4  100.0%          LazyCompile: ~WritableState.onwrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_writable.js:159:27
      4  100.0%            LazyCompile: ~afterTransform /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js:76:24
      2   13.3%        LazyCompile: ~resume /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:902:16
      2  100.0%          LazyCompile: ~Readable.resume /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:886:38
      2  100.0%            LazyCompile: ~Readable.on /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:804:34
      2   13.3%        LazyCompile: ~onwrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:444:17
      2  100.0%          LazyCompile: ~WritableState.onwrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:159:27
      2  100.0%            LazyCompile: ~log /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/transports/console.js:44:6
      2   13.3%        LazyCompile: ~abort _http_client.js:333:47
      2  100.0%          LazyCompile: ~abortRequest /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/urllib/lib/urllib.js:1062:24
      1   50.0%            LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/urllib/lib/urllib.js:993:41
      1   50.0%            LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/urllib/lib/urllib.js:972:40
      2   13.3%        LazyCompile: ~<anonymous> internal/streams/destroy.js:38:30
      2  100.0%          LazyCompile: ~Socket._destroy net.js:652:37
      2  100.0%            LazyCompile: ~destroy internal/streams/destroy.js:5:17
      1    6.7%        LazyCompile: ~resOnFinish _http_server.js:676:21
      1  100.0%          LazyCompile: *emit events.js:263:44
      1  100.0%            LazyCompile: ~onFinish _http_outgoing.js:721:18
      1    6.7%        LazyCompile: ~onwrite _stream_writable.js:431:17
      1  100.0%          LazyCompile: ~afterWriteDispatched internal/stream_base_commons.js:149:30
      1  100.0%            LazyCompile: ~writevGeneric internal/stream_base_commons.js:116:23
      1    6.7%        LazyCompile: ~onSocket _http_client.js:729:53
      1  100.0%          LazyCompile: ~setRequestSocket _http_agent.js:427:26
      1  100.0%            LazyCompile: ~handleSocketCreation_Inner _http_agent.js:415:45
     13    1.3%      LazyCompile: *onwrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:444:17
     13  100.0%        LazyCompile: ~WritableState.onwrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:159:27
      6   46.2%          LazyCompile: *log /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/transports/console.js:44:6
      6  100.0%            LazyCompile: *Writable.write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:288:37
      6   46.2%          LazyCompile: *_write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/index.js:69:51
      6  100.0%            LazyCompile: *ondata /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:679:18
      1    7.7%          LazyCompile: *Writable.write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:288:37
      1  100.0%            LazyCompile: ~ondata /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:679:18
     12    1.2%      LazyCompile: ~Tokenizer.parse /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/htmlparser2/lib/Tokenizer.js:627:42
     12  100.0%        LazyCompile: ~Tokenizer.write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/htmlparser2/lib/Tokenizer.js:119:42
     12  100.0%          LazyCompile: ~Tokenizer.end /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/htmlparser2/lib/Tokenizer.js:125:40
     12  100.0%            LazyCompile: ~Parser.end /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/htmlparser2/lib/Parser.js:346:37
     12    1.2%      LazyCompile: *readPackageScope internal/modules/cjs/loader.js:279:26
     12  100.0%        LazyCompile: *readPackageScope internal/modules/cjs/loader.js:279:26
      9   75.0%          LazyCompile: *_transform /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/logger.js:267:13
      9  100.0%            LazyCompile: *DerivedLogger.<computed> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/create-logger.js:71:47
      2   16.7%          LazyCompile: *<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/logform/json.js:26:25
      2  100.0%            LazyCompile: ~_transform /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/logger.js:267:13
      1    8.3%          LazyCompile: *_write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/index.js:69:51
      1  100.0%            LazyCompile: *ondata /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:679:18
     11    1.1%      LazyCompile: ~configure /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/logger.js:81:12
     11  100.0%        LazyCompile: ~Logger /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/logger.js:40:14
     11  100.0%          LazyCompile: ~DerivedLogger /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/create-logger.js:43:16
     11  100.0%            LazyCompile: ~module.exports /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/create-logger.js:25:27
     11    1.1%      LazyCompile: ~Readable /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:169:18
     11  100.0%        LazyCompile: ~Duplex /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_duplex.js:58:16
     11  100.0%          LazyCompile: ~Transform /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_transform.js:98:19
     11  100.0%            LazyCompile: ~Logger /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/logger.js:40:14
     11    1.1%      LazyCompile: ~EventEmitter.init events.js:130:29
     11  100.0%        LazyCompile: ~EventEmitter events.js:64:22
     11  100.0%          LazyCompile: ~Stream internal/streams/legacy.js:9:16
      7   63.6%            LazyCompile: ~Readable /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:169:18
      2   18.2%            LazyCompile: ~Readable _stream_readable.js:169:18
      2   18.2%            LazyCompile: ~OutgoingMessage _http_outgoing.js:81:25
     10    1.0%      LazyCompile: ~module.exports /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/create-logger.js:25:27
     10  100.0%        LazyCompile: ~createLogger /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-logger/dist/logger.js:24:22
     10  100.0%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-logger/dist/middlewares/xdc.js:16:27
      6   60.0%            LazyCompile: ~dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
      4   40.0%            LazyCompile: *dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
     10    1.0%      LazyCompile: *initialize /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/cheerio/lib/load.js:36:24
      4   40.0%        LazyCompile: ~fillDataToSvgXml /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:75:26
      4  100.0%          LazyCompile: ~default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      4  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      3   30.0%        LazyCompile: ~rect /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:24:11
      3  100.0%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:83:14
      3  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      2   20.0%        LazyCompile: ~image /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:16:12
      2  100.0%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:83:14
      2  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      1   10.0%        LazyCompile: *setAlignByStyle /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/fill-data-to-svg-xml.js:40:25
      1  100.0%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      1  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
     10    1.0%      LazyCompile: *_write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/index.js:69:51
      9   90.0%        LazyCompile: *ondata /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:679:18
      9  100.0%          LazyCompile: *addChunk /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/node_modules/readable-stream/lib/_stream_readable.js:295:18
      9  100.0%            LazyCompile: *_transform /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/logger.js:267:13
      1   10.0%        LazyCompile: ~doWrite /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:404:17
      1  100.0%          LazyCompile: ~writeOrBuffer /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:363:23
      1  100.0%            LazyCompile: ~Writable.write /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston-transport/node_modules/readable-stream/lib/_stream_writable.js:288:37
     10    1.0%      LazyCompile: *DerivedLogger.<computed> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/winston/lib/winston/create-logger.js:71:47
      4   40.0%        LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-logger/dist/middlewares/xdc.js:16:27
      2   50.0%          LazyCompile: *dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
      2  100.0%            LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-body/index.js:121:19
      1   25.0%          LazyCompile: ~dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
      1  100.0%            LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-body/index.js:121:19
      1   25.0%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      1  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      3   30.0%        LazyCompile: ~default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      3  100.0%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      3  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      2   20.0%        LazyCompile: ~svgToImg /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/draw-canvas.js:8:18
      2  100.0%          LazyCompile: ~default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      2  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      1   10.0%        LazyCompile: ~imagesToBase64 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/libs/url-handler.js:50:24
      1  100.0%          LazyCompile: ~default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      1  100.0%            LazyCompile: *dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
    131    3.5%    v8::internal::Builtin_JsonStringify(int, unsigned long*, v8::internal::Isolate*)
     40   30.5%      LazyCompile: ~respond /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa/lib/application.js:229:17
     40  100.0%        LazyCompile: ~handleResponse /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa/lib/application.js:166:28
     37   92.5%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
     37  100.0%            LazyCompile: *processTicksAndRejections internal/process/task_queues.js:69:35
      3    7.5%          node::task_queue::RunMicrotasks(v8::FunctionCallbackInfo<v8::Value> const&)
      3  100.0%            LazyCompile: ~processTicksAndRejections internal/process/task_queues.js:69:35
     39   29.8%      LazyCompile: ~get length /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa/lib/response.js:206:13
     33   84.6%        LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-accesslog-middleware/dist/index.js:31:27
     33  100.0%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
     31   93.9%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      2    6.1%            node::task_queue::RunMicrotasks(v8::FunctionCallbackInfo<v8::Value> const&)
      6   15.4%        /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      6  100.0%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-accesslog-middleware/dist/index.js:31:27
      6  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
     31   23.7%      LazyCompile: ~default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
     20   64.5%        LazyCompile: ~dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
     20  100.0%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/middleware/api.js:38:12
     20  100.0%            LazyCompile: ~dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
      9   29.0%        LazyCompile: *dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
      9  100.0%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/middleware/api.js:38:12
      9  100.0%            LazyCompile: *dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
      2    6.5%        /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      2  100.0%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      2  100.0%            LazyCompile: *processTicksAndRejections internal/process/task_queues.js:69:35
     11    8.4%      LazyCompile: ~flush /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-cube-reporter/dist/index.js:122:10
     11  100.0%        LazyCompile: ~log /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-cube-reporter/dist/index.js:69:8
      8   72.7%          LazyCompile: ~default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      7   87.5%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      1   12.5%            LazyCompile: *dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
      3   27.3%          LazyCompile: *default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      2   66.7%            LazyCompile: ~dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
      1   33.3%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      4    3.1%      LazyCompile: *default_1 /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/controller/api/poster.js:41:25
      3   75.0%        LazyCompile: ~dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
      3  100.0%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/dist/middleware/api.js:38:12
      3  100.0%            LazyCompile: ~dispatch /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/koa-compose/index.js:35:23
      1   25.0%        /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      1  100.0%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
      1  100.0%            LazyCompile: *processTicksAndRejections internal/process/task_queues.js:69:35
      2    1.5%      LazyCompile: ~flush /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-accesslog-middleware/node_modules/@tencent/xdc-cube-reporter/dist/index.js:100:10
      2  100.0%        LazyCompile: ~log /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-accesslog-middleware/node_modules/@tencent/xdc-cube-reporter/dist/index.js:66:8
      2  100.0%          LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/@tencent/xdc-accesslog-middleware/dist/index.js:31:27
      2  100.0%            /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
     38    1.0%    v8::internal::Builtin_JsonParse(int, unsigned long*, v8::internal::Isolate*)
     24   63.2%      LazyCompile: ~parse /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/co-body/lib/json.js:54:17
     24  100.0%        LazyCompile: ~<anonymous> /data1/mm64/qianyuli/xdc_project/welfare_question/app/mmpayxdcwelfarepostersvr/node_modules/co-body/lib/json.js:43:19
     24  100.0%          /data1/mm64/qianyuli/.nvm/versions/node/v12.18.0/bin/node
     24  100.0%            LazyCompile: *processTicksAndRejections internal/process/task_queues.js:69:35
     11   28.9%      LazyCompile: ~readPackage internal/modules/cjs/loader.js:245:21
     11  100.0%        LazyCompile: ~readPackageExports internal/modules/cjs/loader.js:302:28
     11  100.0%          LazyCompile: ~applyExports internal/modules/cjs/loader.js:441:22
      7   63.6%            LazyCompile: ~resolveExports internal/modules/cjs/loader.js:498:24
      4   36.4%            LazyCompile: *Module._findPath internal/modules/cjs/loader.js:607:28
      3    7.9%      LazyCompile: ~Module._extensions..json internal/modules/cjs/loader.js:1163:39
      3  100.0%        LazyCompile: ~Module.load internal/modules/cjs/loader.js:974:33
      3  100.0%          LazyCompile: ~Module._load internal/modules/cjs/loader.js:823:24
      3  100.0%            LazyCompile: ~Module.require internal/modules/cjs/loader.js:1018:36
lixiaoqian521 commented 2 years ago

and i dont know the meaning of this result image

lixiaoqian521 commented 2 years ago

and i also use strace to analyze performance,i post one request

sudo strace -f -p 18774 -t -T -o ./strace.log

The content of this file is

18804 19:51:57 futex(0x2c95aa4, FUTEX_WAIT_PRIVATE, 498, NULL <unfinished ...>
18803 19:51:57 futex(0x2c95aa4, FUTEX_WAIT_PRIVATE, 498, NULL <unfinished ...>
18802 19:51:57 futex(0x2c95aa4, FUTEX_WAIT_PRIVATE, 498, NULL <unfinished ...>
18801 19:51:57 futex(0x2c95aa4, FUTEX_WAIT_PRIVATE, 498, NULL <unfinished ...>
18780 19:51:57 futex(0x4a17c9c, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...>
18779 19:51:57 futex(0x496794c, FUTEX_WAIT_PRIVATE, 688, NULL <unfinished ...>
18778 19:51:57 futex(0x496794c, FUTEX_WAIT_PRIVATE, 688, NULL <unfinished ...>
18777 19:51:57 futex(0x496794c, FUTEX_WAIT_PRIVATE, 688, NULL <unfinished ...>
18776 19:51:57 futex(0x496794c, FUTEX_WAIT_PRIVATE, 688, NULL <unfinished ...>
18775 19:51:57 epoll_wait(9,  <unfinished ...>
18774 19:51:57 epoll_wait(13, {{EPOLLIN, {u32=29, u64=29}}}, 1024, 14144) = 1 <4.023421>
18774 19:52:01 read(29, "POST /api/poster HTTP/1.1\r\nConte"..., 65536) = 1238 <0.000019>
18774 19:52:01 mprotect(0x233582e82000, 249856, PROT_READ|PROT_WRITE) = 0 <0.000023>
18774 19:52:01 mprotect(0x233582e82000, 249856, PROT_READ|PROT_EXEC) = 0 <0.000019>
18774 19:52:01 write(20, "233582eba740 47e RegExp::\\d{4}$|"..., 42) = 42 <0.000029>
18774 19:52:01 epoll_wait(13, {{EPOLLIN, {u32=29, u64=29}}}, 1024, 10252) = 1 <0.000027>
18774 19:52:01 read(29, "4MjCCSwNtKNrOGxPfdedwzPncDK4uttq"..., 65536) = 6921 <0.000020>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 147) = 147 <0.000040>
18774 19:52:01 futex(0x2c95aa4, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x2c95aa0, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
18804 19:52:01 <... futex resumed> )    = 0 <4.026126>
18774 19:52:01 <... futex resumed> )    = 1 <0.000049>
18804 19:52:01 futex(0x2c95a60, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
18774 19:52:01 futex(0x2c95a60, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18804 19:52:01 <... futex resumed> )    = -1 EAGAIN (Resource temporarily unavailable) <0.000022>
18774 19:52:01 <... futex resumed> )    = 0 <0.000032>
18804 19:52:01 futex(0x2c95a60, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000019>
18804 19:52:01 socket(PF_NETLINK, SOCK_RAW, 0) = 31 <0.000021>
18804 19:52:01 bind(31, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0 <0.000020>
18804 19:52:01 getsockname(31, {sa_family=AF_NETLINK, pid=18774, groups=00000000}, [12]) = 0 <0.000019>
18804 19:52:01 sendto(31, "\24\0\0\0\26\0\1\3\341\333Jb\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20 <0.000026>
18804 19:52:01 recvmsg(31, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"D\0\0\0\24\0\2\0\341\333JbVI\0\0\2\10\200\376\1\0\0\0\10\0\1\0\177\0\0\1"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 228 <0.000024>
18804 19:52:01 recvmsg(31, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0\341\333JbVI\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 20 <0.000019>
18804 19:52:01 close(31)                = 0 <0.000022>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 7900 <unfinished ...>
18804 19:52:01 socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 31 <0.000020>
18804 19:52:01 connect(31, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110 <unfinished ...>
18774 19:52:01 <... write resumed> )    = 7900 <0.000075>
18804 19:52:01 <... connect resumed> )  = 0 <0.000032>
18804 19:52:01 sendto(31, "\2\0\0\0\4\0\0\0\27\0\0\0api.cube.weixin.oa.c"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000022>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 170 <unfinished ...>
18804 19:52:01 poll([{fd=31, events=POLLIN|POLLERR|POLLHUP}], 1, 5000 <unfinished ...>
18774 19:52:01 <... write resumed> )    = 170 <0.000023>
18774 19:52:01 mprotect(0x233582e82000, 249856, PROT_READ|PROT_WRITE) = 0 <0.000020>
18774 19:52:01 mprotect(0x233582e82000, 249856, PROT_READ|PROT_EXEC) = 0 <0.000016>
18774 19:52:01 write(20, "233582ebac00 6c5 RegExp:.+\\.(jpg"..., 52) = 52 <0.000021>
18774 19:52:01 mprotect(0x233582e82000, 249856, PROT_READ|PROT_WRITE) = 0 <0.000024>
18774 19:52:01 mprotect(0x233582e82000, 249856, PROT_READ|PROT_EXEC) = 0 <0.000020>
18774 19:52:01 write(20, "233582ebb320 686 RegExp:.+\\.(jpg"..., 52) = 52 <0.000021>
18804 19:52:01 <... poll resumed> )     = 1 ([{fd=31, revents=POLLIN|POLLHUP}]) <0.006234>
18804 19:52:01 read(31, "\2\0\0\0\1\0\0\0\27\0\0\0\0\0\0\0\2\0\0\0\4\0\0\0\r\0\0\0\0\0\0\0", 32) = 32 <0.000021>
18804 19:52:01 readv(31, [{"api.cube.weixin.oa.com\0", 23}, {"dM\fPdA\37\20\v\261\326wda\6\320\tr\27\271\tr\f&dM\7\230\v\265r\374"..., 52}], 2) = 75 <0.000020>
18804 19:52:01 close(31)                = 0 <0.000022>
18804 19:52:01 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 31 <0.000020>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.77.12.80")}, 16) = 0 <0.000031>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(54102), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000022>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000013>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.65.31.16")}, 16) = 0 <0.000023>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(40372), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000021>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.177.214.119")}, 16) = 0 <0.000021>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(44506), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.97.6.208")}, 16) = 0 <0.000019>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(45992), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000016>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.23.185")}, 16) = 0 <0.000020>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(57867), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000017>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.12.38")}, 16) = 0 <0.000019>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(42866), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.77.7.152")}, 16) = 0 <0.000019>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(54148), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000019>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.181.114.252")}, 16) = 0 <0.000019>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(46292), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.12.30")}, 16) = 0 <0.000019>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(50679), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.181.115.195")}, 16) = 0 <0.000019>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(54333), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000017>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.23.188")}, 16) = 0 <0.000021>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(39198), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000017>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.181.115.189")}, 16) = 0 <0.000019>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(39528), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18804 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.23.177")}, 16) = 0 <0.000017>
18804 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(37501), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000017>
18804 19:52:01 close(31)                = 0 <0.000017>
18804 19:52:01 write(16, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000017>
18804 19:52:01 futex(0x2c95aa4, FUTEX_WAIT_PRIVATE, 500, NULL <unfinished ...>
18774 19:52:01 write(27, "2022-04-04 19:52:01 DEBUG [/data"..., 250) = 250 <0.000046>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 169) = 169 <0.000037>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 173) = 173 <0.000035>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 237) = 237 <0.000036>
18774 19:52:01 futex(0x496794c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x4967948, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
18779 19:52:01 <... futex resumed> )    = 0 <4.083198>
18774 19:52:01 <... futex resumed> )    = 1 <0.000041>
18779 19:52:01 futex(0x4967920, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
18774 19:52:01 futex(0x4967920, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18779 19:52:01 <... futex resumed> )    = -1 EAGAIN (Resource temporarily unavailable) <0.000014>
18774 19:52:01 <... futex resumed> )    = 0 <0.000019>
18779 19:52:01 futex(0x4967920, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000019>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 175) = 175 <0.000033>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 156) = 156 <0.000033>
18774 19:52:01 mmap(0x26f241780000, 446464, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x26f241780000 <0.000031>
18774 19:52:01 munmap(0x26f2417ae000, 258048) = 0 <0.000025>
18774 19:52:01 mprotect(0x26f241780000, 188416, PROT_READ|PROT_WRITE) = 0 <0.000020>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000021>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000017>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000064>
18774 19:52:01 stat("/home/qianyuli/.local/share//mime/mime.cache",  <unfinished ...>
18779 19:52:01 mprotect(0x7fcb080c6000, 16384, PROT_READ|PROT_WRITE <unfinished ...>
18774 19:52:01 <... stat resumed> 0x7ffcb2c38950) = -1 ENOENT (No such file or directory) <0.000026>
18779 19:52:01 <... mprotect resumed> ) = 0 <0.000027>
18774 19:52:01 stat("/home/qianyuli/.local/share//mime/globs", 0x7ffcb2c38950) = -1 ENOENT (No such file or directory) <0.000023>
18774 19:52:01 stat("/home/qianyuli/.local/share//mime/magic", 0x7ffcb2c38950) = -1 ENOENT (No such file or directory) <0.000018>
18774 19:52:01 stat("/usr/local/share//mime/mime.cache",  <unfinished ...>
18779 19:52:01 mprotect(0x7fcb080ca000, 32768, PROT_READ|PROT_WRITE <unfinished ...>
18774 19:52:01 <... stat resumed> 0x7ffcb2c38950) = -1 ENOENT (No such file or directory) <0.000030>
18779 19:52:01 <... mprotect resumed> ) = 0 <0.000028>
18774 19:52:01 stat("/usr/local/share//mime/globs", 0x7ffcb2c38950) = -1 ENOENT (No such file or directory) <0.000016>
18779 19:52:01 mprotect(0x7fcb080d2000, 32768, PROT_READ|PROT_WRITE <unfinished ...>
18774 19:52:01 stat("/usr/local/share//mime/magic",  <unfinished ...>
18779 19:52:01 <... mprotect resumed> ) = 0 <0.000032>
18774 19:52:01 <... stat resumed> 0x7ffcb2c38950) = -1 ENOENT (No such file or directory) <0.000015>
18774 19:52:01 stat("/usr/share//mime/mime.cache",  <unfinished ...>
18779 19:52:01 mprotect(0x7fcb080da000, 32768, PROT_READ|PROT_WRITE <unfinished ...>
18774 19:52:01 <... stat resumed> {st_mode=S_IFREG|0644, st_size=111860, ...}) = 0 <0.000032>
18779 19:52:01 <... mprotect resumed> ) = 0 <0.000028>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000018>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000016>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000061>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000023>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000026>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000061>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000020>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000017>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000050>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000021>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000020>
18779 19:52:01 futex(0x496794c, FUTEX_WAIT_PRIVATE, 690, NULL <unfinished ...>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000048>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000021>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000019>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000043>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000020>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000016>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000044>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000017>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000016>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000044>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000019>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000015>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000045>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000019>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000016>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000048>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000020>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000022>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000056>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000021>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000017>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000049>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000019>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000027>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000048>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000020>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000020>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000055>
18774 19:52:01 open("/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = -1 ENOENT (No such file or directory) <0.000021>
18774 19:52:01 ioctl(2, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 <0.000020>
18774 19:52:01 write(2, "\n(process:18774): GdkPixbuf-\33[1;"..., 394) = 394 <0.000049>
18774 19:52:01 brk(0)                   = 0x51b2000 <0.000018>
18774 19:52:01 brk(0x542f000)           = 0x542f000 <0.000020>
18774 19:52:01 mprotect(0x233582e82000, 249856, PROT_READ|PROT_WRITE) = 0 <0.000022>
18774 19:52:01 mprotect(0x233582e82000, 249856, PROT_READ|PROT_EXEC) = 0 <0.000019>
18774 19:52:01 write(20, "233582ea9b80 1440 LazyCompile:*f"..., 156) = 156 <0.000027>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 160) = 160 <0.000031>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 163) = 163 <0.000031>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 160) = 160 <0.000032>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 160) = 160 <0.000038>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 169) = 169 <0.000034>
18774 19:52:01 mprotect(0x30e2b27c0000, 262144, PROT_READ|PROT_WRITE) = 0 <0.000025>
18774 19:52:01 mprotect(0x19dd41940000, 262144, PROT_READ|PROT_WRITE) = 0 <0.000024>
18774 19:52:01 mprotect(0xc444b580000, 262144, PROT_READ|PROT_WRITE) = 0 <0.000024>
18774 19:52:01 mprotect(0x392916480000, 262144, PROT_READ|PROT_WRITE) = 0 <0.000021>
18774 19:52:01 futex(0x496794c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x4967948, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
18778 19:52:01 <... futex resumed> )    = 0 <4.129634>
18774 19:52:01 <... futex resumed> )    = 1 <0.000039>
18778 19:52:01 futex(0x4967920, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
18774 19:52:01 futex(0x4967920, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18778 19:52:01 <... futex resumed> )    = -1 EAGAIN (Resource temporarily unavailable) <0.000016>
18774 19:52:01 <... futex resumed> )    = 0 <0.000022>
18778 19:52:01 futex(0x4967920, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000019>
18774 19:52:01 mmap(0x277763bc0000, 520192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x277763bc0000 <0.000025>
18778 19:52:01 futex(0x7ffcb2c388f4, FUTEX_WAIT_BITSET_PRIVATE, 1, {7106173, 674456000}, ffffffff <unfinished ...>
18774 19:52:01 munmap(0x277763c00000, 258048) = 0 <0.000022>
18774 19:52:01 mprotect(0x277763bc0000, 262144, PROT_READ|PROT_WRITE) = 0 <0.000018>
18774 19:52:01 futex(0x7ffcb2c388f4, FUTEX_CMP_REQUEUE_PRIVATE, 1, 2147483647, 0x7ffcb2c38920, 2) = 1 <0.000024>
18778 19:52:01 <... futex resumed> )    = 0 <0.000319>
18774 19:52:01 futex(0x49dcd10, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
18778 19:52:01 futex(0x7ffcb2c38920, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000016>
18778 19:52:01 futex(0x49dcd10, FUTEX_WAKE_PRIVATE, 1) = 1 <0.000019>
18774 19:52:01 <... futex resumed> )    = 0 <0.000084>
18778 19:52:01 futex(0x496794c, FUTEX_WAIT_PRIVATE, 692, NULL <unfinished ...>
18774 19:52:01 futex(0x496794c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x4967948, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
18777 19:52:01 <... futex resumed> )    = 0 <4.130357>
18774 19:52:01 <... futex resumed> )    = 1 <0.000049>
18777 19:52:01 futex(0x4967920, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
18774 19:52:01 futex(0x4967920, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18777 19:52:01 <... futex resumed> )    = -1 EAGAIN (Resource temporarily unavailable) <0.000021>
18774 19:52:01 <... futex resumed> )    = 0 <0.000016>
18777 19:52:01 futex(0x4967920, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000018>
18777 19:52:01 futex(0x7fcb182ee760, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
18774 19:52:01 futex(0x7fcb182ee760, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18777 19:52:01 <... futex resumed> )    = -1 EAGAIN (Resource temporarily unavailable) <0.000012>
18774 19:52:01 <... futex resumed> )    = 0 <0.000022>
18777 19:52:01 futex(0x7fcb182ee760, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18774 19:52:01 futex(0x496794c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x4967948, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
18777 19:52:01 <... futex resumed> )    = 0 <0.000023>
18774 19:52:01 <... futex resumed> )    = 1 <0.000018>
18777 19:52:01 futex(0x4967920, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
18776 19:52:01 <... futex resumed> )    = 0 <4.130608>
18777 19:52:01 <... futex resumed> )    = -1 EAGAIN (Resource temporarily unavailable) <0.000017>
18774 19:52:01 futex(0x4967920, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18777 19:52:01 futex(0x4967920, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18776 19:52:01 futex(0x4967920, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18777 19:52:01 <... futex resumed> )    = 0 <0.000017>
18774 19:52:01 <... futex resumed> )    = 0 <0.000045>
18777 19:52:01 futex(0x496794c, FUTEX_WAIT_PRIVATE, 695, NULL <unfinished ...>
18776 19:52:01 <... futex resumed> )    = 0 <0.000044>
18776 19:52:01 mprotect(0x20068b000000, 262144, PROT_NONE) = 0 <0.000028>
18776 19:52:01 madvise(0x20068b000000, 262144, MADV_DONTNEED) = 0 <0.000051>
18774 19:52:01 futex(0x2c95aa4, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x2c95aa0, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
18776 19:52:01 mprotect(0x3a54177c0000, 262144, PROT_NONE <unfinished ...>
18803 19:52:01 <... futex resumed> )    = 0 <4.130968>
18774 19:52:01 <... futex resumed> )    = 1 <0.000040>
18803 19:52:01 futex(0x2c95a60, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
18776 19:52:01 <... mprotect resumed> ) = 0 <0.000054>
18803 19:52:01 <... futex resumed> )    = -1 EAGAIN (Resource temporarily unavailable) <0.000017>
18774 19:52:01 futex(0x2c95a60, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18803 19:52:01 futex(0x2c95a60, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18776 19:52:01 madvise(0x3a54177c0000, 262144, MADV_DONTNEED <unfinished ...>
18803 19:52:01 <... futex resumed> )    = 0 <0.000016>
18774 19:52:01 <... futex resumed> )    = 0 <0.000043>
18803 19:52:01 socket(PF_NETLINK, SOCK_RAW, 0 <unfinished ...>
18776 19:52:01 <... madvise resumed> )  = 0 <0.000055>
18803 19:52:01 <... socket resumed> )   = 31 <0.000015>
18776 19:52:01 mprotect(0xcb0dbb40000, 262144, PROT_NONE <unfinished ...>
18803 19:52:01 bind(31, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12 <unfinished ...>
18776 19:52:01 <... mprotect resumed> ) = 0 <0.000038>
18803 19:52:01 <... bind resumed> )     = 0 <0.000015>
18776 19:52:01 madvise(0xcb0dbb40000, 262144, MADV_DONTNEED <unfinished ...>
18803 19:52:01 getsockname(31, {sa_family=AF_NETLINK, pid=18774, groups=00000000}, [12]) = 0 <0.000018>
18776 19:52:01 <... madvise resumed> )  = 0 <0.000042>
18803 19:52:01 sendto(31, "\24\0\0\0\26\0\1\3\341\333Jb\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12 <unfinished ...>
18776 19:52:01 mprotect(0x19e3d1980000, 262144, PROT_NONE <unfinished ...>
18803 19:52:01 <... sendto resumed> )   = 20 <0.000026>
18776 19:52:01 <... mprotect resumed> ) = 0 <0.000030>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 294 <unfinished ...>
18803 19:52:01 recvmsg(31,  <unfinished ...>
18776 19:52:01 madvise(0x19e3d1980000, 262144, MADV_DONTNEED <unfinished ...>
18803 19:52:01 <... recvmsg resumed> {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"D\0\0\0\24\0\2\0\341\333JbVI\0\0\2\10\200\376\1\0\0\0\10\0\1\0\177\0\0\1"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 228 <0.000024>
18774 19:52:01 <... write resumed> )    = 294 <0.000050>
18803 19:52:01 recvmsg(31,  <unfinished ...>
18776 19:52:01 <... madvise resumed> )  = 0 <0.000052>
18803 19:52:01 <... recvmsg resumed> {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0\341\333JbVI\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 20 <0.000024>
18776 19:52:01 futex(0x496794c, FUTEX_WAIT_PRIVATE, 696, NULL <unfinished ...>
18803 19:52:01 close(31)                = 0 <0.000021>
18803 19:52:01 socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 31 <0.000024>
18803 19:52:01 connect(31, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110 <unfinished ...>
18774 19:52:01 write(27, "2022-04-04 19:52:01 INFO [/data1"..., 145 <unfinished ...>
18803 19:52:01 <... connect resumed> )  = 0 <0.000042>
18774 19:52:01 <... write resumed> )    = 145 <0.000046>
18803 19:52:01 sendto(31, "\2\0\0\0\4\0\0\0\27\0\0\0api.cube.weixin.oa.c"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000027>
18803 19:52:01 poll([{fd=31, events=POLLIN|POLLERR|POLLHUP}], 1, 5000 <unfinished ...>
18774 19:52:01 writev(29, [{"HTTP/1.1 200 OK\r\nX-DNS-Prefetch-"..., 13854}, {"", 0}], 2) = 13854 <0.000058>
18774 19:52:01 epoll_ctl(13, EPOLL_CTL_MOD, 29, {EPOLLIN, {u32=29, u64=29}}) = 0 <0.000024>
18774 19:52:01 epoll_wait(13, {{EPOLLIN, {u32=16, u64=16}}}, 1024, 369) = 1 <0.000020>
18774 19:52:01 read(16, "\1\0\0\0\0\0\0\0", 1024) = 8 <0.000020>
18774 19:52:01 socket(PF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 32 <0.000024>
18774 19:52:01 connect(32, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("100.77.12.80")}, 16) = -1 EINPROGRESS (Operation now in progress) <0.000038>
18774 19:52:01 epoll_ctl(13, EPOLL_CTL_ADD, 32, {EPOLLOUT, {u32=32, u64=32}}) = 0 <0.000020>
18774 19:52:01 epoll_wait(13, {{EPOLLOUT, {u32=32, u64=32}}}, 1024, 369) = 1 <0.001203>
18774 19:52:01 getsockopt(32, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 <0.000019>
18774 19:52:01 writev(32, [{"POST /cube/report/reportbizdata?"..., 404}, {"", 0}], 2) = 404 <0.000030>
18774 19:52:01 getpeername(32, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("100.77.12.80")}, [16]) = 0 <0.000018>
18774 19:52:01 epoll_ctl(13, EPOLL_CTL_ADD, 32, {EPOLLIN, {u32=32, u64=32}}) = -1 EEXIST (File exists) <0.000017>
18774 19:52:01 epoll_ctl(13, EPOLL_CTL_MOD, 32, {EPOLLIN, {u32=32, u64=32}}) = 0 <0.000017>
18774 19:52:01 epoll_wait(13,  <unfinished ...>
18803 19:52:01 <... poll resumed> )     = 1 ([{fd=31, revents=POLLIN|POLLHUP}]) <0.006258>
18803 19:52:01 read(31, "\2\0\0\0\1\0\0\0\27\0\0\0\0\0\0\0\2\0\0\0\4\0\0\0\r\0\0\0\0\0\0\0", 32) = 32 <0.000017>
18803 19:52:01 readv(31, [{"api.cube.weixin.oa.com\0", 23}, {"\v\265r\374\tr\f\36\v\265s\303\tr\27\274\v\265s\275\tr\27\261dM\fPdA\37\20"..., 52}], 2) = 75 <0.000017>
18803 19:52:01 close(31)                = 0 <0.000019>
18803 19:52:01 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 31 <0.000018>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.181.114.252")}, 16) = 0 <0.000023>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(45571), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000016>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000028>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.12.30")}, 16) = 0 <0.000021>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(38128), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000019>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000019>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.181.115.195")}, 16) = 0 <0.000024>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(37568), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000021>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000022>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.23.188")}, 16) = 0 <0.000022>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(59097), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000020>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000021>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.181.115.189")}, 16) = 0 <0.000021>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(44293), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000020>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000021>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.23.177")}, 16) = 0 <0.000021>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(45752), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000020>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000025>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.77.12.80")}, 16) = 0 <0.000031>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(36624), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000021>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000020>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.65.31.16")}, 16) = 0 <0.000023>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(34608), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000020>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000021>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.177.214.119")}, 16) = 0 <0.000022>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(48792), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000019>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000020>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.97.6.208")}, 16) = 0 <0.000022>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(47411), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000021>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000021>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.23.185")}, 16) = 0 <0.000023>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(43483), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000018>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.12.38")}, 16) = 0 <0.000019>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(37128), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000018>
18803 19:52:01 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18803 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.77.7.152")}, 16) = 0 <0.000019>
18803 19:52:01 getsockname(31, {sa_family=AF_INET, sin_port=htons(44127), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000018>
18803 19:52:01 close(31)                = 0 <0.000020>
18803 19:52:01 write(16, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000022>
18774 19:52:01 <... epoll_wait resumed> {{EPOLLIN, {u32=16, u64=16}}}, 1024, 367) = 1 <0.006063>
18803 19:52:01 futex(0x2c95aa4, FUTEX_WAIT_PRIVATE, 502, NULL <unfinished ...>
18774 19:52:01 read(16, "\1\0\0\0\0\0\0\0", 1024) = 8 <0.000019>
18774 19:52:01 socket(PF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 31 <0.000021>
18774 19:52:01 connect(31, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("11.181.114.252")}, 16) = -1 EINPROGRESS (Operation now in progress) <0.000035>
18774 19:52:01 epoll_ctl(13, EPOLL_CTL_ADD, 31, {EPOLLOUT, {u32=31, u64=31}}) = 0 <0.000021>
18774 19:52:01 epoll_wait(13, {{EPOLLOUT, {u32=31, u64=31}}}, 1024, 361) = 1 <0.001201>
18774 19:52:01 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 <0.000019>
18774 19:52:01 writev(31, [{"POST /cube/report/reportbizdata?"..., 537}, {"", 0}], 2) = 537 <0.000032>
18774 19:52:01 getpeername(31, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("11.181.114.252")}, [16]) = 0 <0.000019>
18774 19:52:01 epoll_ctl(13, EPOLL_CTL_ADD, 31, {EPOLLIN, {u32=31, u64=31}}) = -1 EEXIST (File exists) <0.000018>
18774 19:52:01 epoll_ctl(13, EPOLL_CTL_MOD, 31, {EPOLLIN, {u32=31, u64=31}}) = 0 <0.000019>
18774 19:52:01 epoll_wait(13, {{EPOLLIN, {u32=32, u64=32}}}, 1024, 359) = 1 <0.050760>
18774 19:52:01 read(32, "HTTP/1.1 200 OK\r\nx-proxy-by: Sma"..., 65536) = 240 <0.000019>
18774 19:52:01 epoll_ctl(13, EPOLL_CTL_DEL, 32, {0, {u32=0, u64=0}}) = 0 <0.000020>
18774 19:52:01 close(32)                = 0 <0.000027>
18774 19:52:01 epoll_wait(13, {{EPOLLIN, {u32=31, u64=31}}}, 1024, 308) = 1 <0.004144>
18774 19:52:01 read(31, "HTTP/1.1 200 OK\r\nx-proxy-by: Sma"..., 65536) = 242 <0.000020>
18774 19:52:01 epoll_ctl(13, EPOLL_CTL_DEL, 31, {0, {u32=0, u64=0}}) = 0 <0.000019>
18774 19:52:01 close(31)                = 0 <0.000029>
18774 19:52:01 epoll_wait(13, {}, 1024, 303) = 0 <0.303343>
18774 19:52:02 epoll_wait(13, {}, 1024, 9630) = 0 <9.636519>
18774 19:52:11 futex(0x2c95aa4, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x2c95aa0, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1} <unfinished ...>
18802 19:52:11 <... futex resumed> )    = 0 <14.139202>
18774 19:52:11 <... futex resumed> )    = 1 <0.000059>
18802 19:52:11 futex(0x2c95a60, FUTEX_WAIT_PRIVATE, 2, NULL <unfinished ...>
18774 19:52:11 futex(0x2c95a60, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
18802 19:52:11 <... futex resumed> )    = -1 EAGAIN (Resource temporarily unavailable) <0.000015>
18774 19:52:11 <... futex resumed> )    = 0 <0.000019>
18802 19:52:11 futex(0x2c95a60, FUTEX_WAKE_PRIVATE, 1) = 0 <0.000020>
18802 19:52:11 socket(PF_NETLINK, SOCK_RAW, 0) = 31 <0.000021>
18802 19:52:11 bind(31, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0 <0.000031>
18802 19:52:11 getsockname(31,  <unfinished ...>
18774 19:52:11 epoll_wait(13,  <unfinished ...>
18802 19:52:11 <... getsockname resumed> {sa_family=AF_NETLINK, pid=18774, groups=00000000}, [12]) = 0 <0.000017>
18802 19:52:11 sendto(31, "\24\0\0\0\26\0\1\3\353\333Jb\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20 <0.000025>
18802 19:52:11 recvmsg(31, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"D\0\0\0\24\0\2\0\353\333JbVI\0\0\2\10\200\376\1\0\0\0\10\0\1\0\177\0\0\1"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 228 <0.000025>
18802 19:52:11 recvmsg(31, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0\353\333JbVI\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 20 <0.000019>
18802 19:52:11 close(31)                = 0 <0.000022>
18802 19:52:11 socket(PF_LOCAL, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 31 <0.000020>
18802 19:52:11 connect(31, {sa_family=AF_LOCAL, sun_path="/var/run/nscd/socket"}, 110) = 0 <0.000034>
18802 19:52:11 sendto(31, "\2\0\0\0\4\0\0\0\27\0\0\0api.cube.weixin.oa.c"..., 35, MSG_NOSIGNAL, NULL, 0) = 35 <0.000023>
18802 19:52:11 poll([{fd=31, events=POLLIN|POLLERR|POLLHUP}], 1, 5000) = 1 ([{fd=31, revents=POLLIN|POLLHUP}]) <0.006043>
18802 19:52:11 read(31, "\2\0\0\0\1\0\0\0\27\0\0\0\0\0\0\0\2\0\0\0\4\0\0\0\r\0\0\0\0\0\0\0", 32) = 32 <0.000017>
18802 19:52:11 readv(31, [{"api.cube.weixin.oa.com\0", 23}, {"\tr\f\36\v\265s\303\tr\27\274\tr\27\261\v\265s\275\v\265r\374\tr\27\271da\6\320"..., 52}], 2) = 75 <0.000017>
18802 19:52:11 close(31)                = 0 <0.000019>
18802 19:52:11 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 31 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.12.30")}, 16) = 0 <0.000019>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(57476), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000016>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000036>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.181.115.195")}, 16) = 0 <0.000020>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(49894), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000016>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000016>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.23.188")}, 16) = 0 <0.000018>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(40821), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000016>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.23.177")}, 16) = 0 <0.000018>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(58596), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000016>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.181.115.189")}, 16) = 0 <0.000017>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(39089), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.181.114.252")}, 16) = 0 <0.000020>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(45583), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.23.185")}, 16) = 0 <0.000018>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(56575), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.97.6.208")}, 16) = 0 <0.000017>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(32971), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000016>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000018>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.65.31.16")}, 16) = 0 <0.000017>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(52752), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.77.12.80")}, 16) = 0 <0.000017>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(48546), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000016>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000017>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("9.114.12.38")}, 16) = 0 <0.000018>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(58786), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000016>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000021>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("11.177.214.119")}, 16) = 0 <0.000027>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(34297), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000020>
18802 19:52:11 connect(31, {sa_family=AF_UNSPEC, sa_data="\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}, 16) = 0 <0.000020>
18802 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("100.77.7.152")}, 16) = 0 <0.000021>
18802 19:52:11 getsockname(31, {sa_family=AF_INET, sin_port=htons(57839), sin_addr=inet_addr("9.134.186.224")}, [16]) = 0 <0.000019>
18802 19:52:11 close(31)                = 0 <0.000022>
18802 19:52:11 write(16, "\1\0\0\0\0\0\0\0", 8) = 8 <0.000028>
18774 19:52:11 <... epoll_wait resumed> {{EPOLLIN, {u32=16, u64=16}}}, 1024, 138) = 1 <0.009391>
18802 19:52:11 futex(0x2c95aa4, FUTEX_WAIT_PRIVATE, 504, NULL <unfinished ...>
18774 19:52:11 read(16, "\1\0\0\0\0\0\0\0", 1024) = 8 <0.000020>
18774 19:52:11 socket(PF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 31 <0.000021>
18774 19:52:11 connect(31, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("9.114.12.30")}, 16) = -1 EINPROGRESS (Operation now in progress) <0.000039>
18774 19:52:11 epoll_ctl(13, EPOLL_CTL_ADD, 31, {EPOLLOUT, {u32=31, u64=31}}) = 0 <0.000019>
18774 19:52:11 epoll_wait(13, {{EPOLLOUT, {u32=31, u64=31}}}, 1024, 128) = 1 <0.001274>
18774 19:52:11 getsockopt(31, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 <0.000020>
18774 19:52:11 writev(31, [{"POST /cube/report/reportbizdata?"..., 882}, {"", 0}], 2) = 882 <0.000027>
18774 19:52:11 getpeername(31, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("9.114.12.30")}, [16]) = 0 <0.000018>
18774 19:52:11 epoll_ctl(13, EPOLL_CTL_ADD, 31, {EPOLLIN, {u32=31, u64=31}}) = -1 EEXIST (File exists) <0.000017>
18774 19:52:11 epoll_ctl(13, EPOLL_CTL_MOD, 31, {EPOLLIN, {u32=31, u64=31}}) = 0 <0.000017>
18774 19:52:11 epoll_wait(13, {{EPOLLIN, {u32=31, u64=31}}}, 1024, 126) = 1 <0.096073>
18774 19:52:11 read(31, "HTTP/1.1 200 OK\r\nx-proxy-by: Sma"..., 65536) = 239 <0.000021>
18774 19:52:11 epoll_ctl(13, EPOLL_CTL_DEL, 31, {0, {u32=0, u64=0}}) = 0 <0.000023>
18774 19:52:11 close(31)                = 0 <0.000032>
18774 19:52:11 epoll_wait(13, {}, 1024, 29) = 0 <0.029081>
18774 19:52:11 epoll_wait(13, {}, 1024, 3633) = 0 <3.636505>
18774 19:52:15 epoll_wait(13, {}, 1024, 46219) = 0 <46.259644>
18774 19:53:01 write(20, "262d12b14b26 5e LazyCompile:~Soc"..., 58) = 58 <0.000030>
18774 19:53:01 write(20, "262d12b14d46 78 LazyCompile:~soc"..., 65) = 65 <0.000022>
18774 19:53:01 epoll_ctl(13, EPOLL_CTL_DEL, 29, {0, {u32=0, u64=0}}) = 0 <0.000019>
18774 19:53:01 close(29)                = 0 <0.000042>
18774 19:53:01 write(20, "262d12b15136 61 LazyCompile:~Ser"..., 68) = 68 <0.000022>
18774 19:53:01 epoll_wait(13, {}, 1024, 0) = 0 <0.000018>
18774 19:53:01 write(20, "262d12b15316 3c LazyCompile:~soc"..., 63) = 63 <0.000021>
18774 19:53:01 write(20, "262d12b154e6 3c LazyCompile:~abo"..., 63) = 63 <0.000022>
18774 19:53:01 epoll_wait(13, 
lixiaoqian521 commented 2 years ago
sudo strace -f -p 18774 -t -T -c -o ./strace.log
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 94.39   56.299452         303    185508     37958 futex
  5.55    3.312787         530      6251           poll
  0.01    0.008272           0     96788           write
  0.01    0.008162           6      1376           brk
  0.01    0.008000          34       234           epoll_wait
  0.00    0.002889           0      7925           munmap
  0.00    0.002638           0    162966      3065 connect
  0.00    0.001158           0     12301           sendto
  0.00    0.000984           0     22354           mprotect
  0.00    0.000781           0     86100           getsockname
  0.00    0.000566           0     45106     45000 open
  0.00    0.000468           0     24623           close
  0.00    0.000454           0     21516           socket
  0.00    0.000354           0     21202      3064 epoll_ctl
  0.00    0.000304           0     45100           ioctl
  0.00    0.000215           0       447           madvise
  0.00    0.000207           0      6046           writev
  0.00    0.000105           0      6050           readv
  0.00    0.000105           0      3000           shutdown
  0.00    0.000103           0     12300           recvmsg
  0.00    0.000088           0      6046           getpeername
  0.00    0.000074           0      9471           read
  0.00    0.000042           0      3031        31 accept4
  0.00    0.000035           0      3046           getsockopt
  0.00    0.000000           0       434       372 stat
  0.00    0.000000           0       106           fstat
  0.00    0.000000           0      4022           mmap
  0.00    0.000000           0       100           recvfrom
  0.00    0.000000           0      6150           bind
------ ----------- ----------- --------- --------- ----------------
100.00   59.648243                799599     89490 total
lixiaoqian521 commented 2 years ago

That looks like what I would expect: only loadImage and toBuffer taking a significant amount of time.

I'm not sure what platform you're on, but on Windows you can attach the Visual Studio (not Visual Studio Code) profiler to get accurate C++ profiling. There are also two guides from Node.js here:

so can you tell me why the two function cost too much.Maybe the performance bottleneck is because my svg image is too big or some specific elements are added that cause these two functions to take too long?

lixiaoqian521 commented 2 years ago

hey,man, maybe i find the problem , i use canvas.toBuffer() to deal with the svg, if i change this info in the svg, the qps will increase to 100 qps, initial concurrency is 20qps

this is the initial: <svg width="640" height="1020" viewBox="0 0 640 1020" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

This is the performance improvement after modification: <svg width="271" height="217" viewBox="0 0 271 217" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

so, can you tell me if i want use <svg width="640" height="1020" viewBox="0 0 640 1020" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">, how can i improve program performance?

lixiaoqian521 commented 2 years ago

hey, man, i learned this function

    /**
     * For image canvases, encodes the canvas as a PNG. For PDF canvases,
     * encodes the canvas as a PDF. For SVG canvases, encodes the canvas as an
     * SVG.
     */
    toBuffer(cb: (err: Error|null, result: Buffer) => void): void
    toBuffer(cb: (err: Error|null, result: Buffer) => void, mimeType: 'image/png', config?: PngConfig): void
    toBuffer(cb: (err: Error|null, result: Buffer) => void, mimeType: 'image/jpeg', config?: JpegConfig): void

    /**
     * For image canvases, encodes the canvas as a PNG. For PDF canvases,
     * encodes the canvas as a PDF. For SVG canvases, encodes the canvas as an
     * SVG.
     */
    toBuffer(): Buffer
    toBuffer(mimeType: 'image/png', config?: PngConfig): Buffer
    toBuffer(mimeType: 'image/jpeg', config?: JpegConfig): Buffer
    toBuffer(mimeType: 'application/pdf', config?: PdfConfig): Buffer

and i learnt the source code int src/Canvas.cc

  // Async PNG
  if (info[0]->IsFunction() &amp;&amp;
    (info[1]->IsUndefined() || info[1]->StrictEquals(Nan::New<String>("image/png").ToLocalChecked()))) {

    PngClosure* closure;
    try {
      closure = new PngClosure(canvas);
      parsePNGArgs(info[2], *closure);
    } catch (cairo_status_t ex) {
      Nan::ThrowError(Canvas::Error(ex));
      return;
    } catch (const char* ex) {
      Nan::ThrowError(ex);
      return;
    }

    canvas->Ref();
    closure->cb.Reset(info[0].As<Function>());

    uv_work_t* req = new uv_work_t;
    req->data = closure;
    // Make sure the surface exists since we won't have an isolate context in the async block:
    canvas->surface();
    uv_queue_work(uv_default_loop(), req, ToPngBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter);

    return;
  }

Because my current code calls this function synchronously, if I use an asynchronous calling method, how can I call the asynchronous function to improve performance while ensuring that the buffer content is correct? so can you give me a example for how to call this function asynchronously?

rankun203 commented 2 years ago

@lixiaoqian521 to help others better help you, it might be a good idea to create an example project to reproduce the issue.

Take this example: https://github.com/Automattic/node-canvas/blob/master/examples/image-src-svg.js, it's less than 20 lines of code

Put your svg in, or create a equivalent complex svg and make sure to reproduce the issue.

MHillier98 commented 2 years ago

@lixiaoqian521 did you ever manage to fix this performance issue?

dtmrc commented 1 year ago

@lixiaoqian521 any updates?