Zhenghj 2 anni fa
commit
a6ac7583a7
91 ha cambiato i file con 18286 aggiunte e 0 eliminazioni
  1. 21 0
      代码/前端/asset-manifest.json
  2. BIN
      代码/前端/favicon.ico
  3. 0 0
      代码/前端/index.html
  4. 25 0
      代码/前端/manifest.json
  5. 42 0
      代码/前端/precache-manifest.964f25fddbf45ec835b64cadcad9a5e7.js
  6. 2 0
      代码/前端/robots.txt
  7. 39 0
      代码/前端/service-worker.js
  8. 0 0
      代码/前端/static/css/2.92fb19a7.chunk.css
  9. 0 0
      代码/前端/static/css/2.92fb19a7.chunk.css.map
  10. 2 0
      代码/前端/static/css/main.71337276.chunk.css
  11. 0 0
      代码/前端/static/css/main.71337276.chunk.css.map
  12. 0 0
      代码/前端/static/js/2.89e53597.chunk.js
  13. 0 0
      代码/前端/static/js/2.89e53597.chunk.js.map
  14. 0 0
      代码/前端/static/js/main.eadf6190.chunk.js
  15. 0 0
      代码/前端/static/js/main.eadf6190.chunk.js.map
  16. 2 0
      代码/前端/static/js/runtime~main.b7a724da.js
  17. 0 0
      代码/前端/static/js/runtime~main.b7a724da.js.map
  18. BIN
      代码/前端/static/media/logo.7e5c77c7.png
  19. BIN
      代码/前端/static/media/no1.32188988.png
  20. BIN
      代码/前端/static/media/no2.e13b7cbf.png
  21. BIN
      代码/前端/static/media/no3.b0293801.png
  22. 28 0
      代码/后端/.autod.conf.js
  23. 12 0
      代码/后端/.travis.yml
  24. 0 0
      代码/后端/app/controller/cloud.js
  25. 1 0
      代码/后端/app/controller/record.js
  26. 1 0
      代码/后端/app/controller/station.js
  27. 1 0
      代码/后端/app/middleware/auth.js
  28. 1 0
      代码/后端/app/router.js
  29. 1 0
      代码/后端/app/schedule/statisticMonth.js
  30. 1 0
      代码/后端/app/schedule/statisticYear.js
  31. 1 0
      代码/后端/app/service/admin.js
  32. 1 0
      代码/后端/app/service/cloud.js
  33. 0 0
      代码/后端/app/service/evaluation.js
  34. 0 0
      代码/后端/app/service/honor.js
  35. 1 0
      代码/后端/app/service/record.js
  36. 1 0
      代码/后端/app/service/server.js
  37. 1 0
      代码/后端/app/service/station.js
  38. 1 0
      代码/后端/app/service/statistic.js
  39. 1 0
      代码/后端/app/service/uploadHistory.js
  40. 1 0
      代码/后端/app/utils/normalize.js
  41. 1 0
      代码/后端/app/utils/responseCode.js
  42. 1 0
      代码/后端/app/utils/timeRange.js
  43. 1 0
      代码/后端/app/utils/validate.js
  44. 14 0
      代码/后端/appveyor.yml
  45. 25 0
      代码/后端/config/config.default.js
  46. 32 0
      代码/后端/config/config.default.ts
  47. 19 0
      代码/后端/config/config.local.js
  48. 18 0
      代码/后端/config/config.local.ts
  49. 29 0
      代码/后端/config/config.prod.js
  50. 28 0
      代码/后端/config/config.prod.ts
  51. 14 0
      代码/后端/config/plugin.js
  52. 14 0
      代码/后端/config/plugin.ts
  53. 60 0
      代码/后端/package.json
  54. 512 0
      代码/后端/run/agent_config.json
  55. 322 0
      代码/后端/run/agent_config_meta.json
  56. 410 0
      代码/后端/run/agent_timing_13140.json
  57. 559 0
      代码/后端/run/application_config.json
  58. 322 0
      代码/后端/run/application_config_meta.json
  59. 570 0
      代码/后端/run/application_timing_10376.json
  60. 570 0
      代码/后端/run/application_timing_10616.json
  61. 570 0
      代码/后端/run/application_timing_13084.json
  62. 570 0
      代码/后端/run/application_timing_13388.json
  63. 570 0
      代码/后端/run/application_timing_13420.json
  64. 570 0
      代码/后端/run/application_timing_14348.json
  65. 570 0
      代码/后端/run/application_timing_16468.json
  66. 570 0
      代码/后端/run/application_timing_17108.json
  67. 570 0
      代码/后端/run/application_timing_18108.json
  68. 570 0
      代码/后端/run/application_timing_19672.json
  69. 570 0
      代码/后端/run/application_timing_19716.json
  70. 570 0
      代码/后端/run/application_timing_19780.json
  71. 570 0
      代码/后端/run/application_timing_20484.json
  72. 570 0
      代码/后端/run/application_timing_22060.json
  73. 570 0
      代码/后端/run/application_timing_22896.json
  74. 570 0
      代码/后端/run/application_timing_23188.json
  75. 570 0
      代码/后端/run/application_timing_23276.json
  76. 570 0
      代码/后端/run/application_timing_24584.json
  77. 570 0
      代码/后端/run/application_timing_4432.json
  78. 570 0
      代码/后端/run/application_timing_5172.json
  79. 570 0
      代码/后端/run/application_timing_5376.json
  80. 570 0
      代码/后端/run/application_timing_6524.json
  81. 570 0
      代码/后端/run/application_timing_7388.json
  82. 570 0
      代码/后端/run/application_timing_8072.json
  83. 570 0
      代码/后端/run/application_timing_8304.json
  84. 570 0
      代码/后端/run/application_timing_8628.json
  85. 570 0
      代码/后端/run/application_timing_9148.json
  86. 190 0
      代码/后端/run/router.json
  87. 11 0
      代码/后端/test/app/controller/home.test.js
  88. 9 0
      代码/后端/test/app/controller/home.test.ts
  89. 15 0
      代码/后端/test/app/service/Test.test.js
  90. 16 0
      代码/后端/test/app/service/Test.test.ts
  91. 87 0
      数据库/evaluation.sql

+ 21 - 0
代码/前端/asset-manifest.json

@@ -0,0 +1,21 @@
+{
+  "files": {
+    "main.css": "/static/css/main.71337276.chunk.css",
+    "main.js": "/static/js/main.eadf6190.chunk.js",
+    "main.js.map": "/static/js/main.eadf6190.chunk.js.map",
+    "runtime~main.js": "/static/js/runtime~main.b7a724da.js",
+    "runtime~main.js.map": "/static/js/runtime~main.b7a724da.js.map",
+    "static/css/2.92fb19a7.chunk.css": "/static/css/2.92fb19a7.chunk.css",
+    "static/js/2.89e53597.chunk.js": "/static/js/2.89e53597.chunk.js",
+    "static/js/2.89e53597.chunk.js.map": "/static/js/2.89e53597.chunk.js.map",
+    "index.html": "/index.html",
+    "precache-manifest.964f25fddbf45ec835b64cadcad9a5e7.js": "/precache-manifest.964f25fddbf45ec835b64cadcad9a5e7.js",
+    "service-worker.js": "/service-worker.js",
+    "static/css/2.92fb19a7.chunk.css.map": "/static/css/2.92fb19a7.chunk.css.map",
+    "static/css/main.71337276.chunk.css.map": "/static/css/main.71337276.chunk.css.map",
+    "static/media/logo.png": "/static/media/logo.7e5c77c7.png",
+    "static/media/no1.png": "/static/media/no1.32188988.png",
+    "static/media/no2.png": "/static/media/no2.e13b7cbf.png",
+    "static/media/no3.png": "/static/media/no3.b0293801.png"
+  }
+}

BIN
代码/前端/favicon.ico


File diff suppressed because it is too large
+ 0 - 0
代码/前端/index.html


+ 25 - 0
代码/前端/manifest.json

@@ -0,0 +1,25 @@
+{
+  "short_name": "React App",
+  "name": "Create React App Sample",
+  "icons": [
+    {
+      "src": "favicon.ico",
+      "sizes": "64x64 32x32 24x24 16x16",
+      "type": "image/x-icon"
+    },
+    {
+      "src": "logo192.png",
+      "type": "image/png",
+      "sizes": "192x192"
+    },
+    {
+      "src": "logo512.png",
+      "type": "image/png",
+      "sizes": "512x512"
+    }	 
+  ],
+  "start_url": ".",
+  "display": "standalone",
+  "theme_color": "#000000",
+  "background_color": "#ffffff"
+}

+ 42 - 0
代码/前端/precache-manifest.964f25fddbf45ec835b64cadcad9a5e7.js

@@ -0,0 +1,42 @@
+self.__precacheManifest = (self.__precacheManifest || []).concat([
+  {
+    "revision": "17cff2adce90a93c30ea8409de12fea1",
+    "url": "/index.html"
+  },
+  {
+    "revision": "e6ac5a425fd0ac196183",
+    "url": "/static/css/2.92fb19a7.chunk.css"
+  },
+  {
+    "revision": "17e05dd561f27b1887bf",
+    "url": "/static/css/main.71337276.chunk.css"
+  },
+  {
+    "revision": "e6ac5a425fd0ac196183",
+    "url": "/static/js/2.89e53597.chunk.js"
+  },
+  {
+    "revision": "17e05dd561f27b1887bf",
+    "url": "/static/js/main.eadf6190.chunk.js"
+  },
+  {
+    "revision": "69607f8c9c83e2ea9fee",
+    "url": "/static/js/runtime~main.b7a724da.js"
+  },
+  {
+    "revision": "7e5c77c7dade20adcdcf496a702d8272",
+    "url": "/static/media/logo.7e5c77c7.png"
+  },
+  {
+    "revision": "3218898801a7905cf486e903e33245d0",
+    "url": "/static/media/no1.32188988.png"
+  },
+  {
+    "revision": "e13b7cbfae64210f22035097c45728dc",
+    "url": "/static/media/no2.e13b7cbf.png"
+  },
+  {
+    "revision": "b02938010cb617ebe8afec463f26277a",
+    "url": "/static/media/no3.b0293801.png"
+  }
+]);

+ 2 - 0
代码/前端/robots.txt

@@ -0,0 +1,2 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *

+ 39 - 0
代码/前端/service-worker.js

@@ -0,0 +1,39 @@
+/**
+ * Welcome to your Workbox-powered service worker!
+ *
+ * You'll need to register this file in your web app and you should
+ * disable HTTP caching for this file too.
+ * See https://goo.gl/nhQhGp
+ *
+ * The rest of the code is auto-generated. Please don't update this file
+ * directly; instead, make changes to your Workbox build configuration
+ * and re-run your build process.
+ * See https://goo.gl/2aRDsh
+ */
+
+importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
+
+importScripts(
+  "/precache-manifest.964f25fddbf45ec835b64cadcad9a5e7.js"
+);
+
+self.addEventListener('message', (event) => {
+  if (event.data && event.data.type === 'SKIP_WAITING') {
+    self.skipWaiting();
+  }
+});
+
+workbox.core.clientsClaim();
+
+/**
+ * The workboxSW.precacheAndRoute() method efficiently caches and responds to
+ * requests for URLs in the manifest.
+ * See https://goo.gl/S9QRab
+ */
+self.__precacheManifest = [].concat(self.__precacheManifest || []);
+workbox.precaching.precacheAndRoute(self.__precacheManifest, {});
+
+workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/index.html"), {
+  
+  blacklist: [/^\/_/,/\/[^\/?]+\.[^\/]+$/],
+});

File diff suppressed because it is too large
+ 0 - 0
代码/前端/static/css/2.92fb19a7.chunk.css


File diff suppressed because it is too large
+ 0 - 0
代码/前端/static/css/2.92fb19a7.chunk.css.map


+ 2 - 0
代码/前端/static/css/main.71337276.chunk.css

@@ -0,0 +1,2 @@
+body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-header{position:relative;z-index:2;padding:0 40px;background-color:#fff;box-shadow:0 5px 7px -7px rgba(0,0,0,.2)}.app-header .sys-name{margin-left:20px;font-size:24px;font-weight:300}.app-header .sys-logo{height:50px}.app-header .ant-avatar{cursor:default}.page-overview>.ant-row>.ant-col{margin-bottom:16px}.overview-card{padding:4px 10px}.overview-card-icon{padding:10px;border-radius:50%;font-size:40px}.page-overview .rank-1{width:4.5em}.page-overview .rank-2{width:4em}.page-overview .rank-3{width:3.5em}.page-overview .ant-list-item .ant-tag{margin-left:12px}.page-overview .ant-card-head{border-bottom:0}.page-rank{min-height:100%}.page-rank .panel-filter{margin-bottom:20px}.page-login .ant-form{margin:0 auto;padding:80px 0;width:300px}.page-login button{margin-top:20px;width:100%}body{font-family:Microsoft Yahei,arial,sans-serif}.page-content{padding:20px;overflow-y:auto;overflow-x:hidden}::-webkit-scrollbar-track-piece{background-color:transparent;border-radius:0}::-webkit-scrollbar{width:12px;height:10px}::-webkit-scrollbar-thumb:vertical{background-color:#ccc;border-radius:6px;border:2px solid #fff}::-webkit-scrollbar-thumb:hover{background-color:#9f9f9f}.app-sider{padding:20px 0}h1,h2,h3,h4,h5,h6{margin:0}.ant-menu-inline{border-right:0}
+/*# sourceMappingURL=main.71337276.chunk.css.map */

File diff suppressed because it is too large
+ 0 - 0
代码/前端/static/css/main.71337276.chunk.css.map


File diff suppressed because it is too large
+ 0 - 0
代码/前端/static/js/2.89e53597.chunk.js


File diff suppressed because it is too large
+ 0 - 0
代码/前端/static/js/2.89e53597.chunk.js.map


File diff suppressed because it is too large
+ 0 - 0
代码/前端/static/js/main.eadf6190.chunk.js


File diff suppressed because it is too large
+ 0 - 0
代码/前端/static/js/main.eadf6190.chunk.js.map


+ 2 - 0
代码/前端/static/js/runtime~main.b7a724da.js

@@ -0,0 +1,2 @@
+!function(e){function r(r){for(var n,l,a=r[0],i=r[1],f=r[2],p=0,s=[];p<a.length;p++)l=a[p],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(c&&c(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var i=t[a];0!==o[i]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var a=window.webpackJsonpcustomerevaluation=window.webpackJsonpcustomerevaluation||[],i=a.push.bind(a);a.push=r,a=a.slice();for(var f=0;f<a.length;f++)r(a[f]);var c=i;t()}([]);
+//# sourceMappingURL=runtime~main.b7a724da.js.map

File diff suppressed because it is too large
+ 0 - 0
代码/前端/static/js/runtime~main.b7a724da.js.map


BIN
代码/前端/static/media/logo.7e5c77c7.png


BIN
代码/前端/static/media/no1.32188988.png


BIN
代码/前端/static/media/no2.e13b7cbf.png


BIN
代码/前端/static/media/no3.b0293801.png


+ 28 - 0
代码/后端/.autod.conf.js

@@ -0,0 +1,28 @@
+'use strict';
+
+module.exports = {
+  write: true,
+  plugin: 'autod-egg',
+  prefix: '^',
+  devprefix: '^',
+  exclude: [
+    'test/fixtures',
+    'coverage',
+  ],
+  dep: [
+    'egg',
+    'egg-scripts',
+  ],
+  devdep: [
+    'autod',
+    'autod-egg',
+    'egg-bin',
+    'tslib',
+    'typescript',
+  ],
+  keep: [
+  ],
+  semver: [
+  ],
+  test: 'scripts',
+};

+ 12 - 0
代码/后端/.travis.yml

@@ -0,0 +1,12 @@
+sudo: false
+language: node_js
+node_js:
+  - '8'
+before_install:
+  - npm i npminstall -g
+install:
+  - npminstall
+script:
+  - npm run ci
+after_script:
+  - npminstall codecov && codecov

File diff suppressed because it is too large
+ 0 - 0
代码/后端/app/controller/cloud.js


+ 1 - 0
代码/后端/app/controller/record.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const egg_1=require("egg"),normalize_1=require("../utils/normalize"),responseCode_1=require("../utils/responseCode");class CloudController extends egg_1.Controller{async get(){const{ctx:d,service:a}=this,b=await a.record.get();d.response.body=normalize_1.NMLResponse(responseCode_1.ResponseCode.OK,b)}}exports.default=CloudController;

+ 1 - 0
代码/后端/app/controller/station.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const egg_1=require("egg"),validate_1=require("../utils/validate"),normalize_1=require("../utils/normalize"),responseCode_1=require("../utils/responseCode"),moment=require("moment");class StationController extends egg_1.Controller{async handleUpload(){const{ctx:m,service:a}=this;if(validate_1.validate(m,{stationId:{type:"string",required:!0,allowEmpty:!1,trim:!0,min:8,max:8},date:{type:"date",required:!0},excellent:{type:"number",required:!0,min:0},good:{type:"number",required:!0,min:0},ordinary:{type:"number",required:!0,min:0},bad:{type:"number",required:!0,min:0},abandoned:{type:"number",required:!0,min:0}})){const{stationId:b,date:c,excellent:d,good:e,ordinary:f,bad:g,abandoned:h}=m.request.body,i={excellent:d,good:e,ordinary:f,bad:g,abandoned:h},[j,k]=await Promise.all([a.station.isIdExisted(b),a.station.isStationEnable(b)]);if(j&&k){const d=await a.evaluation.selectSpecific(b,c),e=Array.isArray(d)&&0<d.length?await a.evaluation.update(b,c,i):await a.evaluation.add(b,c,i);e?(m.response.body=normalize_1.NMLResponse(responseCode_1.ResponseCode.OK),a.station.updateTime(b,moment().format("YYYY-MM-DD HH:mm:ss")),m.logger.info(`${m.ip} uploads: ${JSON.stringify(i)}`)):m.response.body=normalize_1.NMLResponse(responseCode_1.ResponseCode.UNKNOWN,null,"uncaught error occured when update.")}else m.response.body=normalize_1.NMLResponse(responseCode_1.ResponseCode.STATION_ILEGAL,null,"\u6CB9\u7AD9\u7F16\u7801\u4E0D\u6B63\u786E")}}}exports.default=StationController;

+ 1 - 0
代码/后端/app/middleware/auth.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const normalize_1=require("../utils/normalize"),responseCode_1=require("../utils/responseCode"),notAuthPath=["/evaservice/admin/login","/evaservice/upload","/station/upload"];async function auth(h,a){const{path:b,method:c}=h.request;if("POST"===c.toUpperCase()&&!notAuthPath.includes(b)){let i=!1;const c=h.cookies.get("token",{encrypt:!0}).split(".");if(Array.isArray(c)&&3===c.length){const[a,b,d]=c,e=parseInt(b,10);a===h.ip.replace(/\./g,"")&&3e5>=Date.now()-e&&d&&(i=!0)}i?await a():h.response.body=normalize_1.NMLResponse(responseCode_1.ResponseCode.AUTH_FAIL,null,"\u8EAB\u4EFD\u9A8C\u8BC1\u5931\u8D25\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55")}else await a()}exports.default=()=>auth;

+ 1 - 0
代码/后端/app/router.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const moment=require("moment");moment.defaultFormat="YYYY-MM-DD",exports.default=d=>{const{controller:a,router:b}=d;b.post("/evaservice/upload",a.station.handleUpload),b.post("/station/upload",a.station.handleUpload),b.get("/evaservice/overview",a.cloud.overview),b.get("/evaservice/statisticAll",a.cloud.statisticAll),b.get("/evaservice/statisticAllByTime",a.cloud.statisticAllByTime),b.get("/evaservice/rank",a.cloud.rank),b.post("/evaservice/admin/login",a.cloud.handleAdminLogin),b.get("/evaservice/admin/logout",a.cloud.handleAdminLogout),b.get("/evaservice/station/search",a.cloud.searchAllStation),b.get("/evaservice/station/evaluationInRange",a.cloud.evaluationInRange),b.post("/evaservice/station/add",a.cloud.handleStationAdd),b.post("/evaservice/station/modify",a.cloud.handleStationModify),b.post("/evaservice/station/disable",a.cloud.disableStation),b.post("/evaservice/station/enable",a.cloud.enableStation),b.get("/evaservice/record/get",a.record.get)};

+ 1 - 0
代码/后端/app/schedule/statisticMonth.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const egg_1=require("egg"),moment=require("moment");class StatisticMonth extends egg_1.Subscription{static get schedule(){return{cron:"0 4 1 * *",type:"worker",immediate:!1}}async subscribe(){const{ctx:j,ctx:{service:k}}=this,a=moment().subtract(1,"month").format("YYYY-MM"),b=moment().format("YYYY-MM"),c=await k.evaluation.selectRange(a,b);if(0===c.length)return;const l={};c.forEach(f=>{const{stationId:a,excellent:b,good:c,ordinary:d,bad:e,abandoned:g}=f;l[a]||(l[a]={stationId:a,excellent:0,good:0,ordinary:0,bad:0,abandoned:0,sumTrade:0,updateTime:0,score:0}),l[a].excellent+=b,l[a].good+=c,l[a].ordinary+=d,l[a].bad+=e,l[a].abandoned+=g,l[a].sumTrade+=b+c+d+e+g,l[a].updateTime+=1});const d=Object.values(l),e=d.reduce((c,a)=>c+a.sumTrade,0),f=e/d.length;d.forEach(b=>{b.score=k.evaluation.calculateScore(b,b.updateTime,f)}),k.statistic.add(d,a),k.honor.setMonthScoreHonor(d,a),k.honor.setMonthParticipationHonor(d,a),k.honor.setMonthSatisfiedRateHonor(d,a),j.logger.info(`Monthly statistic at ${moment().format("YYYY-MM-DD HH:mm:ss")}`,d)}}module.exports=StatisticMonth;

+ 1 - 0
代码/后端/app/schedule/statisticYear.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const egg_1=require("egg"),moment=require("moment");class StatisticYear extends egg_1.Subscription{static get schedule(){return{cron:"0 4 1 1 *",type:"worker",immediate:!1}}async subscribe(){const{ctx:j,ctx:{service:k}}=this,a=moment().subtract(1,"year").format("YYYY"),b=moment().format("YYYY"),c=await k.statistic.selectRange(a,b);if(0===c.length)return;const l={};c.forEach(f=>{const{stationId:a,excellent:b,good:c,ordinary:d,bad:e,abandoned:g,sum:h}=f;l[a]||(l[a]={stationId:a,excellent:0,good:0,ordinary:0,bad:0,abandoned:0,sumTrade:0,updateTime:0,score:0}),l[a].excellent+=b,l[a].good+=c,l[a].ordinary+=d,l[a].bad+=e,l[a].abandoned+=g,l[a].sumTrade+=h,l[a].updateTime+=1});const d=Object.values(l),e=d.reduce((c,a)=>c+a.sumTrade,0),f=e/d.length;d.forEach(b=>{b.score=30*k.evaluation.calculateScore(b,b.updateTime,f)}),k.honor.setYearScoreHonor(d,a),k.honor.setYearParticipationHonor(d,a),k.honor.setYearSatisfiedRateHonor(d,a),j.logger.info(`Annual statistic at ${moment().format("YYYY-MM-DD HH:mm:ss")}`,d)}}module.exports=StatisticYear;

+ 1 - 0
代码/后端/app/service/admin.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const egg_1=require("egg");class AdminService extends egg_1.Service{async isAdmin(e,a){const{app:b}=this,c=await b.mysql.query("SELECT * FROM admin WHERE name = ? AND password = ?",[e,a]);return Array.isArray(c)&&0<c.length}}exports.default=AdminService;

+ 1 - 0
代码/后端/app/service/cloud.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const egg_1=require("egg");class Test extends egg_1.Service{async sayHi(b){return`hi, ${b}`}}exports.default=Test;

File diff suppressed because it is too large
+ 0 - 0
代码/后端/app/service/evaluation.js


File diff suppressed because it is too large
+ 0 - 0
代码/后端/app/service/honor.js


+ 1 - 0
代码/后端/app/service/record.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const egg_1=require("egg"),moment=require("moment");class RecordService extends egg_1.Service{async add(g,a,b,c){const{mysql:d}=this.app,e=await d.query("INSERT INTO record (user, type, value, ip, time) VALUES (?, ?, ?, ?, ?)",[g,b,c,a,moment().format("YYYY-MM-DD HH:mm:ss")]);return 1===e.affectedRows}async get(){const{mysql:c}=this.app,a=await c.query("SELECT user, type, value, ip, time FROM record ORDER BY time DESC");return a}}exports.default=RecordService;

+ 1 - 0
代码/后端/app/service/server.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const egg_1=require("egg");class ServerService extends egg_1.Service{async honorStation(g,a,b,c){const{mysql:d}=this.app,e=await d.query("SELECT * FROM honor WHERE type = ? AND time_type = ? AND time_value = ?",[b,c,a]);if(Array.isArray(e)&&0<e.length){const e=await d.query("UPDATE honor SET station_id = ? WHERE type = ? AND time_type = ? AND time_value = ?",[g,b,c,a]);return Array.isArray(e)&&e.length&&1===e[0].affectedRows}else{const e=await d.query("INSERT INTO honor (station_id, type, time_type, time_value) VALUES (?, ?, ?, ?)",[g,b,c,a]);return Array.isArray(e)&&e.length}}}exports.default=ServerService;

+ 1 - 0
代码/后端/app/service/station.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const egg_1=require("egg"),moment=require("moment");class StionService extends egg_1.Service{async isIdExisted(d){const{app:a}=this,b=await a.mysql.query("SELECT * FROM station WHERE id = ?",[d]);return Array.isArray(b)&&0<b.length}async isStationEnable(d){const{app:a}=this,b=await a.mysql.query("SELECT * FROM station WHERE id = ? AND disable = 0",[d]);return Array.isArray(b)&&0<b.length}async getStationById(d){const{app:a}=this,b=await a.mysql.query("SELECT name AS stationName, last_update AS updateTime FROM station WHERE id = ?",[d]);return Array.isArray(b)&&0!==b.length?Object.assign({},b[0],{stationId:d}):null}async checkUpdated(h){const{mysql:a}=this.app,b=moment().subtract(h,"minute").format("YYYY-MM-DD HH:mm:ss"),[c,d]=await Promise.all([a.query("SELECT COUNT(*) AS sum FROM station WHERE disable = 0"),a.query("SELECT COUNT(*) AS alive FROM station WHERE disable = 0 AND active >= ?",[b])]),e=Array.isArray(c)&&0<c.length?c[0].sum:0,f=Array.isArray(d)&&0<d.length?d[0].alive:0;return[e,f]}async searchAll(f,a){const{mysql:g}=this.app;let c=`SELECT id, name, disable, active FROM station WHERE disable = ${a}`;if(f){const a=g.escape(`%${f}%`);c+=` AND ( name LIKE ${a} OR id LIKE ${a} )`}const b=await g.query(c);return b}async add(e,a){const{app:b}=this,c=await b.mysql.query("INSERT INTO station (id, name) VALUES (?, ?)",[a,e]);return 1===c.affectedRows}async updateName(e,a){const{app:b}=this,c=await b.mysql.query("UPDATE station SET name = ? WHERE id = ?",[a,e]);return 1===c.changedRows}async updateTime(d,a){const{app:b}=this;b.mysql.query("UPDATE station SET active = ? WHERE id = ?",[a,d])}async disable(d){const{mysql:a}=this.app,b=await a.query("UPDATE station SET disable = ? WHERE id = ?",[1,d]);return b}async enable(d){const{mysql:a}=this.app,b=await a.query("UPDATE station SET disable = ? WHERE id = ?",[0,d]);return b}}exports.default=StionService;

+ 1 - 0
代码/后端/app/service/statistic.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const egg_1=require("egg");class StatisticService extends egg_1.Service{async add(h,l){const{mysql:a}=this.app,b=["station_id","excellent","good","ordinary","bad","abandoned","sum","score","month","update_day"],c=Array(b.length).fill("?").join(", "),d=Array(h.length).fill(`(${c})`).join(", "),e=`INSERT INTO statistic (${b.join(", ")}) VALUES `+d;a.query(e,h.reduce((b,{stationId:a,excellent:c,good:d,ordinary:e,bad:f,abandoned:g,sumTrade:h,score:i,updateTime:j})=>b.concat(a,c,d,e,f,g,h,i,l,j),[]))}async selectRange(e,a){const{mysql:b}=this.app,c=await b.query("SELECT station_id AS stationId, excellent, good, ordinary, bad, abandoned, sum FROM statistic WHERE month >= ? AND month <= ?",[e,a]);return c}}exports.default=StatisticService;

+ 1 - 0
代码/后端/app/service/uploadHistory.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const egg_1=require("egg");class UploadHistoryService extends egg_1.Service{async selectRange(e,a){const{app:b}=this,c=await b.mysql.query("SELECT upload_history.station AS stationId, ip, data, time, station.name AS stationName FROM upload_history, station WHERE upload_history.station = station.id ORDER BY upload_history.id DESC LIMIT ?, ?",[a,e]);return c}async selectBasicInRange(e,a){const{app:b}=this,c=await b.mysql.query("SELECT upload_history.station AS stationId, time, station.name AS stationName FROM upload_history, station WHERE upload_history.station = station.id ORDER BY upload_history.id DESC LIMIT ?, ?",[a,e]);return c}async add(f,a,b,c){const{app:d}=this;d.mysql.query("INSERT INTO upload_history (station, ip, data, time) VALUES (?, ?, ?, ?)",[f,a,b,c])}}exports.default=UploadHistoryService;

+ 1 - 0
代码/后端/app/utils/normalize.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const responseCode_1=require("./responseCode");function NMLResponse(d,a=null,b=""){return{code:d,message:b,data:a,success:d===responseCode_1.ResponseCode.OK}}exports.NMLResponse=NMLResponse;

+ 1 - 0
代码/后端/app/utils/responseCode.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var ResponseCode;(function(b){b[b.OK=0]="OK",b[b.FAIL=-1]="FAIL",b[b.PARAM_ERROR=1]="PARAM_ERROR",b[b.STATION_ILEGAL=2]="STATION_ILEGAL",b[b.STATION_REPEAT=3]="STATION_REPEAT",b[b.AUTH_FAIL=21]="AUTH_FAIL",b[b.UNKNOWN=99]="UNKNOWN"})(ResponseCode=exports.ResponseCode||(exports.ResponseCode={}));

+ 1 - 0
代码/后端/app/utils/timeRange.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const timeRangeMapDays={day:1,week:7,month:30,year:365};function getDaysByTimeRange(b){return timeRangeMapDays[b]}exports.getDaysByTimeRange=getDaysByTimeRange;function getRangeByParam(c,a){return c&&a.includes(c)?c:a[0]||"week"}exports.getRangeByParam=getRangeByParam;

+ 1 - 0
代码/后端/app/utils/validate.js

@@ -0,0 +1 @@
+"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const normalize_1=require("./normalize"),responseCode_1=require("./responseCode");function validate(d,a,b=!1){try{b?d.validate(a,d.request.query):d.validate(a)}catch(a){console.error(a);const b=a.errors&&Array.isArray(a.errors)&&a.errors.length?a.errors.map(b=>`${b.message} ${b.field} ${b.code}`).join(", "):"param validation failed";return d.response.body=normalize_1.NMLResponse(responseCode_1.ResponseCode.PARAM_ERROR,null,b),!1}return!0}exports.validate=validate;

+ 14 - 0
代码/后端/appveyor.yml

@@ -0,0 +1,14 @@
+environment:
+  matrix:
+    - nodejs_version: '8'
+
+install:
+  - ps: Install-Product node $env:nodejs_version
+  - npm i npminstall && node_modules\.bin\npminstall
+
+test_script:
+  - node --version
+  - npm --version
+  - npm run test
+
+build: off

+ 25 - 0
代码/后端/config/config.default.js

@@ -0,0 +1,25 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = (appInfo) => {
+    const config = {};
+    // override config from framework / plugin
+    // use for cookie sign key, should change to your own and keep security
+    config.keys = appInfo.name + '_1566957124398_592';
+    // add your egg config in here
+    config.middleware = ['auth'];
+    // add your special config in here
+    const bizConfig = {
+        sourceUrl: `https://github.com/eggjs/examples/tree/master/${appInfo.name}`,
+    };
+    // the return config will combines to EggAppConfig
+    return Object.assign({}, config, bizConfig, { 
+        // close csrf check
+        security: {
+            csrf: {
+                enable: false,
+            },
+        }, app: {
+            checkUpdateInterval: 6,
+        } });
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb25maWcuZGVmYXVsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGtCQUFlLENBQUMsT0FBbUIsRUFBRSxFQUFFO0lBQ3JDLE1BQU0sTUFBTSxHQUFHLEVBQWdDLENBQUM7SUFFaEQsMENBQTBDO0lBQzFDLHVFQUF1RTtJQUN2RSxNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUM7SUFFbEQsOEJBQThCO0lBQzlCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsQ0FBRSxNQUFNLENBQUUsQ0FBQztJQUUvQixrQ0FBa0M7SUFDbEMsTUFBTSxTQUFTLEdBQUc7UUFDaEIsU0FBUyxFQUFFLGlEQUFpRCxPQUFPLENBQUMsSUFBSSxFQUFFO0tBQzNFLENBQUM7SUFFRixrREFBa0Q7SUFDbEQseUJBQ0ssTUFBTSxFQUNOLFNBQVM7UUFDWixtQkFBbUI7UUFDbkIsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxLQUFLO2FBQ2Q7U0FDRixFQUNELEdBQUcsRUFBRTtZQUNILG1CQUFtQixFQUFFLENBQUM7U0FDdkIsSUFDRDtBQUNKLENBQUMsQ0FBQyJ9

+ 32 - 0
代码/后端/config/config.default.ts

@@ -0,0 +1,32 @@
+import { EggAppConfig, EggAppInfo, PowerPartial } from 'egg';
+
+export default (appInfo: EggAppInfo) => {
+  const config = {} as PowerPartial<EggAppConfig>;
+
+  // override config from framework / plugin
+  // use for cookie sign key, should change to your own and keep security
+  config.keys = appInfo.name + '_1566957124398_592';
+
+  // add your egg config in here
+  config.middleware = [ 'auth' ];
+
+  // add your special config in here
+  const bizConfig = {
+    sourceUrl: `https://github.com/eggjs/examples/tree/master/${appInfo.name}`,
+  };
+
+  // the return config will combines to EggAppConfig
+  return {
+    ...config,
+    ...bizConfig,
+    // close csrf check
+    security: {
+      csrf: {
+        enable: false,
+      },
+    },
+    app: {
+      checkUpdateInterval: 6,  // minute
+    },
+  };
+};

+ 19 - 0
代码/后端/config/config.local.js

@@ -0,0 +1,19 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = () => {
+    const config = {
+        mysql: {
+            client: {
+                host: 'localhost',
+                port: '3306',
+                user: 'tanjiawei',
+                password: '123456',
+                database: 'evaluation',
+            },
+            app: true,
+            agent: true,
+        },
+    };
+    return config;
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmxvY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uZmlnLmxvY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsa0JBQWUsR0FBRyxFQUFFO0lBQ2xCLE1BQU0sTUFBTSxHQUErQjtRQUN6QyxLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxXQUFXO2dCQUNqQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsUUFBUSxFQUFFLFlBQVk7YUFDdkI7WUFDRCxHQUFHLEVBQUUsSUFBSTtZQUNULEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDIn0=

+ 18 - 0
代码/后端/config/config.local.ts

@@ -0,0 +1,18 @@
+import { EggAppConfig, PowerPartial } from 'egg';
+
+export default () => {
+  const config: PowerPartial<EggAppConfig> = {
+    mysql: {
+      client: {
+        host: 'localhost',
+        port: '3306',
+        user: 'tanjiawei',
+        password: '123456',
+        database: 'evaluation',
+      },
+      app: true,
+      agent: true,
+    },
+  };
+  return config;
+};

+ 29 - 0
代码/后端/config/config.prod.js

@@ -0,0 +1,29 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.default = () => {
+    const config = {
+        // static
+        static: {
+            prefix: '',
+            gzip: true,
+            alias: {
+                '/': '',
+                'index.html': '',
+                index: '',
+            },
+        },
+        mysql: {
+            client: {
+                host: 'localhost',
+                port: '3306',
+                user: 'tanjiawei',
+                password: '123456',
+                database: 'evaluation',
+            },
+            app: true,
+            agent: true,
+        },
+    };
+    return config;
+};
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnByb2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb25maWcucHJvZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGtCQUFlLEdBQUcsRUFBRTtJQUNsQixNQUFNLE1BQU0sR0FBK0I7UUFDekMsU0FBUztRQUNULE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSxFQUFFO1lBQ1YsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUU7Z0JBQ0wsR0FBRyxFQUFFLEVBQUU7Z0JBQ1AsWUFBWSxFQUFFLEVBQUU7Z0JBQ2hCLEtBQUssRUFBRSxFQUFFO2FBQ1Y7U0FDRjtRQUNELEtBQUssRUFBRTtZQUNMLE1BQU0sRUFBRTtnQkFDTixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixRQUFRLEVBQUUsWUFBWTthQUN2QjtZQUNELEdBQUcsRUFBRSxJQUFJO1lBQ1QsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUMifQ==

+ 28 - 0
代码/后端/config/config.prod.ts

@@ -0,0 +1,28 @@
+import { EggAppConfig, PowerPartial } from 'egg';
+
+export default () => {
+  const config: PowerPartial<EggAppConfig> = {
+    // static
+    static: {
+      prefix: '',
+      gzip: true,
+      alias: {
+        '/': '',
+        'index.html': '',
+        index: '',
+      },
+    },
+    mysql: {
+      client: {
+        host: 'localhost',
+        port: '3306',
+        user: 'tanjiawei',
+        password: '123456',
+        database: 'evaluation',
+      },
+      app: true,
+      agent: true,
+    },
+  };
+  return config;
+};

+ 14 - 0
代码/后端/config/plugin.js

@@ -0,0 +1,14 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const plugin = {
+    mysql: {
+        enable: true,
+        package: 'egg-mysql',
+    },
+    validate: {
+        enable: true,
+        package: 'egg-validate',
+    },
+};
+exports.default = plugin;
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsTUFBTSxNQUFNLEdBQWM7SUFDeEIsS0FBSyxFQUFFO1FBQ0wsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPLEVBQUUsV0FBVztLQUNyQjtJQUNELFFBQVEsRUFBRztRQUNULE1BQU0sRUFBRSxJQUFJO1FBQ1osT0FBTyxFQUFFLGNBQWM7S0FDeEI7Q0FDRixDQUFDO0FBRUYsa0JBQWUsTUFBTSxDQUFDIn0=

+ 14 - 0
代码/后端/config/plugin.ts

@@ -0,0 +1,14 @@
+import { EggPlugin } from 'egg';
+
+const plugin: EggPlugin = {
+  mysql: {
+    enable: true,
+    package: 'egg-mysql',
+  },
+  validate : {
+    enable: true,
+    package: 'egg-validate',
+  },
+};
+
+export default plugin;

+ 60 - 0
代码/后端/package.json

@@ -0,0 +1,60 @@
+{
+  "name": "server",
+  "version": "1.0.0",
+  "description": "",
+  "private": true,
+  "egg": {
+    "typescript": true,
+    "declarations": true
+  },
+  "scripts": {
+    "start": "egg-scripts start --daemon --title=egg-server-server",
+    "stop": "egg-scripts stop --title=egg-server-server",
+    "dev": "egg-bin dev",
+    "debug": "egg-bin debug",
+    "test-local": "egg-bin test",
+    "test": "npm run lint -- --fix && npm run test-local",
+    "cov": "egg-bin cov",
+    "tsc": "ets && tsc -p tsconfig.json",
+    "ci": "npm run lint && npm run cov && npm run tsc",
+    "autod": "autod",
+    "lint": "tslint --project . -c tslint.json",
+    "clean": "ets clean"
+  },
+  "dependencies": {
+    "egg": "^2.6.1",
+    "egg-mysql": "^3.0.0",
+    "egg-scripts": "^2.6.0",
+    "egg-validate": "^2.0.2",
+    "moment": "^2.24.0"
+  },
+  "devDependencies": {
+    "@types/mocha": "^2.2.40",
+    "@types/node": "^7.0.12",
+    "@types/supertest": "^2.0.0",
+    "autod": "^3.0.1",
+    "autod-egg": "^1.1.0",
+    "egg-bin": "^4.11.0",
+    "egg-ci": "^1.8.0",
+    "egg-mock": "^3.16.0",
+    "tslib": "^1.9.0",
+    "tslint": "^5.0.0",
+    "tslint-config-egg": "^1.0.0",
+    "typescript": "^3.0.0"
+  },
+  "engines": {
+    "node": ">=8.9.0"
+  },
+  "ci": {
+    "version": "8"
+  },
+  "repository": {
+    "type": "git",
+    "url": ""
+  },
+  "eslintIgnore": [
+    "coverage"
+  ],
+  "author": "",
+  "license": "MIT"
+}

+ 512 - 0
代码/后端/run/agent_config.json

@@ -0,0 +1,512 @@
+{
+  "config": {
+    "session": {
+      "maxAge": 86400000,
+      "key": "EGG_SESS",
+      "httpOnly": true,
+      "encrypt": true
+    },
+    "security": {
+      "domainWhiteList": [],
+      "protocolWhiteList": [],
+      "defaultMiddleware": "csrf,hsts,methodnoallow,noopen,nosniff,csp,xssProtection,xframe,dta",
+      "csrf": {
+        "enable": false,
+        "type": "ctoken",
+        "ignoreJSON": false,
+        "useSession": false,
+        "cookieName": "csrfToken",
+        "sessionName": "csrfToken",
+        "headerName": "x-csrf-token",
+        "bodyName": "_csrf",
+        "queryName": "_csrf",
+        "refererWhiteList": []
+      },
+      "xframe": {
+        "enable": true,
+        "value": "SAMEORIGIN"
+      },
+      "hsts": {
+        "enable": false,
+        "maxAge": 31536000,
+        "includeSubdomains": false
+      },
+      "dta": {
+        "enable": true
+      },
+      "methodnoallow": {
+        "enable": true
+      },
+      "noopen": {
+        "enable": true
+      },
+      "nosniff": {
+        "enable": true
+      },
+      "referrerPolicy": {
+        "enable": false,
+        "value": "no-referrer-when-downgrade"
+      },
+      "xssProtection": {
+        "enable": true,
+        "value": "1; mode=block"
+      },
+      "csp": {
+        "enable": false,
+        "policy": {}
+      },
+      "ssrf": {
+        "ipBlackList": null,
+        "checkAddress": null
+      },
+      "_protocolWhiteListSet": "<Set>"
+    },
+    "helper": {
+      "shtml": {}
+    },
+    "jsonp": {
+      "limit": 50,
+      "callback": [
+        "_callback",
+        "callback"
+      ],
+      "csrf": false
+    },
+    "onerror": {
+      "errorPageUrl": "",
+      "appErrorFilter": null,
+      "templatePath": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-onerror\\lib\\onerror_page.mustache"
+    },
+    "i18n": {
+      "defaultLocale": "en_US",
+      "dirs": [],
+      "queryField": "locale",
+      "cookieField": "locale",
+      "cookieDomain": "",
+      "cookieMaxAge": "1y"
+    },
+    "watcher": {
+      "type": "development",
+      "eventSources": {
+        "default": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher\\lib\\event-sources\\default",
+        "development": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher\\lib\\event-sources\\development"
+      }
+    },
+    "customLogger": {
+      "scheduleLogger": {
+        "consoleLevel": "NONE",
+        "file": "egg-schedule.log"
+      }
+    },
+    "schedule": {
+      "directory": []
+    },
+    "multipart": {
+      "mode": "stream",
+      "autoFields": false,
+      "defaultCharset": "utf8",
+      "fieldNameSize": 100,
+      "fieldSize": "100kb",
+      "fields": 10,
+      "fileSize": "10mb",
+      "files": 10,
+      "fileExtensions": [],
+      "whitelist": null,
+      "tmpdir": "C:\\Users\\11017950\\AppData\\Local\\Temp\\egg-multipart-tmp\\server",
+      "cleanSchedule": {
+        "cron": "0 30 4 * * *"
+      }
+    },
+    "development": {
+      "watchDirs": [],
+      "ignoreDirs": [],
+      "fastReady": false,
+      "reloadOnDebug": true,
+      "overrideDefault": false
+    },
+    "logrotator": {
+      "filesRotateByHour": null,
+      "hourDelimiter": "-",
+      "filesRotateBySize": null,
+      "maxFileSize": 52428800,
+      "maxFiles": 10,
+      "rotateDuration": 60000,
+      "maxDays": 31
+    },
+    "static": {
+      "prefix": "/public/",
+      "dir": "C:\\robin\\company\\code\\customerevaluation\\server\\app\\public",
+      "dynamic": true,
+      "preload": false,
+      "buffer": false,
+      "maxFiles": 1000
+    },
+    "view": {
+      "root": "C:\\robin\\company\\code\\customerevaluation\\server\\app\\view",
+      "cache": false,
+      "defaultExtension": ".html",
+      "defaultViewEngine": "",
+      "mapping": {}
+    },
+    "mysql": {
+      "default": {
+        "database": null,
+        "connectionLimit": 5
+      },
+      "app": true,
+      "agent": true,
+      "client": {
+        "host": "localhost",
+        "port": "3306",
+        "user": "tanjiawei",
+        "password": "<String len: 6>",
+        "database": "evaluation"
+      }
+    },
+    "validate": {},
+    "env": "local",
+    "name": "server",
+    "keys": "<String len: 24>",
+    "proxy": false,
+    "maxProxyCount": 0,
+    "protocolHeaders": "x-forwarded-proto",
+    "ipHeaders": "x-forwarded-for",
+    "hostHeaders": "",
+    "pkg": {
+      "name": "server",
+      "version": "1.0.0",
+      "description": "",
+      "private": true,
+      "egg": {
+        "typescript": true,
+        "declarations": true
+      },
+      "scripts": {
+        "start": "egg-scripts start --daemon --title=egg-server-server",
+        "stop": "egg-scripts stop --title=egg-server-server",
+        "dev": "egg-bin dev",
+        "debug": "egg-bin debug",
+        "test-local": "egg-bin test",
+        "test": "npm run lint -- --fix && npm run test-local",
+        "cov": "egg-bin cov",
+        "tsc": "ets && tsc -p tsconfig.json",
+        "ci": "npm run lint && npm run cov && npm run tsc",
+        "autod": "autod",
+        "lint": "tslint --project . -c tslint.json",
+        "clean": "ets clean"
+      },
+      "dependencies": {
+        "egg": "^2.6.1",
+        "egg-mysql": "^3.0.0",
+        "egg-scripts": "^2.6.0",
+        "egg-validate": "^2.0.2",
+        "moment": "^2.24.0"
+      },
+      "devDependencies": {
+        "@types/mocha": "^2.2.40",
+        "@types/node": "^7.0.12",
+        "@types/supertest": "^2.0.0",
+        "autod": "^3.0.1",
+        "autod-egg": "^1.1.0",
+        "egg-bin": "^4.11.0",
+        "egg-ci": "^1.8.0",
+        "egg-mock": "^3.16.0",
+        "tslib": "^1.9.0",
+        "tslint": "^5.0.0",
+        "tslint-config-egg": "^1.0.0",
+        "typescript": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8.9.0"
+      },
+      "ci": {
+        "version": "8"
+      },
+      "repository": {
+        "type": "git",
+        "url": ""
+      },
+      "eslintIgnore": [
+        "coverage"
+      ],
+      "author": "",
+      "license": "MIT"
+    },
+    "baseDir": "C:\\robin\\company\\code\\customerevaluation\\server",
+    "HOME": "C:\\Users\\11017950",
+    "rundir": "C:\\robin\\company\\code\\customerevaluation\\server\\run",
+    "dump": {
+      "ignore": "<Set>"
+    },
+    "confusedConfigurations": {
+      "bodyparser": "bodyParser",
+      "notFound": "notfound",
+      "sitefile": "siteFile",
+      "middlewares": "middleware",
+      "httpClient": "httpclient"
+    },
+    "notfound": {
+      "pageUrl": ""
+    },
+    "siteFile": {
+      "/favicon.ico": "<Buffer len: 6463>"
+    },
+    "bodyParser": {
+      "enable": true,
+      "encoding": "utf8",
+      "formLimit": "100kb",
+      "jsonLimit": "100kb",
+      "strict": true,
+      "queryString": {
+        "arrayLimit": 100,
+        "depth": 5,
+        "parameterLimit": 1000
+      },
+      "onerror": "<Function onerror>"
+    },
+    "logger": {
+      "dir": "C:\\robin\\company\\code\\customerevaluation\\server\\logs\\server",
+      "encoding": "utf8",
+      "env": "local",
+      "level": "INFO",
+      "consoleLevel": "INFO",
+      "disableConsoleAfterReady": false,
+      "outputJSON": false,
+      "buffer": true,
+      "appLogName": "server-web.log",
+      "coreLogName": "egg-web.log",
+      "agentLogName": "egg-agent.log",
+      "errorLogName": "common-error.log",
+      "coreLogger": {
+        "consoleLevel": "WARN"
+      },
+      "allowDebugAtProd": false,
+      "type": "agent"
+    },
+    "httpclient": {
+      "enableDNSCache": false,
+      "dnsCacheLookupInterval": 10000,
+      "dnsCacheMaxLength": 1000,
+      "request": {
+        "timeout": 5000
+      },
+      "httpAgent": {
+        "keepAlive": true,
+        "freeSocketTimeout": 4000,
+        "maxSockets": 9007199254740991,
+        "maxFreeSockets": 256
+      },
+      "httpsAgent": {
+        "keepAlive": true,
+        "freeSocketTimeout": 4000,
+        "maxSockets": 9007199254740991,
+        "maxFreeSockets": 256
+      }
+    },
+    "meta": {
+      "enable": true,
+      "logging": false
+    },
+    "coreMiddleware": [
+      "meta",
+      "siteFile",
+      "notfound",
+      "bodyParser",
+      "overrideMethod"
+    ],
+    "workerStartTimeout": 600000,
+    "serverTimeout": null,
+    "cluster": {
+      "listen": {
+        "path": "",
+        "port": 7001,
+        "hostname": ""
+      }
+    },
+    "clusterClient": {
+      "maxWaitTime": 60000,
+      "responseTimeout": 60000
+    },
+    "onClientError": null,
+    "middleware": [
+      "auth"
+    ],
+    "sourceUrl": "https://github.com/eggjs/examples/tree/master/server",
+    "app": {
+      "checkUpdateInterval": 6
+    },
+    "coreMiddlewares": "~config~coreMiddleware",
+    "appMiddlewares": "~config~middleware",
+    "appMiddleware": "~config~middleware"
+  },
+  "plugins": {
+    "session": {
+      "enable": true,
+      "package": "egg-session",
+      "name": "session",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-session",
+      "version": "3.1.0"
+    },
+    "security": {
+      "enable": true,
+      "package": "egg-security",
+      "name": "security",
+      "dependencies": [],
+      "optionalDependencies": [
+        "session"
+      ],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security",
+      "version": "2.6.1"
+    },
+    "jsonp": {
+      "enable": true,
+      "package": "egg-jsonp",
+      "name": "jsonp",
+      "dependencies": [],
+      "optionalDependencies": [
+        "security"
+      ],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-jsonp",
+      "version": "2.0.0"
+    },
+    "onerror": {
+      "enable": true,
+      "package": "egg-onerror",
+      "name": "onerror",
+      "dependencies": [],
+      "optionalDependencies": [
+        "jsonp"
+      ],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-onerror",
+      "version": "2.1.0"
+    },
+    "i18n": {
+      "enable": true,
+      "package": "egg-i18n",
+      "name": "i18n",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n",
+      "version": "2.1.1"
+    },
+    "watcher": {
+      "enable": true,
+      "package": "egg-watcher",
+      "name": "watcher",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher",
+      "version": "3.1.0"
+    },
+    "schedule": {
+      "enable": true,
+      "package": "egg-schedule",
+      "name": "schedule",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-schedule",
+      "version": "3.6.4"
+    },
+    "multipart": {
+      "enable": true,
+      "package": "egg-multipart",
+      "name": "multipart",
+      "dependencies": [],
+      "optionalDependencies": [
+        "schedule"
+      ],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart",
+      "version": "2.9.0"
+    },
+    "development": {
+      "enable": true,
+      "package": "egg-development",
+      "name": "development",
+      "dependencies": [
+        "watcher"
+      ],
+      "optionalDependencies": [],
+      "env": [
+        "local"
+      ],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development",
+      "version": "2.4.3"
+    },
+    "logrotator": {
+      "enable": true,
+      "package": "egg-logrotator",
+      "name": "logrotator",
+      "dependencies": [
+        "schedule"
+      ],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator",
+      "version": "3.1.0"
+    },
+    "static": {
+      "enable": true,
+      "package": "egg-static",
+      "name": "static",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static",
+      "version": "2.2.0"
+    },
+    "view": {
+      "enable": true,
+      "package": "egg-view",
+      "name": "view",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view",
+      "version": "2.1.2"
+    },
+    "mysql": {
+      "enable": true,
+      "package": "egg-mysql",
+      "name": "mysql",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\plugin.ts",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-mysql",
+      "version": "3.0.0"
+    },
+    "validate": {
+      "enable": true,
+      "package": "egg-validate",
+      "name": "validate",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\plugin.ts",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-validate",
+      "version": "2.0.2"
+    }
+  }
+}

+ 322 - 0
代码/后端/run/agent_config_meta.json

@@ -0,0 +1,322 @@
+{
+  "keys": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.default.ts",
+  "middleware": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.default.ts",
+  "sourceUrl": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.default.ts",
+  "security": {
+    "csrf": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.default.ts",
+      "type": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "ignoreJSON": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "useSession": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "cookieName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "sessionName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "headerName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "bodyName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "queryName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "refererWhiteList": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "domainWhiteList": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+    "protocolWhiteList": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+    "defaultMiddleware": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+    "xframe": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "hsts": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.local.js",
+      "maxAge": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "includeSubdomains": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "dta": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "methodnoallow": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "noopen": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "nosniff": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "referrerPolicy": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "xssProtection": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "csp": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "policy": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "ssrf": {
+      "ipBlackList": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "checkAddress": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    }
+  },
+  "app": {
+    "checkUpdateInterval": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.default.ts"
+  },
+  "mysql": {
+    "client": {
+      "host": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+      "port": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+      "user": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+      "password": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+      "database": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts"
+    },
+    "app": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+    "agent": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+    "default": {
+      "database": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-mysql\\config\\config.default.js",
+      "connectionLimit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-mysql\\config\\config.default.js"
+    }
+  },
+  "session": {
+    "maxAge": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-session\\config\\config.default.js",
+    "key": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-session\\config\\config.default.js",
+    "httpOnly": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-session\\config\\config.default.js",
+    "encrypt": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-session\\config\\config.default.js"
+  },
+  "helper": {
+    "shtml": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+  },
+  "jsonp": {
+    "limit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-jsonp\\config\\config.default.js",
+    "callback": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-jsonp\\config\\config.default.js",
+    "csrf": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-jsonp\\config\\config.default.js"
+  },
+  "onerror": {
+    "errorPageUrl": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-onerror\\config\\config.default.js",
+    "appErrorFilter": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-onerror\\config\\config.default.js",
+    "templatePath": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-onerror\\config\\config.default.js"
+  },
+  "i18n": {
+    "defaultLocale": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js",
+    "dirs": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js",
+    "queryField": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieField": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieDomain": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieMaxAge": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js"
+  },
+  "watcher": {
+    "type": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher\\config\\config.local.js",
+    "eventSources": {
+      "default": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher\\config\\config.default.js",
+      "development": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher\\config\\config.default.js"
+    }
+  },
+  "customLogger": {
+    "scheduleLogger": {
+      "consoleLevel": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-schedule\\config\\config.default.js",
+      "file": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-schedule\\config\\config.default.js"
+    }
+  },
+  "schedule": {
+    "directory": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-schedule\\config\\config.default.js"
+  },
+  "multipart": {
+    "mode": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "autoFields": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "defaultCharset": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fieldNameSize": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fieldSize": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fields": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fileSize": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "files": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fileExtensions": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "whitelist": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "tmpdir": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "cleanSchedule": {
+      "cron": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js"
+    }
+  },
+  "development": {
+    "watchDirs": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development\\config\\config.default.js",
+    "ignoreDirs": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development\\config\\config.default.js",
+    "fastReady": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development\\config\\config.default.js",
+    "reloadOnDebug": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development\\config\\config.default.js",
+    "overrideDefault": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development\\config\\config.default.js"
+  },
+  "logrotator": {
+    "filesRotateByHour": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "hourDelimiter": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "filesRotateBySize": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxFileSize": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxFiles": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "rotateDuration": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxDays": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js"
+  },
+  "static": {
+    "prefix": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js",
+    "dir": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js",
+    "dynamic": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js",
+    "preload": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js",
+    "buffer": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js",
+    "maxFiles": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js"
+  },
+  "view": {
+    "root": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view\\config\\config.default.js",
+    "cache": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view\\config\\config.local.js",
+    "defaultExtension": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view\\config\\config.default.js",
+    "defaultViewEngine": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view\\config\\config.default.js",
+    "mapping": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view\\config\\config.default.js"
+  },
+  "validate": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-validate\\config\\config.default.js",
+  "env": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "name": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "proxy": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "maxProxyCount": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "protocolHeaders": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "ipHeaders": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "hostHeaders": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "pkg": {
+    "name": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "version": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "description": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "private": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "egg": {
+      "typescript": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "declarations": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "scripts": {
+      "start": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "stop": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "dev": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "debug": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "test-local": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "test": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "cov": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "tsc": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "ci": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "autod": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "lint": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "clean": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "dependencies": {
+      "egg": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-mysql": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-scripts": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-validate": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "moment": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "devDependencies": {
+      "@types/mocha": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "@types/node": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "@types/supertest": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "autod": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "autod-egg": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-bin": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-ci": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-mock": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "tslib": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "tslint": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "tslint-config-egg": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "typescript": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "engines": {
+      "node": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "ci": {
+      "version": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "repository": {
+      "type": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "url": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "eslintIgnore": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "author": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "license": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "baseDir": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "HOME": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "rundir": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "dump": {
+    "ignore": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "confusedConfigurations": {
+    "bodyparser": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "notFound": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "sitefile": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "middlewares": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "httpClient": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "notfound": {
+    "pageUrl": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "siteFile": {
+    "/favicon.ico": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "bodyParser": {
+    "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "encoding": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "formLimit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "jsonLimit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "strict": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "queryString": {
+      "arrayLimit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "depth": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "parameterLimit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "onerror": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "logger": {
+    "dir": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "encoding": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "env": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "level": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "consoleLevel": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "disableConsoleAfterReady": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "outputJSON": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "buffer": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "appLogName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "coreLogName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "agentLogName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "errorLogName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "coreLogger": {
+      "consoleLevel": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.local.js"
+    },
+    "allowDebugAtProd": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "httpclient": {
+    "enableDNSCache": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "dnsCacheLookupInterval": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "dnsCacheMaxLength": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "request": {
+      "timeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "httpAgent": {
+      "keepAlive": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "freeSocketTimeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "maxSockets": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "maxFreeSockets": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "httpsAgent": {
+      "keepAlive": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "freeSocketTimeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "maxSockets": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "maxFreeSockets": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    }
+  },
+  "meta": {
+    "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "logging": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "coreMiddleware": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "workerStartTimeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "serverTimeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "cluster": {
+    "listen": {
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "port": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "hostname": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    }
+  },
+  "clusterClient": {
+    "maxWaitTime": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "responseTimeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "onClientError": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+}

+ 410 - 0
代码/后端/run/agent_timing_13140.json

@@ -0,0 +1,410 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575617084221,
+    "end": 1575617085714,
+    "duration": 1493,
+    "pid": 13140,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575617084264,
+    "end": 1575617084358,
+    "duration": 94,
+    "pid": 13140,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575617084360,
+    "end": 1575617084451,
+    "duration": 91,
+    "pid": 13140,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575617084361,
+    "end": 1575617084363,
+    "duration": 2,
+    "pid": 13140,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575617084366,
+    "end": 1575617084367,
+    "duration": 1,
+    "pid": 13140,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575617084369,
+    "end": 1575617084370,
+    "duration": 1,
+    "pid": 13140,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575617084371,
+    "end": 1575617084372,
+    "duration": 1,
+    "pid": 13140,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575617084376,
+    "end": 1575617084376,
+    "duration": 0,
+    "pid": 13140,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575617084378,
+    "end": 1575617084378,
+    "duration": 0,
+    "pid": 13140,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575617084380,
+    "end": 1575617084384,
+    "duration": 4,
+    "pid": 13140,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575617084386,
+    "end": 1575617084387,
+    "duration": 1,
+    "pid": 13140,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575617084388,
+    "end": 1575617084389,
+    "duration": 1,
+    "pid": 13140,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575617084390,
+    "end": 1575617084391,
+    "duration": 1,
+    "pid": 13140,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575617084405,
+    "end": 1575617084406,
+    "duration": 1,
+    "pid": 13140,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575617084407,
+    "end": 1575617084408,
+    "duration": 1,
+    "pid": 13140,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575617084409,
+    "end": 1575617084410,
+    "duration": 1,
+    "pid": 13140,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575617084411,
+    "end": 1575617084412,
+    "duration": 1,
+    "pid": 13140,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575617084414,
+    "end": 1575617084414,
+    "duration": 0,
+    "pid": 13140,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575617084416,
+    "end": 1575617084416,
+    "duration": 0,
+    "pid": 13140,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575617084430,
+    "end": 1575617084431,
+    "duration": 1,
+    "pid": 13140,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575617084434,
+    "end": 1575617084434,
+    "duration": 0,
+    "pid": 13140,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575617084436,
+    "end": 1575617084437,
+    "duration": 1,
+    "pid": 13140,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575617084440,
+    "end": 1575617084440,
+    "duration": 0,
+    "pid": 13140,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575617084447,
+    "end": 1575617084448,
+    "duration": 1,
+    "pid": 13140,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575617084450,
+    "end": 1575617084450,
+    "duration": 0,
+    "pid": 13140,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575617084450,
+    "end": 1575617084450,
+    "duration": 0,
+    "pid": 13140,
+    "index": 25
+  },
+  {
+    "name": "Load extend/agent.js",
+    "start": 1575617084454,
+    "end": 1575617084642,
+    "duration": 188,
+    "pid": 13140,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-security/app/extend/agent.js",
+    "start": 1575617084455,
+    "end": 1575617084459,
+    "duration": 4,
+    "pid": 13140,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-schedule/app/extend/agent.js",
+    "start": 1575617084461,
+    "end": 1575617084594,
+    "duration": 133,
+    "pid": 13140,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-logrotator/app/extend/agent.js",
+    "start": 1575617084595,
+    "end": 1575617084632,
+    "duration": 37,
+    "pid": 13140,
+    "index": 29
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575617084642,
+    "end": 1575617084866,
+    "duration": 224,
+    "pid": 13140,
+    "index": 30
+  },
+  {
+    "name": "Require(26) node_modules/egg-security/app/extend/context.js",
+    "start": 1575617084643,
+    "end": 1575617084710,
+    "duration": 67,
+    "pid": 13140,
+    "index": 31
+  },
+  {
+    "name": "Require(27) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575617084712,
+    "end": 1575617084719,
+    "duration": 7,
+    "pid": 13140,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575617084722,
+    "end": 1575617084723,
+    "duration": 1,
+    "pid": 13140,
+    "index": 33
+  },
+  {
+    "name": "Require(29) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575617084726,
+    "end": 1575617084838,
+    "duration": 112,
+    "pid": 13140,
+    "index": 34
+  },
+  {
+    "name": "Require(30) node_modules/egg-view/app/extend/context.js",
+    "start": 1575617084847,
+    "end": 1575617084850,
+    "duration": 3,
+    "pid": 13140,
+    "index": 35
+  },
+  {
+    "name": "Require(31) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575617084852,
+    "end": 1575617084853,
+    "duration": 1,
+    "pid": 13140,
+    "index": 36
+  },
+  {
+    "name": "Require(32) node_modules/egg/app/extend/context.js",
+    "start": 1575617084854,
+    "end": 1575617084860,
+    "duration": 6,
+    "pid": 13140,
+    "index": 37
+  },
+  {
+    "name": "Load agent.js",
+    "start": 1575617084867,
+    "end": 1575617084982,
+    "duration": 115,
+    "pid": 13140,
+    "index": 38
+  },
+  {
+    "name": "Require(33) node_modules/egg-security/agent.js",
+    "start": 1575617084868,
+    "end": 1575617084869,
+    "duration": 1,
+    "pid": 13140,
+    "index": 39
+  },
+  {
+    "name": "Require(34) node_modules/egg-onerror/agent.js",
+    "start": 1575617084870,
+    "end": 1575617084871,
+    "duration": 1,
+    "pid": 13140,
+    "index": 40
+  },
+  {
+    "name": "Require(35) node_modules/egg-watcher/agent.js",
+    "start": 1575617084872,
+    "end": 1575617084895,
+    "duration": 23,
+    "pid": 13140,
+    "index": 41
+  },
+  {
+    "name": "Require(36) node_modules/egg-schedule/agent.js",
+    "start": 1575617084896,
+    "end": 1575617084900,
+    "duration": 4,
+    "pid": 13140,
+    "index": 42
+  },
+  {
+    "name": "Require(37) node_modules/egg-development/agent.js",
+    "start": 1575617084901,
+    "end": 1575617084914,
+    "duration": 13,
+    "pid": 13140,
+    "index": 43
+  },
+  {
+    "name": "Require(38) node_modules/egg-logrotator/agent.js",
+    "start": 1575617084915,
+    "end": 1575617084915,
+    "duration": 0,
+    "pid": 13140,
+    "index": 44
+  },
+  {
+    "name": "Require(39) node_modules/egg-mysql/agent.js",
+    "start": 1575617084917,
+    "end": 1575617084979,
+    "duration": 62,
+    "pid": 13140,
+    "index": 45
+  },
+  {
+    "name": "Require(40) node_modules/egg/agent.js",
+    "start": 1575617084980,
+    "end": 1575617084981,
+    "duration": 1,
+    "pid": 13140,
+    "index": 46
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575617085054,
+    "end": 1575617085611,
+    "duration": 557,
+    "pid": 13140,
+    "index": 47
+  },
+  {
+    "name": "Before Start in node_modules/egg-schedule/agent.js:12:9",
+    "start": 1575617085059,
+    "end": 1575617085489,
+    "duration": 430,
+    "pid": 13140,
+    "index": 48
+  },
+  {
+    "name": "Before Start in node_modules/egg-development/agent.js:12:9",
+    "start": 1575617085060,
+    "end": 1575617085710,
+    "duration": 650,
+    "pid": 13140,
+    "index": 49
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575617085320,
+    "end": 1575617085684,
+    "duration": 364,
+    "pid": 13140,
+    "index": 50
+  }
+]

+ 559 - 0
代码/后端/run/application_config.json

@@ -0,0 +1,559 @@
+{
+  "config": {
+    "session": {
+      "maxAge": 86400000,
+      "key": "EGG_SESS",
+      "httpOnly": true,
+      "encrypt": true,
+      "overwrite": true,
+      "signed": true,
+      "autoCommit": true,
+      "encode": "<Function encode>",
+      "decode": "<Function decode>",
+      "genid": "<Function v4>"
+    },
+    "security": {
+      "domainWhiteList": [],
+      "protocolWhiteList": [],
+      "defaultMiddleware": "csrf,hsts,methodnoallow,noopen,nosniff,csp,xssProtection,xframe,dta",
+      "csrf": {
+        "enable": false,
+        "type": "ctoken",
+        "ignoreJSON": false,
+        "useSession": false,
+        "cookieName": "csrfToken",
+        "sessionName": "csrfToken",
+        "headerName": "x-csrf-token",
+        "bodyName": "_csrf",
+        "queryName": "_csrf",
+        "refererWhiteList": []
+      },
+      "xframe": {
+        "enable": true,
+        "value": "SAMEORIGIN",
+        "matching": "<Function anonymous>"
+      },
+      "hsts": {
+        "enable": false,
+        "maxAge": 31536000,
+        "includeSubdomains": false
+      },
+      "dta": {
+        "enable": true,
+        "matching": "<Function anonymous>"
+      },
+      "methodnoallow": {
+        "enable": true,
+        "matching": "<Function anonymous>"
+      },
+      "noopen": {
+        "enable": true,
+        "matching": "<Function anonymous>"
+      },
+      "nosniff": {
+        "enable": true,
+        "matching": "<Function anonymous>"
+      },
+      "referrerPolicy": {
+        "enable": false,
+        "value": "no-referrer-when-downgrade"
+      },
+      "xssProtection": {
+        "enable": true,
+        "value": "1; mode=block",
+        "matching": "<Function anonymous>"
+      },
+      "csp": {
+        "enable": false,
+        "policy": {}
+      },
+      "ssrf": {
+        "ipBlackList": null,
+        "checkAddress": null
+      },
+      "_protocolWhiteListSet": "<Set>"
+    },
+    "helper": {
+      "shtml": {}
+    },
+    "jsonp": {
+      "limit": 50,
+      "callback": [
+        "_callback",
+        "callback"
+      ],
+      "csrf": false
+    },
+    "onerror": {
+      "errorPageUrl": "",
+      "appErrorFilter": null,
+      "templatePath": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-onerror\\lib\\onerror_page.mustache"
+    },
+    "i18n": {
+      "defaultLocale": "en_US",
+      "dirs": [
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-session\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-jsonp\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-onerror\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-schedule\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-mysql\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-validate\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\locales",
+        "C:\\robin\\company\\code\\customerevaluation\\server\\config\\locales"
+      ],
+      "queryField": "locale",
+      "cookieField": "locale",
+      "cookieDomain": "",
+      "cookieMaxAge": "1y",
+      "functionName": "__"
+    },
+    "watcher": {
+      "type": "development",
+      "eventSources": {
+        "default": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher\\lib\\event-sources\\default",
+        "development": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher\\lib\\event-sources\\development"
+      }
+    },
+    "customLogger": {
+      "scheduleLogger": {
+        "consoleLevel": "NONE",
+        "file": "egg-schedule.log"
+      }
+    },
+    "schedule": {
+      "directory": []
+    },
+    "multipart": {
+      "mode": "stream",
+      "autoFields": false,
+      "defaultCharset": "utf8",
+      "fieldNameSize": 100,
+      "fieldSize": 102400,
+      "fields": 10,
+      "fileSize": 10485760,
+      "files": 10,
+      "fileExtensions": [],
+      "whitelist": null,
+      "tmpdir": "C:\\Users\\11017950\\AppData\\Local\\Temp\\egg-multipart-tmp\\server",
+      "cleanSchedule": {
+        "cron": "0 30 4 * * *"
+      }
+    },
+    "development": {
+      "watchDirs": [],
+      "ignoreDirs": [],
+      "fastReady": false,
+      "reloadOnDebug": true,
+      "overrideDefault": false
+    },
+    "logrotator": {
+      "filesRotateByHour": null,
+      "hourDelimiter": "-",
+      "filesRotateBySize": null,
+      "maxFileSize": 52428800,
+      "maxFiles": 10,
+      "rotateDuration": 60000,
+      "maxDays": 31
+    },
+    "static": {
+      "prefix": "/public/",
+      "dir": "C:\\robin\\company\\code\\customerevaluation\\server\\app\\public",
+      "dynamic": true,
+      "preload": false,
+      "buffer": false,
+      "maxFiles": 1000
+    },
+    "view": {
+      "root": "C:\\robin\\company\\code\\customerevaluation\\server\\app\\view",
+      "cache": false,
+      "defaultExtension": ".html",
+      "defaultViewEngine": "",
+      "mapping": {}
+    },
+    "mysql": {
+      "default": {
+        "database": null,
+        "connectionLimit": 5
+      },
+      "app": true,
+      "agent": true,
+      "client": {
+        "host": "localhost",
+        "port": "3306",
+        "user": "tanjiawei",
+        "password": "<String len: 6>",
+        "database": "evaluation"
+      }
+    },
+    "validate": {},
+    "env": "local",
+    "name": "server",
+    "keys": "<String len: 24>",
+    "proxy": false,
+    "maxProxyCount": 0,
+    "protocolHeaders": "x-forwarded-proto",
+    "ipHeaders": "x-forwarded-for",
+    "hostHeaders": "",
+    "pkg": {
+      "name": "server",
+      "version": "1.0.0",
+      "description": "",
+      "private": true,
+      "egg": {
+        "typescript": true,
+        "declarations": true
+      },
+      "scripts": {
+        "start": "egg-scripts start --daemon --title=egg-server-server",
+        "stop": "egg-scripts stop --title=egg-server-server",
+        "dev": "egg-bin dev",
+        "debug": "egg-bin debug",
+        "test-local": "egg-bin test",
+        "test": "npm run lint -- --fix && npm run test-local",
+        "cov": "egg-bin cov",
+        "tsc": "ets && tsc -p tsconfig.json",
+        "ci": "npm run lint && npm run cov && npm run tsc",
+        "autod": "autod",
+        "lint": "tslint --project . -c tslint.json",
+        "clean": "ets clean"
+      },
+      "dependencies": {
+        "egg": "^2.6.1",
+        "egg-mysql": "^3.0.0",
+        "egg-scripts": "^2.6.0",
+        "egg-validate": "^2.0.2",
+        "moment": "^2.24.0"
+      },
+      "devDependencies": {
+        "@types/mocha": "^2.2.40",
+        "@types/node": "^7.0.12",
+        "@types/supertest": "^2.0.0",
+        "autod": "^3.0.1",
+        "autod-egg": "^1.1.0",
+        "egg-bin": "^4.11.0",
+        "egg-ci": "^1.8.0",
+        "egg-mock": "^3.16.0",
+        "tslib": "^1.9.0",
+        "tslint": "^5.0.0",
+        "tslint-config-egg": "^1.0.0",
+        "typescript": "^3.0.0"
+      },
+      "engines": {
+        "node": ">=8.9.0"
+      },
+      "ci": {
+        "version": "8"
+      },
+      "repository": {
+        "type": "git",
+        "url": ""
+      },
+      "eslintIgnore": [
+        "coverage"
+      ],
+      "author": "",
+      "license": "MIT"
+    },
+    "baseDir": "C:\\robin\\company\\code\\customerevaluation\\server",
+    "HOME": "C:\\Users\\11017950",
+    "rundir": "C:\\robin\\company\\code\\customerevaluation\\server\\run",
+    "dump": {
+      "ignore": "<Set>"
+    },
+    "confusedConfigurations": {
+      "bodyparser": "bodyParser",
+      "notFound": "notfound",
+      "sitefile": "siteFile",
+      "middlewares": "middleware",
+      "httpClient": "httpclient"
+    },
+    "notfound": {
+      "pageUrl": ""
+    },
+    "siteFile": {
+      "/favicon.ico": "<Buffer len: 6463>"
+    },
+    "bodyParser": {
+      "enable": true,
+      "encoding": "utf8",
+      "formLimit": "100kb",
+      "jsonLimit": "100kb",
+      "strict": true,
+      "queryString": {
+        "arrayLimit": 100,
+        "depth": 5,
+        "parameterLimit": 1000
+      },
+      "returnRawBody": true
+    },
+    "logger": {
+      "dir": "C:\\robin\\company\\code\\customerevaluation\\server\\logs\\server",
+      "encoding": "utf8",
+      "env": "local",
+      "level": "INFO",
+      "consoleLevel": "INFO",
+      "disableConsoleAfterReady": false,
+      "outputJSON": false,
+      "buffer": true,
+      "appLogName": "server-web.log",
+      "coreLogName": "egg-web.log",
+      "agentLogName": "egg-agent.log",
+      "errorLogName": "common-error.log",
+      "coreLogger": {
+        "consoleLevel": "WARN"
+      },
+      "allowDebugAtProd": false,
+      "type": "application"
+    },
+    "httpclient": {
+      "enableDNSCache": false,
+      "dnsCacheLookupInterval": 10000,
+      "dnsCacheMaxLength": 1000,
+      "request": {
+        "timeout": 5000
+      },
+      "httpAgent": {
+        "keepAlive": true,
+        "freeSocketTimeout": 4000,
+        "maxSockets": 9007199254740991,
+        "maxFreeSockets": 256
+      },
+      "httpsAgent": {
+        "keepAlive": true,
+        "freeSocketTimeout": 4000,
+        "maxSockets": 9007199254740991,
+        "maxFreeSockets": 256
+      }
+    },
+    "meta": {
+      "enable": true,
+      "logging": false
+    },
+    "coreMiddleware": [
+      "meta",
+      "siteFile",
+      "notfound",
+      "static",
+      "bodyParser",
+      "overrideMethod",
+      "session",
+      "securities",
+      "i18n",
+      "eggLoaderTrace"
+    ],
+    "workerStartTimeout": 600000,
+    "serverTimeout": null,
+    "cluster": {
+      "listen": {
+        "path": "",
+        "port": 7001,
+        "hostname": ""
+      }
+    },
+    "clusterClient": {
+      "maxWaitTime": 60000,
+      "responseTimeout": 60000
+    },
+    "onClientError": null,
+    "middleware": [
+      "auth"
+    ],
+    "sourceUrl": "https://github.com/eggjs/examples/tree/master/server",
+    "app": {
+      "checkUpdateInterval": 6
+    },
+    "coreMiddlewares": "~config~coreMiddleware",
+    "appMiddlewares": "~config~middleware",
+    "appMiddleware": "~config~middleware",
+    "multipartParseOptions": {
+      "autoFields": false,
+      "defCharset": "utf8",
+      "limits": {
+        "fieldNameSize": 100,
+        "fieldSize": 102400,
+        "fields": 10,
+        "fileSize": 10485760,
+        "files": 10
+      },
+      "checkFile": "<Function checkFile>"
+    }
+  },
+  "plugins": {
+    "session": {
+      "enable": true,
+      "package": "egg-session",
+      "name": "session",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-session",
+      "version": "3.1.0"
+    },
+    "security": {
+      "enable": true,
+      "package": "egg-security",
+      "name": "security",
+      "dependencies": [],
+      "optionalDependencies": [
+        "session"
+      ],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security",
+      "version": "2.6.1"
+    },
+    "jsonp": {
+      "enable": true,
+      "package": "egg-jsonp",
+      "name": "jsonp",
+      "dependencies": [],
+      "optionalDependencies": [
+        "security"
+      ],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-jsonp",
+      "version": "2.0.0"
+    },
+    "onerror": {
+      "enable": true,
+      "package": "egg-onerror",
+      "name": "onerror",
+      "dependencies": [],
+      "optionalDependencies": [
+        "jsonp"
+      ],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-onerror",
+      "version": "2.1.0"
+    },
+    "i18n": {
+      "enable": true,
+      "package": "egg-i18n",
+      "name": "i18n",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n",
+      "version": "2.1.1"
+    },
+    "watcher": {
+      "enable": true,
+      "package": "egg-watcher",
+      "name": "watcher",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher",
+      "version": "3.1.0"
+    },
+    "schedule": {
+      "enable": true,
+      "package": "egg-schedule",
+      "name": "schedule",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-schedule",
+      "version": "3.6.4"
+    },
+    "multipart": {
+      "enable": true,
+      "package": "egg-multipart",
+      "name": "multipart",
+      "dependencies": [],
+      "optionalDependencies": [
+        "schedule"
+      ],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart",
+      "version": "2.9.0"
+    },
+    "development": {
+      "enable": true,
+      "package": "egg-development",
+      "name": "development",
+      "dependencies": [
+        "watcher"
+      ],
+      "optionalDependencies": [],
+      "env": [
+        "local"
+      ],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development",
+      "version": "2.4.3"
+    },
+    "logrotator": {
+      "enable": true,
+      "package": "egg-logrotator",
+      "name": "logrotator",
+      "dependencies": [
+        "schedule"
+      ],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator",
+      "version": "3.1.0"
+    },
+    "static": {
+      "enable": true,
+      "package": "egg-static",
+      "name": "static",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static",
+      "version": "2.2.0"
+    },
+    "view": {
+      "enable": true,
+      "package": "egg-view",
+      "name": "view",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\plugin.js",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view",
+      "version": "2.1.2"
+    },
+    "mysql": {
+      "enable": true,
+      "package": "egg-mysql",
+      "name": "mysql",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\plugin.ts",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-mysql",
+      "version": "3.0.0"
+    },
+    "validate": {
+      "enable": true,
+      "package": "egg-validate",
+      "name": "validate",
+      "dependencies": [],
+      "optionalDependencies": [],
+      "env": [],
+      "from": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\plugin.ts",
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-validate",
+      "version": "2.0.2"
+    }
+  }
+}

+ 322 - 0
代码/后端/run/application_config_meta.json

@@ -0,0 +1,322 @@
+{
+  "keys": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.default.ts",
+  "middleware": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.default.ts",
+  "sourceUrl": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.default.ts",
+  "security": {
+    "csrf": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.default.ts",
+      "type": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "ignoreJSON": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "useSession": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "cookieName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "sessionName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "headerName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "bodyName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "queryName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "refererWhiteList": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "domainWhiteList": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+    "protocolWhiteList": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+    "defaultMiddleware": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+    "xframe": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "hsts": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.local.js",
+      "maxAge": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "includeSubdomains": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "dta": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "methodnoallow": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "noopen": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "nosniff": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "referrerPolicy": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "xssProtection": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "value": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "csp": {
+      "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "policy": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    },
+    "ssrf": {
+      "ipBlackList": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js",
+      "checkAddress": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+    }
+  },
+  "app": {
+    "checkUpdateInterval": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.default.ts"
+  },
+  "mysql": {
+    "client": {
+      "host": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+      "port": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+      "user": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+      "password": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+      "database": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts"
+    },
+    "app": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+    "agent": "C:\\robin\\company\\code\\customerevaluation\\server\\config\\config.local.ts",
+    "default": {
+      "database": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-mysql\\config\\config.default.js",
+      "connectionLimit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-mysql\\config\\config.default.js"
+    }
+  },
+  "session": {
+    "maxAge": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-session\\config\\config.default.js",
+    "key": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-session\\config\\config.default.js",
+    "httpOnly": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-session\\config\\config.default.js",
+    "encrypt": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-session\\config\\config.default.js"
+  },
+  "helper": {
+    "shtml": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-security\\config\\config.default.js"
+  },
+  "jsonp": {
+    "limit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-jsonp\\config\\config.default.js",
+    "callback": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-jsonp\\config\\config.default.js",
+    "csrf": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-jsonp\\config\\config.default.js"
+  },
+  "onerror": {
+    "errorPageUrl": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-onerror\\config\\config.default.js",
+    "appErrorFilter": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-onerror\\config\\config.default.js",
+    "templatePath": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-onerror\\config\\config.default.js"
+  },
+  "i18n": {
+    "defaultLocale": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js",
+    "dirs": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js",
+    "queryField": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieField": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieDomain": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js",
+    "cookieMaxAge": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-i18n\\config\\config.default.js"
+  },
+  "watcher": {
+    "type": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher\\config\\config.local.js",
+    "eventSources": {
+      "default": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher\\config\\config.default.js",
+      "development": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-watcher\\config\\config.default.js"
+    }
+  },
+  "customLogger": {
+    "scheduleLogger": {
+      "consoleLevel": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-schedule\\config\\config.default.js",
+      "file": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-schedule\\config\\config.default.js"
+    }
+  },
+  "schedule": {
+    "directory": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-schedule\\config\\config.default.js"
+  },
+  "multipart": {
+    "mode": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "autoFields": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "defaultCharset": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fieldNameSize": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fieldSize": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fields": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fileSize": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "files": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "fileExtensions": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "whitelist": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "tmpdir": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js",
+    "cleanSchedule": {
+      "cron": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-multipart\\config\\config.default.js"
+    }
+  },
+  "development": {
+    "watchDirs": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development\\config\\config.default.js",
+    "ignoreDirs": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development\\config\\config.default.js",
+    "fastReady": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development\\config\\config.default.js",
+    "reloadOnDebug": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development\\config\\config.default.js",
+    "overrideDefault": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-development\\config\\config.default.js"
+  },
+  "logrotator": {
+    "filesRotateByHour": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "hourDelimiter": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "filesRotateBySize": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxFileSize": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxFiles": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "rotateDuration": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js",
+    "maxDays": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-logrotator\\config\\config.default.js"
+  },
+  "static": {
+    "prefix": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js",
+    "dir": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js",
+    "dynamic": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js",
+    "preload": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js",
+    "buffer": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js",
+    "maxFiles": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-static\\config\\config.default.js"
+  },
+  "view": {
+    "root": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view\\config\\config.default.js",
+    "cache": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view\\config\\config.local.js",
+    "defaultExtension": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view\\config\\config.default.js",
+    "defaultViewEngine": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view\\config\\config.default.js",
+    "mapping": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-view\\config\\config.default.js"
+  },
+  "validate": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg-validate\\config\\config.default.js",
+  "env": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "name": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "proxy": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "maxProxyCount": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "protocolHeaders": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "ipHeaders": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "hostHeaders": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "pkg": {
+    "name": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "version": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "description": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "private": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "egg": {
+      "typescript": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "declarations": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "scripts": {
+      "start": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "stop": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "dev": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "debug": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "test-local": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "test": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "cov": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "tsc": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "ci": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "autod": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "lint": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "clean": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "dependencies": {
+      "egg": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-mysql": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-scripts": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-validate": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "moment": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "devDependencies": {
+      "@types/mocha": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "@types/node": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "@types/supertest": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "autod": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "autod-egg": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-bin": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-ci": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "egg-mock": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "tslib": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "tslint": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "tslint-config-egg": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "typescript": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "engines": {
+      "node": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "ci": {
+      "version": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "repository": {
+      "type": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "url": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "eslintIgnore": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "author": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "license": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "baseDir": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "HOME": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "rundir": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "dump": {
+    "ignore": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "confusedConfigurations": {
+    "bodyparser": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "notFound": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "sitefile": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "middlewares": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "httpClient": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "notfound": {
+    "pageUrl": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "siteFile": {
+    "/favicon.ico": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "bodyParser": {
+    "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "encoding": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "formLimit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "jsonLimit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "strict": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "queryString": {
+      "arrayLimit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "depth": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "parameterLimit": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "onerror": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "logger": {
+    "dir": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "encoding": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "env": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "level": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "consoleLevel": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "disableConsoleAfterReady": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "outputJSON": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "buffer": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "appLogName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "coreLogName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "agentLogName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "errorLogName": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "coreLogger": {
+      "consoleLevel": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.local.js"
+    },
+    "allowDebugAtProd": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "httpclient": {
+    "enableDNSCache": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "dnsCacheLookupInterval": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "dnsCacheMaxLength": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "request": {
+      "timeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "httpAgent": {
+      "keepAlive": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "freeSocketTimeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "maxSockets": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "maxFreeSockets": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    },
+    "httpsAgent": {
+      "keepAlive": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "freeSocketTimeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "maxSockets": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "maxFreeSockets": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    }
+  },
+  "meta": {
+    "enable": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "logging": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "coreMiddleware": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "workerStartTimeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "serverTimeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+  "cluster": {
+    "listen": {
+      "path": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "port": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+      "hostname": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+    }
+  },
+  "clusterClient": {
+    "maxWaitTime": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js",
+    "responseTimeout": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+  },
+  "onClientError": "C:\\robin\\company\\code\\customerevaluation\\server\\node_modules\\egg\\config\\config.default.js"
+}

+ 570 - 0
代码/后端/run/application_timing_10376.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575620358920,
+    "end": 1575620360718,
+    "duration": 1798,
+    "pid": 10376,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575620358931,
+    "end": 1575620358973,
+    "duration": 42,
+    "pid": 10376,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575620358973,
+    "end": 1575620359034,
+    "duration": 61,
+    "pid": 10376,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575620358976,
+    "end": 1575620358977,
+    "duration": 1,
+    "pid": 10376,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575620358979,
+    "end": 1575620358980,
+    "duration": 1,
+    "pid": 10376,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575620358982,
+    "end": 1575620358982,
+    "duration": 0,
+    "pid": 10376,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575620358983,
+    "end": 1575620358984,
+    "duration": 1,
+    "pid": 10376,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575620358986,
+    "end": 1575620358987,
+    "duration": 1,
+    "pid": 10376,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575620358988,
+    "end": 1575620358988,
+    "duration": 0,
+    "pid": 10376,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575620358991,
+    "end": 1575620358991,
+    "duration": 0,
+    "pid": 10376,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575620358993,
+    "end": 1575620358994,
+    "duration": 1,
+    "pid": 10376,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575620358997,
+    "end": 1575620359001,
+    "duration": 4,
+    "pid": 10376,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575620359003,
+    "end": 1575620359004,
+    "duration": 1,
+    "pid": 10376,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575620359006,
+    "end": 1575620359006,
+    "duration": 0,
+    "pid": 10376,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575620359007,
+    "end": 1575620359008,
+    "duration": 1,
+    "pid": 10376,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575620359009,
+    "end": 1575620359010,
+    "duration": 1,
+    "pid": 10376,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575620359011,
+    "end": 1575620359012,
+    "duration": 1,
+    "pid": 10376,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575620359014,
+    "end": 1575620359014,
+    "duration": 0,
+    "pid": 10376,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575620359016,
+    "end": 1575620359016,
+    "duration": 0,
+    "pid": 10376,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575620359017,
+    "end": 1575620359018,
+    "duration": 1,
+    "pid": 10376,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575620359021,
+    "end": 1575620359021,
+    "duration": 0,
+    "pid": 10376,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575620359024,
+    "end": 1575620359025,
+    "duration": 1,
+    "pid": 10376,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575620359027,
+    "end": 1575620359028,
+    "duration": 1,
+    "pid": 10376,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575620359031,
+    "end": 1575620359032,
+    "duration": 1,
+    "pid": 10376,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575620359034,
+    "end": 1575620359034,
+    "duration": 0,
+    "pid": 10376,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575620359034,
+    "end": 1575620359034,
+    "duration": 0,
+    "pid": 10376,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575620359037,
+    "end": 1575620359094,
+    "duration": 57,
+    "pid": 10376,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575620359038,
+    "end": 1575620359039,
+    "duration": 1,
+    "pid": 10376,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575620359040,
+    "end": 1575620359053,
+    "duration": 13,
+    "pid": 10376,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575620359054,
+    "end": 1575620359059,
+    "duration": 5,
+    "pid": 10376,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575620359064,
+    "end": 1575620359079,
+    "duration": 15,
+    "pid": 10376,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575620359081,
+    "end": 1575620359085,
+    "duration": 4,
+    "pid": 10376,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575620359094,
+    "end": 1575620359115,
+    "duration": 21,
+    "pid": 10376,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575620359102,
+    "end": 1575620359105,
+    "duration": 3,
+    "pid": 10376,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575620359115,
+    "end": 1575620359131,
+    "duration": 16,
+    "pid": 10376,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575620359121,
+    "end": 1575620359124,
+    "duration": 3,
+    "pid": 10376,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575620359131,
+    "end": 1575620359525,
+    "duration": 394,
+    "pid": 10376,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575620359131,
+    "end": 1575620359185,
+    "duration": 54,
+    "pid": 10376,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575620359187,
+    "end": 1575620359198,
+    "duration": 11,
+    "pid": 10376,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575620359200,
+    "end": 1575620359201,
+    "duration": 1,
+    "pid": 10376,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575620359203,
+    "end": 1575620359458,
+    "duration": 255,
+    "pid": 10376,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575620359461,
+    "end": 1575620359466,
+    "duration": 5,
+    "pid": 10376,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575620359476,
+    "end": 1575620359477,
+    "duration": 1,
+    "pid": 10376,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575620359487,
+    "end": 1575620359504,
+    "duration": 17,
+    "pid": 10376,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575620359525,
+    "end": 1575620359659,
+    "duration": 134,
+    "pid": 10376,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575620359528,
+    "end": 1575620359611,
+    "duration": 83,
+    "pid": 10376,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575620359627,
+    "end": 1575620359628,
+    "duration": 1,
+    "pid": 10376,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575620359660,
+    "end": 1575620360030,
+    "duration": 370,
+    "pid": 10376,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575620359661,
+    "end": 1575620359672,
+    "duration": 11,
+    "pid": 10376,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575620359673,
+    "end": 1575620359690,
+    "duration": 17,
+    "pid": 10376,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575620359691,
+    "end": 1575620359743,
+    "duration": 52,
+    "pid": 10376,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575620359744,
+    "end": 1575620359837,
+    "duration": 93,
+    "pid": 10376,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575620359839,
+    "end": 1575620359858,
+    "duration": 19,
+    "pid": 10376,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575620359859,
+    "end": 1575620359869,
+    "duration": 10,
+    "pid": 10376,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575620359870,
+    "end": 1575620359907,
+    "duration": 37,
+    "pid": 10376,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575620359910,
+    "end": 1575620359915,
+    "duration": 5,
+    "pid": 10376,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575620359916,
+    "end": 1575620359917,
+    "duration": 1,
+    "pid": 10376,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575620359918,
+    "end": 1575620359922,
+    "duration": 4,
+    "pid": 10376,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575620359924,
+    "end": 1575620360020,
+    "duration": 96,
+    "pid": 10376,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575620360022,
+    "end": 1575620360026,
+    "duration": 4,
+    "pid": 10376,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575620360069,
+    "end": 1575620360705,
+    "duration": 636,
+    "pid": 10376,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575620360292,
+    "end": 1575620360715,
+    "duration": 423,
+    "pid": 10376,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575620360292,
+    "end": 1575620360317,
+    "duration": 25,
+    "pid": 10376,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575620360292,
+    "end": 1575620360317,
+    "duration": 25,
+    "pid": 10376,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575620360318,
+    "end": 1575620360571,
+    "duration": 253,
+    "pid": 10376,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575620360318,
+    "end": 1575620360513,
+    "duration": 195,
+    "pid": 10376,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575620360571,
+    "end": 1575620360609,
+    "duration": 38,
+    "pid": 10376,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575620360571,
+    "end": 1575620360609,
+    "duration": 38,
+    "pid": 10376,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575620360609,
+    "end": 1575620360632,
+    "duration": 23,
+    "pid": 10376,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575620360610,
+    "end": 1575620360622,
+    "duration": 12,
+    "pid": 10376,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575620360624,
+    "end": 1575620360665,
+    "duration": 41,
+    "pid": 10376,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_10616.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575618480049,
+    "end": 1575618485322,
+    "duration": 5273,
+    "pid": 10616,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575618480060,
+    "end": 1575618480159,
+    "duration": 99,
+    "pid": 10616,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575618480160,
+    "end": 1575618480261,
+    "duration": 101,
+    "pid": 10616,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575618480163,
+    "end": 1575618480165,
+    "duration": 2,
+    "pid": 10616,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575618480178,
+    "end": 1575618480180,
+    "duration": 2,
+    "pid": 10616,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575618480182,
+    "end": 1575618480182,
+    "duration": 0,
+    "pid": 10616,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575618480189,
+    "end": 1575618480189,
+    "duration": 0,
+    "pid": 10616,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575618480192,
+    "end": 1575618480193,
+    "duration": 1,
+    "pid": 10616,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575618480196,
+    "end": 1575618480197,
+    "duration": 1,
+    "pid": 10616,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575618480204,
+    "end": 1575618480205,
+    "duration": 1,
+    "pid": 10616,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575618480211,
+    "end": 1575618480211,
+    "duration": 0,
+    "pid": 10616,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575618480213,
+    "end": 1575618480216,
+    "duration": 3,
+    "pid": 10616,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575618480218,
+    "end": 1575618480219,
+    "duration": 1,
+    "pid": 10616,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575618480221,
+    "end": 1575618480222,
+    "duration": 1,
+    "pid": 10616,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575618480226,
+    "end": 1575618480226,
+    "duration": 0,
+    "pid": 10616,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575618480229,
+    "end": 1575618480229,
+    "duration": 0,
+    "pid": 10616,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575618480231,
+    "end": 1575618480231,
+    "duration": 0,
+    "pid": 10616,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575618480233,
+    "end": 1575618480234,
+    "duration": 1,
+    "pid": 10616,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575618480236,
+    "end": 1575618480238,
+    "duration": 2,
+    "pid": 10616,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575618480240,
+    "end": 1575618480241,
+    "duration": 1,
+    "pid": 10616,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575618480244,
+    "end": 1575618480244,
+    "duration": 0,
+    "pid": 10616,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575618480246,
+    "end": 1575618480246,
+    "duration": 0,
+    "pid": 10616,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575618480249,
+    "end": 1575618480250,
+    "duration": 1,
+    "pid": 10616,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575618480254,
+    "end": 1575618480255,
+    "duration": 1,
+    "pid": 10616,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575618480260,
+    "end": 1575618480260,
+    "duration": 0,
+    "pid": 10616,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575618480261,
+    "end": 1575618480261,
+    "duration": 0,
+    "pid": 10616,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575618480264,
+    "end": 1575618480349,
+    "duration": 85,
+    "pid": 10616,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575618480266,
+    "end": 1575618480267,
+    "duration": 1,
+    "pid": 10616,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575618480268,
+    "end": 1575618480275,
+    "duration": 7,
+    "pid": 10616,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575618480276,
+    "end": 1575618480280,
+    "duration": 4,
+    "pid": 10616,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575618480283,
+    "end": 1575618480334,
+    "duration": 51,
+    "pid": 10616,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575618480336,
+    "end": 1575618480340,
+    "duration": 4,
+    "pid": 10616,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575618480349,
+    "end": 1575618480363,
+    "duration": 14,
+    "pid": 10616,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575618480354,
+    "end": 1575618480357,
+    "duration": 3,
+    "pid": 10616,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575618480363,
+    "end": 1575618480385,
+    "duration": 22,
+    "pid": 10616,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575618480373,
+    "end": 1575618480377,
+    "duration": 4,
+    "pid": 10616,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575618480386,
+    "end": 1575618480784,
+    "duration": 398,
+    "pid": 10616,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575618480389,
+    "end": 1575618480444,
+    "duration": 55,
+    "pid": 10616,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575618480445,
+    "end": 1575618480447,
+    "duration": 2,
+    "pid": 10616,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575618480449,
+    "end": 1575618480450,
+    "duration": 1,
+    "pid": 10616,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575618480452,
+    "end": 1575618480746,
+    "duration": 294,
+    "pid": 10616,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575618480748,
+    "end": 1575618480752,
+    "duration": 4,
+    "pid": 10616,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575618480754,
+    "end": 1575618480757,
+    "duration": 3,
+    "pid": 10616,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575618480758,
+    "end": 1575618480772,
+    "duration": 14,
+    "pid": 10616,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575618480785,
+    "end": 1575618480871,
+    "duration": 86,
+    "pid": 10616,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575618480788,
+    "end": 1575618480848,
+    "duration": 60,
+    "pid": 10616,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575618480858,
+    "end": 1575618480859,
+    "duration": 1,
+    "pid": 10616,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575618480873,
+    "end": 1575618481038,
+    "duration": 165,
+    "pid": 10616,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575618480874,
+    "end": 1575618480875,
+    "duration": 1,
+    "pid": 10616,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575618480876,
+    "end": 1575618480879,
+    "duration": 3,
+    "pid": 10616,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575618480881,
+    "end": 1575618480917,
+    "duration": 36,
+    "pid": 10616,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575618480920,
+    "end": 1575618480956,
+    "duration": 36,
+    "pid": 10616,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575618480958,
+    "end": 1575618480969,
+    "duration": 11,
+    "pid": 10616,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575618480970,
+    "end": 1575618480974,
+    "duration": 4,
+    "pid": 10616,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575618480975,
+    "end": 1575618480982,
+    "duration": 7,
+    "pid": 10616,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575618480983,
+    "end": 1575618480984,
+    "duration": 1,
+    "pid": 10616,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575618480986,
+    "end": 1575618480987,
+    "duration": 1,
+    "pid": 10616,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575618480987,
+    "end": 1575618480988,
+    "duration": 1,
+    "pid": 10616,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575618480991,
+    "end": 1575618481030,
+    "duration": 39,
+    "pid": 10616,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575618481031,
+    "end": 1575618481035,
+    "duration": 4,
+    "pid": 10616,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575618481064,
+    "end": 1575618485303,
+    "duration": 4239,
+    "pid": 10616,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575618481292,
+    "end": 1575618485312,
+    "duration": 4020,
+    "pid": 10616,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575618481292,
+    "end": 1575618481310,
+    "duration": 18,
+    "pid": 10616,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575618481293,
+    "end": 1575618481310,
+    "duration": 17,
+    "pid": 10616,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575618481310,
+    "end": 1575618481654,
+    "duration": 344,
+    "pid": 10616,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575618481311,
+    "end": 1575618481604,
+    "duration": 293,
+    "pid": 10616,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575618481655,
+    "end": 1575618481681,
+    "duration": 26,
+    "pid": 10616,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575618481655,
+    "end": 1575618481681,
+    "duration": 26,
+    "pid": 10616,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575618481681,
+    "end": 1575618485173,
+    "duration": 3492,
+    "pid": 10616,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575618481687,
+    "end": 1575618485170,
+    "duration": 3483,
+    "pid": 10616,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575618485170,
+    "end": 1575618485252,
+    "duration": 82,
+    "pid": 10616,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_13084.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575620436264,
+    "end": 1575620439893,
+    "duration": 3629,
+    "pid": 13084,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575620436289,
+    "end": 1575620436343,
+    "duration": 54,
+    "pid": 13084,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575620436344,
+    "end": 1575620436394,
+    "duration": 50,
+    "pid": 13084,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575620436347,
+    "end": 1575620436348,
+    "duration": 1,
+    "pid": 13084,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575620436351,
+    "end": 1575620436352,
+    "duration": 1,
+    "pid": 13084,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575620436353,
+    "end": 1575620436354,
+    "duration": 1,
+    "pid": 13084,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575620436355,
+    "end": 1575620436356,
+    "duration": 1,
+    "pid": 13084,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575620436358,
+    "end": 1575620436359,
+    "duration": 1,
+    "pid": 13084,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575620436360,
+    "end": 1575620436361,
+    "duration": 1,
+    "pid": 13084,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575620436362,
+    "end": 1575620436362,
+    "duration": 0,
+    "pid": 13084,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575620436365,
+    "end": 1575620436366,
+    "duration": 1,
+    "pid": 13084,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575620436367,
+    "end": 1575620436370,
+    "duration": 3,
+    "pid": 13084,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575620436372,
+    "end": 1575620436372,
+    "duration": 0,
+    "pid": 13084,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575620436373,
+    "end": 1575620436373,
+    "duration": 0,
+    "pid": 13084,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575620436374,
+    "end": 1575620436375,
+    "duration": 1,
+    "pid": 13084,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575620436376,
+    "end": 1575620436376,
+    "duration": 0,
+    "pid": 13084,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575620436377,
+    "end": 1575620436378,
+    "duration": 1,
+    "pid": 13084,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575620436379,
+    "end": 1575620436379,
+    "duration": 0,
+    "pid": 13084,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575620436380,
+    "end": 1575620436381,
+    "duration": 1,
+    "pid": 13084,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575620436382,
+    "end": 1575620436383,
+    "duration": 1,
+    "pid": 13084,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575620436385,
+    "end": 1575620436385,
+    "duration": 0,
+    "pid": 13084,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575620436387,
+    "end": 1575620436388,
+    "duration": 1,
+    "pid": 13084,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575620436389,
+    "end": 1575620436390,
+    "duration": 1,
+    "pid": 13084,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575620436392,
+    "end": 1575620436392,
+    "duration": 0,
+    "pid": 13084,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575620436393,
+    "end": 1575620436393,
+    "duration": 0,
+    "pid": 13084,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575620436393,
+    "end": 1575620436393,
+    "duration": 0,
+    "pid": 13084,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575620436396,
+    "end": 1575620436428,
+    "duration": 32,
+    "pid": 13084,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575620436397,
+    "end": 1575620436398,
+    "duration": 1,
+    "pid": 13084,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575620436399,
+    "end": 1575620436401,
+    "duration": 2,
+    "pid": 13084,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575620436402,
+    "end": 1575620436404,
+    "duration": 2,
+    "pid": 13084,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575620436406,
+    "end": 1575620436420,
+    "duration": 14,
+    "pid": 13084,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575620436421,
+    "end": 1575620436423,
+    "duration": 2,
+    "pid": 13084,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575620436428,
+    "end": 1575620436441,
+    "duration": 13,
+    "pid": 13084,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575620436435,
+    "end": 1575620436437,
+    "duration": 2,
+    "pid": 13084,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575620436441,
+    "end": 1575620436455,
+    "duration": 14,
+    "pid": 13084,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575620436445,
+    "end": 1575620436451,
+    "duration": 6,
+    "pid": 13084,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575620436455,
+    "end": 1575620436604,
+    "duration": 149,
+    "pid": 13084,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575620436456,
+    "end": 1575620436491,
+    "duration": 35,
+    "pid": 13084,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575620436492,
+    "end": 1575620436496,
+    "duration": 4,
+    "pid": 13084,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575620436498,
+    "end": 1575620436499,
+    "duration": 1,
+    "pid": 13084,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575620436500,
+    "end": 1575620436588,
+    "duration": 88,
+    "pid": 13084,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575620436589,
+    "end": 1575620436592,
+    "duration": 3,
+    "pid": 13084,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575620436593,
+    "end": 1575620436594,
+    "duration": 1,
+    "pid": 13084,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575620436594,
+    "end": 1575620436599,
+    "duration": 5,
+    "pid": 13084,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575620436604,
+    "end": 1575620436655,
+    "duration": 51,
+    "pid": 13084,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575620436604,
+    "end": 1575620436641,
+    "duration": 37,
+    "pid": 13084,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575620436644,
+    "end": 1575620436645,
+    "duration": 1,
+    "pid": 13084,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575620436655,
+    "end": 1575620436787,
+    "duration": 132,
+    "pid": 13084,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575620436656,
+    "end": 1575620436656,
+    "duration": 0,
+    "pid": 13084,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575620436657,
+    "end": 1575620436661,
+    "duration": 4,
+    "pid": 13084,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575620436662,
+    "end": 1575620436681,
+    "duration": 19,
+    "pid": 13084,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575620436682,
+    "end": 1575620436704,
+    "duration": 22,
+    "pid": 13084,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575620436705,
+    "end": 1575620436711,
+    "duration": 6,
+    "pid": 13084,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575620436711,
+    "end": 1575620436715,
+    "duration": 4,
+    "pid": 13084,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575620436717,
+    "end": 1575620436724,
+    "duration": 7,
+    "pid": 13084,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575620436724,
+    "end": 1575620436725,
+    "duration": 1,
+    "pid": 13084,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575620436725,
+    "end": 1575620436726,
+    "duration": 1,
+    "pid": 13084,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575620436727,
+    "end": 1575620436727,
+    "duration": 0,
+    "pid": 13084,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575620436728,
+    "end": 1575620436769,
+    "duration": 41,
+    "pid": 13084,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575620436770,
+    "end": 1575620436785,
+    "duration": 15,
+    "pid": 13084,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575620436815,
+    "end": 1575620439880,
+    "duration": 3065,
+    "pid": 13084,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575620437157,
+    "end": 1575620439891,
+    "duration": 2734,
+    "pid": 13084,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575620437158,
+    "end": 1575620439454,
+    "duration": 2296,
+    "pid": 13084,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575620437158,
+    "end": 1575620439454,
+    "duration": 2296,
+    "pid": 13084,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575620439454,
+    "end": 1575620439721,
+    "duration": 267,
+    "pid": 13084,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575620439454,
+    "end": 1575620439681,
+    "duration": 227,
+    "pid": 13084,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575620439721,
+    "end": 1575620439744,
+    "duration": 23,
+    "pid": 13084,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575620439721,
+    "end": 1575620439744,
+    "duration": 23,
+    "pid": 13084,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575620439745,
+    "end": 1575620439752,
+    "duration": 7,
+    "pid": 13084,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575620439746,
+    "end": 1575620439749,
+    "duration": 3,
+    "pid": 13084,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575620439749,
+    "end": 1575620439789,
+    "duration": 40,
+    "pid": 13084,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_13388.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575619826069,
+    "end": 1575619829605,
+    "duration": 3536,
+    "pid": 13388,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575619826077,
+    "end": 1575619826130,
+    "duration": 53,
+    "pid": 13388,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575619826131,
+    "end": 1575619826189,
+    "duration": 58,
+    "pid": 13388,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575619826134,
+    "end": 1575619826136,
+    "duration": 2,
+    "pid": 13388,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575619826142,
+    "end": 1575619826144,
+    "duration": 2,
+    "pid": 13388,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575619826146,
+    "end": 1575619826147,
+    "duration": 1,
+    "pid": 13388,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575619826148,
+    "end": 1575619826149,
+    "duration": 1,
+    "pid": 13388,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575619826151,
+    "end": 1575619826152,
+    "duration": 1,
+    "pid": 13388,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575619826153,
+    "end": 1575619826154,
+    "duration": 1,
+    "pid": 13388,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575619826155,
+    "end": 1575619826156,
+    "duration": 1,
+    "pid": 13388,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575619826158,
+    "end": 1575619826159,
+    "duration": 1,
+    "pid": 13388,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575619826160,
+    "end": 1575619826164,
+    "duration": 4,
+    "pid": 13388,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575619826165,
+    "end": 1575619826166,
+    "duration": 1,
+    "pid": 13388,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575619826167,
+    "end": 1575619826167,
+    "duration": 0,
+    "pid": 13388,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575619826168,
+    "end": 1575619826169,
+    "duration": 1,
+    "pid": 13388,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575619826170,
+    "end": 1575619826170,
+    "duration": 0,
+    "pid": 13388,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575619826171,
+    "end": 1575619826172,
+    "duration": 1,
+    "pid": 13388,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575619826173,
+    "end": 1575619826173,
+    "duration": 0,
+    "pid": 13388,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575619826174,
+    "end": 1575619826175,
+    "duration": 1,
+    "pid": 13388,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575619826176,
+    "end": 1575619826176,
+    "duration": 0,
+    "pid": 13388,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575619826179,
+    "end": 1575619826179,
+    "duration": 0,
+    "pid": 13388,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575619826180,
+    "end": 1575619826181,
+    "duration": 1,
+    "pid": 13388,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575619826183,
+    "end": 1575619826183,
+    "duration": 0,
+    "pid": 13388,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575619826186,
+    "end": 1575619826186,
+    "duration": 0,
+    "pid": 13388,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575619826188,
+    "end": 1575619826188,
+    "duration": 0,
+    "pid": 13388,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575619826189,
+    "end": 1575619826189,
+    "duration": 0,
+    "pid": 13388,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575619826193,
+    "end": 1575619826237,
+    "duration": 44,
+    "pid": 13388,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575619826196,
+    "end": 1575619826197,
+    "duration": 1,
+    "pid": 13388,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575619826198,
+    "end": 1575619826200,
+    "duration": 2,
+    "pid": 13388,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575619826201,
+    "end": 1575619826205,
+    "duration": 4,
+    "pid": 13388,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575619826208,
+    "end": 1575619826224,
+    "duration": 16,
+    "pid": 13388,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575619826226,
+    "end": 1575619826229,
+    "duration": 3,
+    "pid": 13388,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575619826237,
+    "end": 1575619826250,
+    "duration": 13,
+    "pid": 13388,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575619826244,
+    "end": 1575619826246,
+    "duration": 2,
+    "pid": 13388,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575619826250,
+    "end": 1575619826263,
+    "duration": 13,
+    "pid": 13388,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575619826255,
+    "end": 1575619826258,
+    "duration": 3,
+    "pid": 13388,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575619826263,
+    "end": 1575619826487,
+    "duration": 224,
+    "pid": 13388,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575619826264,
+    "end": 1575619826305,
+    "duration": 41,
+    "pid": 13388,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575619826306,
+    "end": 1575619826309,
+    "duration": 3,
+    "pid": 13388,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575619826311,
+    "end": 1575619826312,
+    "duration": 1,
+    "pid": 13388,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575619826314,
+    "end": 1575619826461,
+    "duration": 147,
+    "pid": 13388,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575619826464,
+    "end": 1575619826471,
+    "duration": 7,
+    "pid": 13388,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575619826472,
+    "end": 1575619826473,
+    "duration": 1,
+    "pid": 13388,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575619826474,
+    "end": 1575619826480,
+    "duration": 6,
+    "pid": 13388,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575619826487,
+    "end": 1575619826554,
+    "duration": 67,
+    "pid": 13388,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575619826489,
+    "end": 1575619826536,
+    "duration": 47,
+    "pid": 13388,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575619826545,
+    "end": 1575619826546,
+    "duration": 1,
+    "pid": 13388,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575619826554,
+    "end": 1575619826697,
+    "duration": 143,
+    "pid": 13388,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575619826555,
+    "end": 1575619826556,
+    "duration": 1,
+    "pid": 13388,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575619826557,
+    "end": 1575619826562,
+    "duration": 5,
+    "pid": 13388,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575619826563,
+    "end": 1575619826586,
+    "duration": 23,
+    "pid": 13388,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575619826588,
+    "end": 1575619826614,
+    "duration": 26,
+    "pid": 13388,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575619826615,
+    "end": 1575619826629,
+    "duration": 14,
+    "pid": 13388,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575619826629,
+    "end": 1575619826632,
+    "duration": 3,
+    "pid": 13388,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575619826633,
+    "end": 1575619826643,
+    "duration": 10,
+    "pid": 13388,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575619826644,
+    "end": 1575619826644,
+    "duration": 0,
+    "pid": 13388,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575619826645,
+    "end": 1575619826646,
+    "duration": 1,
+    "pid": 13388,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575619826648,
+    "end": 1575619826648,
+    "duration": 0,
+    "pid": 13388,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575619826650,
+    "end": 1575619826689,
+    "duration": 39,
+    "pid": 13388,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575619826690,
+    "end": 1575619826694,
+    "duration": 4,
+    "pid": 13388,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575619826731,
+    "end": 1575619829597,
+    "duration": 2866,
+    "pid": 13388,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575619826908,
+    "end": 1575619829604,
+    "duration": 2696,
+    "pid": 13388,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575619826908,
+    "end": 1575619826922,
+    "duration": 14,
+    "pid": 13388,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575619826908,
+    "end": 1575619826922,
+    "duration": 14,
+    "pid": 13388,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575619826923,
+    "end": 1575619827052,
+    "duration": 129,
+    "pid": 13388,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575619826923,
+    "end": 1575619827036,
+    "duration": 113,
+    "pid": 13388,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575619827052,
+    "end": 1575619829512,
+    "duration": 2460,
+    "pid": 13388,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575619827052,
+    "end": 1575619829512,
+    "duration": 2460,
+    "pid": 13388,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575619829512,
+    "end": 1575619829517,
+    "duration": 5,
+    "pid": 13388,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575619829513,
+    "end": 1575619829515,
+    "duration": 2,
+    "pid": 13388,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575619829516,
+    "end": 1575619829540,
+    "duration": 24,
+    "pid": 13388,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_13420.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575617970368,
+    "end": 1575617973551,
+    "duration": 3183,
+    "pid": 13420,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575617970376,
+    "end": 1575617970424,
+    "duration": 48,
+    "pid": 13420,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575617970424,
+    "end": 1575617970480,
+    "duration": 56,
+    "pid": 13420,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575617970426,
+    "end": 1575617970429,
+    "duration": 3,
+    "pid": 13420,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575617970431,
+    "end": 1575617970433,
+    "duration": 2,
+    "pid": 13420,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575617970434,
+    "end": 1575617970435,
+    "duration": 1,
+    "pid": 13420,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575617970436,
+    "end": 1575617970436,
+    "duration": 0,
+    "pid": 13420,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575617970438,
+    "end": 1575617970439,
+    "duration": 1,
+    "pid": 13420,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575617970440,
+    "end": 1575617970441,
+    "duration": 1,
+    "pid": 13420,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575617970442,
+    "end": 1575617970442,
+    "duration": 0,
+    "pid": 13420,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575617970444,
+    "end": 1575617970445,
+    "duration": 1,
+    "pid": 13420,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575617970447,
+    "end": 1575617970451,
+    "duration": 4,
+    "pid": 13420,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575617970452,
+    "end": 1575617970453,
+    "duration": 1,
+    "pid": 13420,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575617970455,
+    "end": 1575617970455,
+    "duration": 0,
+    "pid": 13420,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575617970456,
+    "end": 1575617970457,
+    "duration": 1,
+    "pid": 13420,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575617970458,
+    "end": 1575617970459,
+    "duration": 1,
+    "pid": 13420,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575617970460,
+    "end": 1575617970461,
+    "duration": 1,
+    "pid": 13420,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575617970463,
+    "end": 1575617970463,
+    "duration": 0,
+    "pid": 13420,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575617970465,
+    "end": 1575617970465,
+    "duration": 0,
+    "pid": 13420,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575617970466,
+    "end": 1575617970467,
+    "duration": 1,
+    "pid": 13420,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575617970470,
+    "end": 1575617970470,
+    "duration": 0,
+    "pid": 13420,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575617970471,
+    "end": 1575617970472,
+    "duration": 1,
+    "pid": 13420,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575617970474,
+    "end": 1575617970474,
+    "duration": 0,
+    "pid": 13420,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575617970477,
+    "end": 1575617970477,
+    "duration": 0,
+    "pid": 13420,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575617970479,
+    "end": 1575617970479,
+    "duration": 0,
+    "pid": 13420,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575617970479,
+    "end": 1575617970479,
+    "duration": 0,
+    "pid": 13420,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575617970482,
+    "end": 1575617970522,
+    "duration": 40,
+    "pid": 13420,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575617970483,
+    "end": 1575617970484,
+    "duration": 1,
+    "pid": 13420,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575617970485,
+    "end": 1575617970488,
+    "duration": 3,
+    "pid": 13420,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575617970489,
+    "end": 1575617970493,
+    "duration": 4,
+    "pid": 13420,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575617970496,
+    "end": 1575617970512,
+    "duration": 16,
+    "pid": 13420,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575617970515,
+    "end": 1575617970517,
+    "duration": 2,
+    "pid": 13420,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575617970522,
+    "end": 1575617970536,
+    "duration": 14,
+    "pid": 13420,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575617970528,
+    "end": 1575617970532,
+    "duration": 4,
+    "pid": 13420,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575617970536,
+    "end": 1575617970547,
+    "duration": 11,
+    "pid": 13420,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575617970540,
+    "end": 1575617970543,
+    "duration": 3,
+    "pid": 13420,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575617970547,
+    "end": 1575617970675,
+    "duration": 128,
+    "pid": 13420,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575617970548,
+    "end": 1575617970572,
+    "duration": 24,
+    "pid": 13420,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575617970572,
+    "end": 1575617970574,
+    "duration": 2,
+    "pid": 13420,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575617970575,
+    "end": 1575617970576,
+    "duration": 1,
+    "pid": 13420,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575617970577,
+    "end": 1575617970660,
+    "duration": 83,
+    "pid": 13420,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575617970662,
+    "end": 1575617970664,
+    "duration": 2,
+    "pid": 13420,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575617970666,
+    "end": 1575617970667,
+    "duration": 1,
+    "pid": 13420,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575617970668,
+    "end": 1575617970671,
+    "duration": 3,
+    "pid": 13420,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575617970676,
+    "end": 1575617970711,
+    "duration": 35,
+    "pid": 13420,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575617970676,
+    "end": 1575617970702,
+    "duration": 26,
+    "pid": 13420,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575617970707,
+    "end": 1575617970707,
+    "duration": 0,
+    "pid": 13420,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575617970711,
+    "end": 1575617970802,
+    "duration": 91,
+    "pid": 13420,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575617970712,
+    "end": 1575617970713,
+    "duration": 1,
+    "pid": 13420,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575617970713,
+    "end": 1575617970716,
+    "duration": 3,
+    "pid": 13420,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575617970717,
+    "end": 1575617970732,
+    "duration": 15,
+    "pid": 13420,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575617970733,
+    "end": 1575617970749,
+    "duration": 16,
+    "pid": 13420,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575617970749,
+    "end": 1575617970755,
+    "duration": 6,
+    "pid": 13420,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575617970756,
+    "end": 1575617970758,
+    "duration": 2,
+    "pid": 13420,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575617970759,
+    "end": 1575617970764,
+    "duration": 5,
+    "pid": 13420,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575617970765,
+    "end": 1575617970765,
+    "duration": 0,
+    "pid": 13420,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575617970766,
+    "end": 1575617970766,
+    "duration": 0,
+    "pid": 13420,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575617970767,
+    "end": 1575617970767,
+    "duration": 0,
+    "pid": 13420,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575617970768,
+    "end": 1575617970796,
+    "duration": 28,
+    "pid": 13420,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575617970797,
+    "end": 1575617970800,
+    "duration": 3,
+    "pid": 13420,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575617970826,
+    "end": 1575617973504,
+    "duration": 2678,
+    "pid": 13420,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575617971008,
+    "end": 1575617973547,
+    "duration": 2539,
+    "pid": 13420,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575617971008,
+    "end": 1575617973218,
+    "duration": 2210,
+    "pid": 13420,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575617971008,
+    "end": 1575617973218,
+    "duration": 2210,
+    "pid": 13420,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575617973218,
+    "end": 1575617973374,
+    "duration": 156,
+    "pid": 13420,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575617973219,
+    "end": 1575617973353,
+    "duration": 134,
+    "pid": 13420,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575617973374,
+    "end": 1575617973389,
+    "duration": 15,
+    "pid": 13420,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575617973374,
+    "end": 1575617973389,
+    "duration": 15,
+    "pid": 13420,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575617973389,
+    "end": 1575617973395,
+    "duration": 6,
+    "pid": 13420,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575617973390,
+    "end": 1575617973392,
+    "duration": 2,
+    "pid": 13420,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575617973392,
+    "end": 1575617973442,
+    "duration": 50,
+    "pid": 13420,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_14348.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575620488455,
+    "end": 1575620491951,
+    "duration": 3496,
+    "pid": 14348,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575620488464,
+    "end": 1575620488507,
+    "duration": 43,
+    "pid": 14348,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575620488507,
+    "end": 1575620488566,
+    "duration": 59,
+    "pid": 14348,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575620488509,
+    "end": 1575620488510,
+    "duration": 1,
+    "pid": 14348,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575620488512,
+    "end": 1575620488513,
+    "duration": 1,
+    "pid": 14348,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575620488514,
+    "end": 1575620488514,
+    "duration": 0,
+    "pid": 14348,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575620488515,
+    "end": 1575620488516,
+    "duration": 1,
+    "pid": 14348,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575620488518,
+    "end": 1575620488518,
+    "duration": 0,
+    "pid": 14348,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575620488519,
+    "end": 1575620488519,
+    "duration": 0,
+    "pid": 14348,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575620488520,
+    "end": 1575620488520,
+    "duration": 0,
+    "pid": 14348,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575620488522,
+    "end": 1575620488522,
+    "duration": 0,
+    "pid": 14348,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575620488523,
+    "end": 1575620488526,
+    "duration": 3,
+    "pid": 14348,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575620488527,
+    "end": 1575620488528,
+    "duration": 1,
+    "pid": 14348,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575620488529,
+    "end": 1575620488530,
+    "duration": 1,
+    "pid": 14348,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575620488532,
+    "end": 1575620488532,
+    "duration": 0,
+    "pid": 14348,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575620488533,
+    "end": 1575620488534,
+    "duration": 1,
+    "pid": 14348,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575620488535,
+    "end": 1575620488544,
+    "duration": 9,
+    "pid": 14348,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575620488545,
+    "end": 1575620488546,
+    "duration": 1,
+    "pid": 14348,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575620488547,
+    "end": 1575620488547,
+    "duration": 0,
+    "pid": 14348,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575620488548,
+    "end": 1575620488549,
+    "duration": 1,
+    "pid": 14348,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575620488551,
+    "end": 1575620488552,
+    "duration": 1,
+    "pid": 14348,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575620488554,
+    "end": 1575620488555,
+    "duration": 1,
+    "pid": 14348,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575620488557,
+    "end": 1575620488558,
+    "duration": 1,
+    "pid": 14348,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575620488562,
+    "end": 1575620488562,
+    "duration": 0,
+    "pid": 14348,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575620488565,
+    "end": 1575620488566,
+    "duration": 1,
+    "pid": 14348,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575620488566,
+    "end": 1575620488566,
+    "duration": 0,
+    "pid": 14348,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575620488569,
+    "end": 1575620488621,
+    "duration": 52,
+    "pid": 14348,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575620488571,
+    "end": 1575620488572,
+    "duration": 1,
+    "pid": 14348,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575620488573,
+    "end": 1575620488576,
+    "duration": 3,
+    "pid": 14348,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575620488577,
+    "end": 1575620488584,
+    "duration": 7,
+    "pid": 14348,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575620488587,
+    "end": 1575620488606,
+    "duration": 19,
+    "pid": 14348,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575620488607,
+    "end": 1575620488611,
+    "duration": 4,
+    "pid": 14348,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575620488621,
+    "end": 1575620488640,
+    "duration": 19,
+    "pid": 14348,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575620488629,
+    "end": 1575620488632,
+    "duration": 3,
+    "pid": 14348,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575620488640,
+    "end": 1575620488673,
+    "duration": 33,
+    "pid": 14348,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575620488647,
+    "end": 1575620488651,
+    "duration": 4,
+    "pid": 14348,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575620488673,
+    "end": 1575620488869,
+    "duration": 196,
+    "pid": 14348,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575620488675,
+    "end": 1575620488714,
+    "duration": 39,
+    "pid": 14348,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575620488714,
+    "end": 1575620488721,
+    "duration": 7,
+    "pid": 14348,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575620488723,
+    "end": 1575620488723,
+    "duration": 0,
+    "pid": 14348,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575620488725,
+    "end": 1575620488850,
+    "duration": 125,
+    "pid": 14348,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575620488852,
+    "end": 1575620488854,
+    "duration": 2,
+    "pid": 14348,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575620488855,
+    "end": 1575620488856,
+    "duration": 1,
+    "pid": 14348,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575620488857,
+    "end": 1575620488861,
+    "duration": 4,
+    "pid": 14348,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575620488869,
+    "end": 1575620488932,
+    "duration": 63,
+    "pid": 14348,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575620488871,
+    "end": 1575620488920,
+    "duration": 49,
+    "pid": 14348,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575620488926,
+    "end": 1575620488926,
+    "duration": 0,
+    "pid": 14348,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575620488933,
+    "end": 1575620489026,
+    "duration": 93,
+    "pid": 14348,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575620488933,
+    "end": 1575620488934,
+    "duration": 1,
+    "pid": 14348,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575620488935,
+    "end": 1575620488939,
+    "duration": 4,
+    "pid": 14348,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575620488940,
+    "end": 1575620488958,
+    "duration": 18,
+    "pid": 14348,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575620488958,
+    "end": 1575620488975,
+    "duration": 17,
+    "pid": 14348,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575620488975,
+    "end": 1575620488984,
+    "duration": 9,
+    "pid": 14348,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575620488984,
+    "end": 1575620488987,
+    "duration": 3,
+    "pid": 14348,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575620488988,
+    "end": 1575620488992,
+    "duration": 4,
+    "pid": 14348,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575620488992,
+    "end": 1575620488993,
+    "duration": 1,
+    "pid": 14348,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575620488994,
+    "end": 1575620488994,
+    "duration": 0,
+    "pid": 14348,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575620488995,
+    "end": 1575620488995,
+    "duration": 0,
+    "pid": 14348,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575620488996,
+    "end": 1575620489022,
+    "duration": 26,
+    "pid": 14348,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575620489022,
+    "end": 1575620489025,
+    "duration": 3,
+    "pid": 14348,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575620489043,
+    "end": 1575620491942,
+    "duration": 2899,
+    "pid": 14348,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575620489266,
+    "end": 1575620491949,
+    "duration": 2683,
+    "pid": 14348,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575620489266,
+    "end": 1575620489280,
+    "duration": 14,
+    "pid": 14348,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575620489266,
+    "end": 1575620489280,
+    "duration": 14,
+    "pid": 14348,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575620489281,
+    "end": 1575620489464,
+    "duration": 183,
+    "pid": 14348,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575620489281,
+    "end": 1575620489449,
+    "duration": 168,
+    "pid": 14348,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575620489464,
+    "end": 1575620491847,
+    "duration": 2383,
+    "pid": 14348,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575620489464,
+    "end": 1575620491847,
+    "duration": 2383,
+    "pid": 14348,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575620491847,
+    "end": 1575620491851,
+    "duration": 4,
+    "pid": 14348,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575620491847,
+    "end": 1575620491849,
+    "duration": 2,
+    "pid": 14348,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575620491849,
+    "end": 1575620491881,
+    "duration": 32,
+    "pid": 14348,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_16468.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575619808100,
+    "end": 1575619811823,
+    "duration": 3723,
+    "pid": 16468,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575619808109,
+    "end": 1575619808149,
+    "duration": 40,
+    "pid": 16468,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575619808150,
+    "end": 1575619808243,
+    "duration": 93,
+    "pid": 16468,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575619808152,
+    "end": 1575619808153,
+    "duration": 1,
+    "pid": 16468,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575619808155,
+    "end": 1575619808156,
+    "duration": 1,
+    "pid": 16468,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575619808159,
+    "end": 1575619808159,
+    "duration": 0,
+    "pid": 16468,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575619808160,
+    "end": 1575619808161,
+    "duration": 1,
+    "pid": 16468,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575619808162,
+    "end": 1575619808162,
+    "duration": 0,
+    "pid": 16468,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575619808164,
+    "end": 1575619808164,
+    "duration": 0,
+    "pid": 16468,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575619808165,
+    "end": 1575619808167,
+    "duration": 2,
+    "pid": 16468,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575619808170,
+    "end": 1575619808171,
+    "duration": 1,
+    "pid": 16468,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575619808174,
+    "end": 1575619808177,
+    "duration": 3,
+    "pid": 16468,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575619808178,
+    "end": 1575619808179,
+    "duration": 1,
+    "pid": 16468,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575619808181,
+    "end": 1575619808181,
+    "duration": 0,
+    "pid": 16468,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575619808183,
+    "end": 1575619808183,
+    "duration": 0,
+    "pid": 16468,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575619808185,
+    "end": 1575619808186,
+    "duration": 1,
+    "pid": 16468,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575619808187,
+    "end": 1575619808188,
+    "duration": 1,
+    "pid": 16468,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575619808189,
+    "end": 1575619808190,
+    "duration": 1,
+    "pid": 16468,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575619808192,
+    "end": 1575619808192,
+    "duration": 0,
+    "pid": 16468,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575619808193,
+    "end": 1575619808194,
+    "duration": 1,
+    "pid": 16468,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575619808201,
+    "end": 1575619808201,
+    "duration": 0,
+    "pid": 16468,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575619808232,
+    "end": 1575619808233,
+    "duration": 1,
+    "pid": 16468,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575619808237,
+    "end": 1575619808237,
+    "duration": 0,
+    "pid": 16468,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575619808240,
+    "end": 1575619808241,
+    "duration": 1,
+    "pid": 16468,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575619808242,
+    "end": 1575619808243,
+    "duration": 1,
+    "pid": 16468,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575619808243,
+    "end": 1575619808243,
+    "duration": 0,
+    "pid": 16468,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575619808246,
+    "end": 1575619808296,
+    "duration": 50,
+    "pid": 16468,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575619808247,
+    "end": 1575619808248,
+    "duration": 1,
+    "pid": 16468,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575619808250,
+    "end": 1575619808254,
+    "duration": 4,
+    "pid": 16468,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575619808255,
+    "end": 1575619808259,
+    "duration": 4,
+    "pid": 16468,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575619808263,
+    "end": 1575619808282,
+    "duration": 19,
+    "pid": 16468,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575619808284,
+    "end": 1575619808288,
+    "duration": 4,
+    "pid": 16468,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575619808296,
+    "end": 1575619808317,
+    "duration": 21,
+    "pid": 16468,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575619808307,
+    "end": 1575619808311,
+    "duration": 4,
+    "pid": 16468,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575619808317,
+    "end": 1575619808330,
+    "duration": 13,
+    "pid": 16468,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575619808323,
+    "end": 1575619808326,
+    "duration": 3,
+    "pid": 16468,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575619808330,
+    "end": 1575619808550,
+    "duration": 220,
+    "pid": 16468,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575619808331,
+    "end": 1575619808376,
+    "duration": 45,
+    "pid": 16468,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575619808377,
+    "end": 1575619808380,
+    "duration": 3,
+    "pid": 16468,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575619808382,
+    "end": 1575619808383,
+    "duration": 1,
+    "pid": 16468,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575619808385,
+    "end": 1575619808525,
+    "duration": 140,
+    "pid": 16468,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575619808527,
+    "end": 1575619808532,
+    "duration": 5,
+    "pid": 16468,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575619808536,
+    "end": 1575619808537,
+    "duration": 1,
+    "pid": 16468,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575619808537,
+    "end": 1575619808543,
+    "duration": 6,
+    "pid": 16468,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575619808550,
+    "end": 1575619808616,
+    "duration": 66,
+    "pid": 16468,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575619808552,
+    "end": 1575619808596,
+    "duration": 44,
+    "pid": 16468,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575619808607,
+    "end": 1575619808608,
+    "duration": 1,
+    "pid": 16468,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575619808617,
+    "end": 1575619808761,
+    "duration": 144,
+    "pid": 16468,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575619808618,
+    "end": 1575619808618,
+    "duration": 0,
+    "pid": 16468,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575619808619,
+    "end": 1575619808624,
+    "duration": 5,
+    "pid": 16468,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575619808626,
+    "end": 1575619808647,
+    "duration": 21,
+    "pid": 16468,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575619808648,
+    "end": 1575619808671,
+    "duration": 23,
+    "pid": 16468,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575619808673,
+    "end": 1575619808685,
+    "duration": 12,
+    "pid": 16468,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575619808686,
+    "end": 1575619808690,
+    "duration": 4,
+    "pid": 16468,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575619808690,
+    "end": 1575619808698,
+    "duration": 8,
+    "pid": 16468,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575619808699,
+    "end": 1575619808699,
+    "duration": 0,
+    "pid": 16468,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575619808700,
+    "end": 1575619808702,
+    "duration": 2,
+    "pid": 16468,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575619808703,
+    "end": 1575619808703,
+    "duration": 0,
+    "pid": 16468,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575619808705,
+    "end": 1575619808753,
+    "duration": 48,
+    "pid": 16468,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575619808753,
+    "end": 1575619808758,
+    "duration": 5,
+    "pid": 16468,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575619808785,
+    "end": 1575619811812,
+    "duration": 3027,
+    "pid": 16468,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575619808948,
+    "end": 1575619811820,
+    "duration": 2872,
+    "pid": 16468,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575619808948,
+    "end": 1575619808972,
+    "duration": 24,
+    "pid": 16468,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575619808948,
+    "end": 1575619808972,
+    "duration": 24,
+    "pid": 16468,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575619808973,
+    "end": 1575619809120,
+    "duration": 147,
+    "pid": 16468,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575619808974,
+    "end": 1575619809105,
+    "duration": 131,
+    "pid": 16468,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575619809120,
+    "end": 1575619811713,
+    "duration": 2593,
+    "pid": 16468,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575619809120,
+    "end": 1575619811713,
+    "duration": 2593,
+    "pid": 16468,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575619811713,
+    "end": 1575619811718,
+    "duration": 5,
+    "pid": 16468,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575619811713,
+    "end": 1575619811715,
+    "duration": 2,
+    "pid": 16468,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575619811715,
+    "end": 1575619811753,
+    "duration": 38,
+    "pid": 16468,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_17108.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575620032034,
+    "end": 1575620036601,
+    "duration": 4567,
+    "pid": 17108,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575620032043,
+    "end": 1575620032079,
+    "duration": 36,
+    "pid": 17108,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575620032079,
+    "end": 1575620032134,
+    "duration": 55,
+    "pid": 17108,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575620032081,
+    "end": 1575620032083,
+    "duration": 2,
+    "pid": 17108,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575620032085,
+    "end": 1575620032086,
+    "duration": 1,
+    "pid": 17108,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575620032088,
+    "end": 1575620032089,
+    "duration": 1,
+    "pid": 17108,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575620032090,
+    "end": 1575620032091,
+    "duration": 1,
+    "pid": 17108,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575620032093,
+    "end": 1575620032093,
+    "duration": 0,
+    "pid": 17108,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575620032094,
+    "end": 1575620032095,
+    "duration": 1,
+    "pid": 17108,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575620032096,
+    "end": 1575620032097,
+    "duration": 1,
+    "pid": 17108,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575620032099,
+    "end": 1575620032100,
+    "duration": 1,
+    "pid": 17108,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575620032101,
+    "end": 1575620032104,
+    "duration": 3,
+    "pid": 17108,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575620032106,
+    "end": 1575620032106,
+    "duration": 0,
+    "pid": 17108,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575620032107,
+    "end": 1575620032108,
+    "duration": 1,
+    "pid": 17108,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575620032109,
+    "end": 1575620032110,
+    "duration": 1,
+    "pid": 17108,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575620032112,
+    "end": 1575620032112,
+    "duration": 0,
+    "pid": 17108,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575620032114,
+    "end": 1575620032114,
+    "duration": 0,
+    "pid": 17108,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575620032116,
+    "end": 1575620032116,
+    "duration": 0,
+    "pid": 17108,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575620032118,
+    "end": 1575620032118,
+    "duration": 0,
+    "pid": 17108,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575620032119,
+    "end": 1575620032120,
+    "duration": 1,
+    "pid": 17108,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575620032123,
+    "end": 1575620032123,
+    "duration": 0,
+    "pid": 17108,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575620032124,
+    "end": 1575620032125,
+    "duration": 1,
+    "pid": 17108,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575620032127,
+    "end": 1575620032127,
+    "duration": 0,
+    "pid": 17108,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575620032131,
+    "end": 1575620032132,
+    "duration": 1,
+    "pid": 17108,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575620032134,
+    "end": 1575620032134,
+    "duration": 0,
+    "pid": 17108,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575620032134,
+    "end": 1575620032134,
+    "duration": 0,
+    "pid": 17108,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575620032137,
+    "end": 1575620032178,
+    "duration": 41,
+    "pid": 17108,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575620032138,
+    "end": 1575620032138,
+    "duration": 0,
+    "pid": 17108,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575620032139,
+    "end": 1575620032142,
+    "duration": 3,
+    "pid": 17108,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575620032143,
+    "end": 1575620032146,
+    "duration": 3,
+    "pid": 17108,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575620032149,
+    "end": 1575620032165,
+    "duration": 16,
+    "pid": 17108,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575620032166,
+    "end": 1575620032169,
+    "duration": 3,
+    "pid": 17108,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575620032179,
+    "end": 1575620032194,
+    "duration": 15,
+    "pid": 17108,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575620032184,
+    "end": 1575620032187,
+    "duration": 3,
+    "pid": 17108,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575620032194,
+    "end": 1575620032213,
+    "duration": 19,
+    "pid": 17108,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575620032200,
+    "end": 1575620032204,
+    "duration": 4,
+    "pid": 17108,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575620032213,
+    "end": 1575620032419,
+    "duration": 206,
+    "pid": 17108,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575620032214,
+    "end": 1575620032253,
+    "duration": 39,
+    "pid": 17108,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575620032254,
+    "end": 1575620032258,
+    "duration": 4,
+    "pid": 17108,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575620032259,
+    "end": 1575620032260,
+    "duration": 1,
+    "pid": 17108,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575620032262,
+    "end": 1575620032397,
+    "duration": 135,
+    "pid": 17108,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575620032400,
+    "end": 1575620032402,
+    "duration": 2,
+    "pid": 17108,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575620032403,
+    "end": 1575620032404,
+    "duration": 1,
+    "pid": 17108,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575620032405,
+    "end": 1575620032411,
+    "duration": 6,
+    "pid": 17108,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575620032419,
+    "end": 1575620032494,
+    "duration": 75,
+    "pid": 17108,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575620032420,
+    "end": 1575620032480,
+    "duration": 60,
+    "pid": 17108,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575620032487,
+    "end": 1575620032488,
+    "duration": 1,
+    "pid": 17108,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575620032497,
+    "end": 1575620032647,
+    "duration": 150,
+    "pid": 17108,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575620032498,
+    "end": 1575620032499,
+    "duration": 1,
+    "pid": 17108,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575620032500,
+    "end": 1575620032504,
+    "duration": 4,
+    "pid": 17108,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575620032505,
+    "end": 1575620032530,
+    "duration": 25,
+    "pid": 17108,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575620032538,
+    "end": 1575620032565,
+    "duration": 27,
+    "pid": 17108,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575620032566,
+    "end": 1575620032576,
+    "duration": 10,
+    "pid": 17108,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575620032577,
+    "end": 1575620032581,
+    "duration": 4,
+    "pid": 17108,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575620032582,
+    "end": 1575620032589,
+    "duration": 7,
+    "pid": 17108,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575620032590,
+    "end": 1575620032591,
+    "duration": 1,
+    "pid": 17108,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575620032592,
+    "end": 1575620032592,
+    "duration": 0,
+    "pid": 17108,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575620032593,
+    "end": 1575620032594,
+    "duration": 1,
+    "pid": 17108,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575620032596,
+    "end": 1575620032640,
+    "duration": 44,
+    "pid": 17108,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575620032641,
+    "end": 1575620032645,
+    "duration": 4,
+    "pid": 17108,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575620032700,
+    "end": 1575620036593,
+    "duration": 3893,
+    "pid": 17108,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575620032928,
+    "end": 1575620036599,
+    "duration": 3671,
+    "pid": 17108,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575620032929,
+    "end": 1575620032953,
+    "duration": 24,
+    "pid": 17108,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575620032929,
+    "end": 1575620032953,
+    "duration": 24,
+    "pid": 17108,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575620032953,
+    "end": 1575620033111,
+    "duration": 158,
+    "pid": 17108,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575620032953,
+    "end": 1575620033096,
+    "duration": 143,
+    "pid": 17108,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575620033111,
+    "end": 1575620036434,
+    "duration": 3323,
+    "pid": 17108,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575620033111,
+    "end": 1575620036434,
+    "duration": 3323,
+    "pid": 17108,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575620036435,
+    "end": 1575620036453,
+    "duration": 18,
+    "pid": 17108,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575620036436,
+    "end": 1575620036447,
+    "duration": 11,
+    "pid": 17108,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575620036447,
+    "end": 1575620036506,
+    "duration": 59,
+    "pid": 17108,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_18108.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575620118349,
+    "end": 1575620122500,
+    "duration": 4151,
+    "pid": 18108,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575620118356,
+    "end": 1575620118401,
+    "duration": 45,
+    "pid": 18108,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575620118402,
+    "end": 1575620118449,
+    "duration": 47,
+    "pid": 18108,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575620118403,
+    "end": 1575620118404,
+    "duration": 1,
+    "pid": 18108,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575620118407,
+    "end": 1575620118408,
+    "duration": 1,
+    "pid": 18108,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575620118409,
+    "end": 1575620118409,
+    "duration": 0,
+    "pid": 18108,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575620118411,
+    "end": 1575620118412,
+    "duration": 1,
+    "pid": 18108,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575620118413,
+    "end": 1575620118414,
+    "duration": 1,
+    "pid": 18108,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575620118415,
+    "end": 1575620118416,
+    "duration": 1,
+    "pid": 18108,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575620118417,
+    "end": 1575620118418,
+    "duration": 1,
+    "pid": 18108,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575620118420,
+    "end": 1575620118422,
+    "duration": 2,
+    "pid": 18108,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575620118423,
+    "end": 1575620118426,
+    "duration": 3,
+    "pid": 18108,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575620118428,
+    "end": 1575620118428,
+    "duration": 0,
+    "pid": 18108,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575620118429,
+    "end": 1575620118430,
+    "duration": 1,
+    "pid": 18108,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575620118431,
+    "end": 1575620118431,
+    "duration": 0,
+    "pid": 18108,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575620118432,
+    "end": 1575620118432,
+    "duration": 0,
+    "pid": 18108,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575620118433,
+    "end": 1575620118434,
+    "duration": 1,
+    "pid": 18108,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575620118435,
+    "end": 1575620118435,
+    "duration": 0,
+    "pid": 18108,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575620118436,
+    "end": 1575620118437,
+    "duration": 1,
+    "pid": 18108,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575620118438,
+    "end": 1575620118438,
+    "duration": 0,
+    "pid": 18108,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575620118440,
+    "end": 1575620118440,
+    "duration": 0,
+    "pid": 18108,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575620118441,
+    "end": 1575620118441,
+    "duration": 0,
+    "pid": 18108,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575620118444,
+    "end": 1575620118444,
+    "duration": 0,
+    "pid": 18108,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575620118447,
+    "end": 1575620118447,
+    "duration": 0,
+    "pid": 18108,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575620118448,
+    "end": 1575620118449,
+    "duration": 1,
+    "pid": 18108,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575620118449,
+    "end": 1575620118449,
+    "duration": 0,
+    "pid": 18108,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575620118451,
+    "end": 1575620118490,
+    "duration": 39,
+    "pid": 18108,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575620118452,
+    "end": 1575620118452,
+    "duration": 0,
+    "pid": 18108,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575620118453,
+    "end": 1575620118456,
+    "duration": 3,
+    "pid": 18108,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575620118457,
+    "end": 1575620118461,
+    "duration": 4,
+    "pid": 18108,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575620118465,
+    "end": 1575620118480,
+    "duration": 15,
+    "pid": 18108,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575620118481,
+    "end": 1575620118485,
+    "duration": 4,
+    "pid": 18108,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575620118490,
+    "end": 1575620118516,
+    "duration": 26,
+    "pid": 18108,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575620118501,
+    "end": 1575620118506,
+    "duration": 5,
+    "pid": 18108,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575620118516,
+    "end": 1575620118561,
+    "duration": 45,
+    "pid": 18108,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575620118524,
+    "end": 1575620118549,
+    "duration": 25,
+    "pid": 18108,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575620118561,
+    "end": 1575620118741,
+    "duration": 180,
+    "pid": 18108,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575620118562,
+    "end": 1575620118622,
+    "duration": 60,
+    "pid": 18108,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575620118623,
+    "end": 1575620118625,
+    "duration": 2,
+    "pid": 18108,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575620118626,
+    "end": 1575620118628,
+    "duration": 2,
+    "pid": 18108,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575620118631,
+    "end": 1575620118716,
+    "duration": 85,
+    "pid": 18108,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575620118717,
+    "end": 1575620118719,
+    "duration": 2,
+    "pid": 18108,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575620118723,
+    "end": 1575620118724,
+    "duration": 1,
+    "pid": 18108,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575620118725,
+    "end": 1575620118732,
+    "duration": 7,
+    "pid": 18108,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575620118742,
+    "end": 1575620118824,
+    "duration": 82,
+    "pid": 18108,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575620118747,
+    "end": 1575620118809,
+    "duration": 62,
+    "pid": 18108,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575620118815,
+    "end": 1575620118816,
+    "duration": 1,
+    "pid": 18108,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575620118825,
+    "end": 1575620118946,
+    "duration": 121,
+    "pid": 18108,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575620118826,
+    "end": 1575620118827,
+    "duration": 1,
+    "pid": 18108,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575620118829,
+    "end": 1575620118834,
+    "duration": 5,
+    "pid": 18108,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575620118836,
+    "end": 1575620118855,
+    "duration": 19,
+    "pid": 18108,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575620118856,
+    "end": 1575620118876,
+    "duration": 20,
+    "pid": 18108,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575620118877,
+    "end": 1575620118888,
+    "duration": 11,
+    "pid": 18108,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575620118889,
+    "end": 1575620118891,
+    "duration": 2,
+    "pid": 18108,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575620118892,
+    "end": 1575620118898,
+    "duration": 6,
+    "pid": 18108,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575620118899,
+    "end": 1575620118900,
+    "duration": 1,
+    "pid": 18108,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575620118901,
+    "end": 1575620118902,
+    "duration": 1,
+    "pid": 18108,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575620118902,
+    "end": 1575620118903,
+    "duration": 1,
+    "pid": 18108,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575620118904,
+    "end": 1575620118938,
+    "duration": 34,
+    "pid": 18108,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575620118939,
+    "end": 1575620118943,
+    "duration": 4,
+    "pid": 18108,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575620118971,
+    "end": 1575620122488,
+    "duration": 3517,
+    "pid": 18108,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575620119171,
+    "end": 1575620122497,
+    "duration": 3326,
+    "pid": 18108,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575620119171,
+    "end": 1575620122166,
+    "duration": 2995,
+    "pid": 18108,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575620119171,
+    "end": 1575620122166,
+    "duration": 2995,
+    "pid": 18108,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575620122167,
+    "end": 1575620122368,
+    "duration": 201,
+    "pid": 18108,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575620122167,
+    "end": 1575620122348,
+    "duration": 181,
+    "pid": 18108,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575620122368,
+    "end": 1575620122383,
+    "duration": 15,
+    "pid": 18108,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575620122368,
+    "end": 1575620122383,
+    "duration": 15,
+    "pid": 18108,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575620122383,
+    "end": 1575620122391,
+    "duration": 8,
+    "pid": 18108,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575620122384,
+    "end": 1575620122387,
+    "duration": 3,
+    "pid": 18108,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575620122387,
+    "end": 1575620122423,
+    "duration": 36,
+    "pid": 18108,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_19672.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575618120846,
+    "end": 1575618121987,
+    "duration": 1141,
+    "pid": 19672,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575618120853,
+    "end": 1575618120922,
+    "duration": 69,
+    "pid": 19672,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575618120922,
+    "end": 1575618120978,
+    "duration": 56,
+    "pid": 19672,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575618120924,
+    "end": 1575618120926,
+    "duration": 2,
+    "pid": 19672,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575618120929,
+    "end": 1575618120930,
+    "duration": 1,
+    "pid": 19672,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575618120932,
+    "end": 1575618120932,
+    "duration": 0,
+    "pid": 19672,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575618120934,
+    "end": 1575618120935,
+    "duration": 1,
+    "pid": 19672,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575618120937,
+    "end": 1575618120938,
+    "duration": 1,
+    "pid": 19672,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575618120939,
+    "end": 1575618120939,
+    "duration": 0,
+    "pid": 19672,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575618120940,
+    "end": 1575618120940,
+    "duration": 0,
+    "pid": 19672,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575618120945,
+    "end": 1575618120946,
+    "duration": 1,
+    "pid": 19672,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575618120947,
+    "end": 1575618120950,
+    "duration": 3,
+    "pid": 19672,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575618120951,
+    "end": 1575618120951,
+    "duration": 0,
+    "pid": 19672,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575618120953,
+    "end": 1575618120953,
+    "duration": 0,
+    "pid": 19672,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575618120954,
+    "end": 1575618120954,
+    "duration": 0,
+    "pid": 19672,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575618120955,
+    "end": 1575618120956,
+    "duration": 1,
+    "pid": 19672,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575618120960,
+    "end": 1575618120961,
+    "duration": 1,
+    "pid": 19672,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575618120962,
+    "end": 1575618120963,
+    "duration": 1,
+    "pid": 19672,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575618120964,
+    "end": 1575618120964,
+    "duration": 0,
+    "pid": 19672,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575618120966,
+    "end": 1575618120967,
+    "duration": 1,
+    "pid": 19672,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575618120968,
+    "end": 1575618120968,
+    "duration": 0,
+    "pid": 19672,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575618120969,
+    "end": 1575618120969,
+    "duration": 0,
+    "pid": 19672,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575618120971,
+    "end": 1575618120971,
+    "duration": 0,
+    "pid": 19672,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575618120974,
+    "end": 1575618120975,
+    "duration": 1,
+    "pid": 19672,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575618120977,
+    "end": 1575618120977,
+    "duration": 0,
+    "pid": 19672,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575618120978,
+    "end": 1575618120978,
+    "duration": 0,
+    "pid": 19672,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575618120980,
+    "end": 1575618121017,
+    "duration": 37,
+    "pid": 19672,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575618120981,
+    "end": 1575618120982,
+    "duration": 1,
+    "pid": 19672,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575618120984,
+    "end": 1575618120985,
+    "duration": 1,
+    "pid": 19672,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575618120986,
+    "end": 1575618120989,
+    "duration": 3,
+    "pid": 19672,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575618120993,
+    "end": 1575618121004,
+    "duration": 11,
+    "pid": 19672,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575618121006,
+    "end": 1575618121011,
+    "duration": 5,
+    "pid": 19672,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575618121017,
+    "end": 1575618121036,
+    "duration": 19,
+    "pid": 19672,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575618121026,
+    "end": 1575618121029,
+    "duration": 3,
+    "pid": 19672,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575618121036,
+    "end": 1575618121057,
+    "duration": 21,
+    "pid": 19672,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575618121045,
+    "end": 1575618121050,
+    "duration": 5,
+    "pid": 19672,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575618121058,
+    "end": 1575618121260,
+    "duration": 202,
+    "pid": 19672,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575618121060,
+    "end": 1575618121112,
+    "duration": 52,
+    "pid": 19672,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575618121114,
+    "end": 1575618121117,
+    "duration": 3,
+    "pid": 19672,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575618121118,
+    "end": 1575618121118,
+    "duration": 0,
+    "pid": 19672,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575618121120,
+    "end": 1575618121238,
+    "duration": 118,
+    "pid": 19672,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575618121240,
+    "end": 1575618121244,
+    "duration": 4,
+    "pid": 19672,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575618121246,
+    "end": 1575618121247,
+    "duration": 1,
+    "pid": 19672,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575618121249,
+    "end": 1575618121254,
+    "duration": 5,
+    "pid": 19672,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575618121260,
+    "end": 1575618121308,
+    "duration": 48,
+    "pid": 19672,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575618121261,
+    "end": 1575618121297,
+    "duration": 36,
+    "pid": 19672,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575618121302,
+    "end": 1575618121303,
+    "duration": 1,
+    "pid": 19672,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575618121308,
+    "end": 1575618121458,
+    "duration": 150,
+    "pid": 19672,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575618121309,
+    "end": 1575618121311,
+    "duration": 2,
+    "pid": 19672,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575618121312,
+    "end": 1575618121318,
+    "duration": 6,
+    "pid": 19672,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575618121320,
+    "end": 1575618121342,
+    "duration": 22,
+    "pid": 19672,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575618121343,
+    "end": 1575618121370,
+    "duration": 27,
+    "pid": 19672,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575618121370,
+    "end": 1575618121385,
+    "duration": 15,
+    "pid": 19672,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575618121386,
+    "end": 1575618121393,
+    "duration": 7,
+    "pid": 19672,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575618121393,
+    "end": 1575618121404,
+    "duration": 11,
+    "pid": 19672,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575618121405,
+    "end": 1575618121405,
+    "duration": 0,
+    "pid": 19672,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575618121406,
+    "end": 1575618121407,
+    "duration": 1,
+    "pid": 19672,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575618121408,
+    "end": 1575618121409,
+    "duration": 1,
+    "pid": 19672,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575618121412,
+    "end": 1575618121451,
+    "duration": 39,
+    "pid": 19672,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575618121452,
+    "end": 1575618121455,
+    "duration": 3,
+    "pid": 19672,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575618121483,
+    "end": 1575618121977,
+    "duration": 494,
+    "pid": 19672,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575618121722,
+    "end": 1575618121984,
+    "duration": 262,
+    "pid": 19672,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575618121723,
+    "end": 1575618121739,
+    "duration": 16,
+    "pid": 19672,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575618121723,
+    "end": 1575618121739,
+    "duration": 16,
+    "pid": 19672,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575618121739,
+    "end": 1575618121909,
+    "duration": 170,
+    "pid": 19672,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575618121739,
+    "end": 1575618121892,
+    "duration": 153,
+    "pid": 19672,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575618121909,
+    "end": 1575618121921,
+    "duration": 12,
+    "pid": 19672,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575618121909,
+    "end": 1575618121921,
+    "duration": 12,
+    "pid": 19672,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575618121921,
+    "end": 1575618121926,
+    "duration": 5,
+    "pid": 19672,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575618121922,
+    "end": 1575618121924,
+    "duration": 2,
+    "pid": 19672,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575618121924,
+    "end": 1575618121945,
+    "duration": 21,
+    "pid": 19672,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_19716.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575620647541,
+    "end": 1575620652891,
+    "duration": 5350,
+    "pid": 19716,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575620647566,
+    "end": 1575620647655,
+    "duration": 89,
+    "pid": 19716,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575620647656,
+    "end": 1575620647741,
+    "duration": 85,
+    "pid": 19716,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575620647658,
+    "end": 1575620647659,
+    "duration": 1,
+    "pid": 19716,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575620647669,
+    "end": 1575620647669,
+    "duration": 0,
+    "pid": 19716,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575620647671,
+    "end": 1575620647672,
+    "duration": 1,
+    "pid": 19716,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575620647674,
+    "end": 1575620647674,
+    "duration": 0,
+    "pid": 19716,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575620647676,
+    "end": 1575620647677,
+    "duration": 1,
+    "pid": 19716,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575620647678,
+    "end": 1575620647679,
+    "duration": 1,
+    "pid": 19716,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575620647680,
+    "end": 1575620647681,
+    "duration": 1,
+    "pid": 19716,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575620647685,
+    "end": 1575620647686,
+    "duration": 1,
+    "pid": 19716,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575620647687,
+    "end": 1575620647693,
+    "duration": 6,
+    "pid": 19716,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575620647694,
+    "end": 1575620647695,
+    "duration": 1,
+    "pid": 19716,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575620647699,
+    "end": 1575620647699,
+    "duration": 0,
+    "pid": 19716,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575620647701,
+    "end": 1575620647701,
+    "duration": 0,
+    "pid": 19716,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575620647703,
+    "end": 1575620647706,
+    "duration": 3,
+    "pid": 19716,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575620647708,
+    "end": 1575620647709,
+    "duration": 1,
+    "pid": 19716,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575620647710,
+    "end": 1575620647711,
+    "duration": 1,
+    "pid": 19716,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575620647712,
+    "end": 1575620647713,
+    "duration": 1,
+    "pid": 19716,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575620647714,
+    "end": 1575620647717,
+    "duration": 3,
+    "pid": 19716,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575620647721,
+    "end": 1575620647721,
+    "duration": 0,
+    "pid": 19716,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575620647724,
+    "end": 1575620647725,
+    "duration": 1,
+    "pid": 19716,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575620647729,
+    "end": 1575620647729,
+    "duration": 0,
+    "pid": 19716,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575620647733,
+    "end": 1575620647733,
+    "duration": 0,
+    "pid": 19716,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575620647736,
+    "end": 1575620647736,
+    "duration": 0,
+    "pid": 19716,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575620647741,
+    "end": 1575620647741,
+    "duration": 0,
+    "pid": 19716,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575620647749,
+    "end": 1575620647811,
+    "duration": 62,
+    "pid": 19716,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575620647750,
+    "end": 1575620647751,
+    "duration": 1,
+    "pid": 19716,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575620647753,
+    "end": 1575620647758,
+    "duration": 5,
+    "pid": 19716,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575620647759,
+    "end": 1575620647765,
+    "duration": 6,
+    "pid": 19716,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575620647772,
+    "end": 1575620647793,
+    "duration": 21,
+    "pid": 19716,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575620647795,
+    "end": 1575620647800,
+    "duration": 5,
+    "pid": 19716,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575620647812,
+    "end": 1575620647834,
+    "duration": 22,
+    "pid": 19716,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575620647823,
+    "end": 1575620647827,
+    "duration": 4,
+    "pid": 19716,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575620647835,
+    "end": 1575620647854,
+    "duration": 19,
+    "pid": 19716,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575620647843,
+    "end": 1575620647847,
+    "duration": 4,
+    "pid": 19716,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575620647854,
+    "end": 1575620648018,
+    "duration": 164,
+    "pid": 19716,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575620647857,
+    "end": 1575620647898,
+    "duration": 41,
+    "pid": 19716,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575620647898,
+    "end": 1575620647901,
+    "duration": 3,
+    "pid": 19716,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575620647902,
+    "end": 1575620647902,
+    "duration": 0,
+    "pid": 19716,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575620647906,
+    "end": 1575620647999,
+    "duration": 93,
+    "pid": 19716,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575620648001,
+    "end": 1575620648003,
+    "duration": 2,
+    "pid": 19716,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575620648006,
+    "end": 1575620648009,
+    "duration": 3,
+    "pid": 19716,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575620648009,
+    "end": 1575620648014,
+    "duration": 5,
+    "pid": 19716,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575620648018,
+    "end": 1575620648062,
+    "duration": 44,
+    "pid": 19716,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575620648019,
+    "end": 1575620648051,
+    "duration": 32,
+    "pid": 19716,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575620648057,
+    "end": 1575620648058,
+    "duration": 1,
+    "pid": 19716,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575620648062,
+    "end": 1575620648329,
+    "duration": 267,
+    "pid": 19716,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575620648063,
+    "end": 1575620648064,
+    "duration": 1,
+    "pid": 19716,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575620648065,
+    "end": 1575620648068,
+    "duration": 3,
+    "pid": 19716,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575620648069,
+    "end": 1575620648086,
+    "duration": 17,
+    "pid": 19716,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575620648087,
+    "end": 1575620648163,
+    "duration": 76,
+    "pid": 19716,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575620648166,
+    "end": 1575620648194,
+    "duration": 28,
+    "pid": 19716,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575620648196,
+    "end": 1575620648230,
+    "duration": 34,
+    "pid": 19716,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575620648231,
+    "end": 1575620648244,
+    "duration": 13,
+    "pid": 19716,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575620648244,
+    "end": 1575620648245,
+    "duration": 1,
+    "pid": 19716,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575620648246,
+    "end": 1575620648247,
+    "duration": 1,
+    "pid": 19716,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575620648253,
+    "end": 1575620648255,
+    "duration": 2,
+    "pid": 19716,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575620648259,
+    "end": 1575620648318,
+    "duration": 59,
+    "pid": 19716,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575620648319,
+    "end": 1575620648326,
+    "duration": 7,
+    "pid": 19716,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575620648360,
+    "end": 1575620652874,
+    "duration": 4514,
+    "pid": 19716,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575620648673,
+    "end": 1575620652883,
+    "duration": 4210,
+    "pid": 19716,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575620648674,
+    "end": 1575620648702,
+    "duration": 28,
+    "pid": 19716,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575620648674,
+    "end": 1575620648702,
+    "duration": 28,
+    "pid": 19716,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575620648702,
+    "end": 1575620648895,
+    "duration": 193,
+    "pid": 19716,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575620648703,
+    "end": 1575620648875,
+    "duration": 172,
+    "pid": 19716,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575620648896,
+    "end": 1575620652770,
+    "duration": 3874,
+    "pid": 19716,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575620648896,
+    "end": 1575620652770,
+    "duration": 3874,
+    "pid": 19716,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575620652770,
+    "end": 1575620652781,
+    "duration": 11,
+    "pid": 19716,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575620652771,
+    "end": 1575620652775,
+    "duration": 4,
+    "pid": 19716,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575620652776,
+    "end": 1575620652817,
+    "duration": 41,
+    "pid": 19716,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_19780.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575621177567,
+    "end": 1575621183677,
+    "duration": 6110,
+    "pid": 19780,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575621177579,
+    "end": 1575621177659,
+    "duration": 80,
+    "pid": 19780,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575621177660,
+    "end": 1575621177752,
+    "duration": 92,
+    "pid": 19780,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575621177662,
+    "end": 1575621177664,
+    "duration": 2,
+    "pid": 19780,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575621177667,
+    "end": 1575621177668,
+    "duration": 1,
+    "pid": 19780,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575621177671,
+    "end": 1575621177673,
+    "duration": 2,
+    "pid": 19780,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575621177674,
+    "end": 1575621177675,
+    "duration": 1,
+    "pid": 19780,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575621177681,
+    "end": 1575621177682,
+    "duration": 1,
+    "pid": 19780,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575621177685,
+    "end": 1575621177689,
+    "duration": 4,
+    "pid": 19780,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575621177691,
+    "end": 1575621177692,
+    "duration": 1,
+    "pid": 19780,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575621177700,
+    "end": 1575621177700,
+    "duration": 0,
+    "pid": 19780,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575621177703,
+    "end": 1575621177706,
+    "duration": 3,
+    "pid": 19780,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575621177708,
+    "end": 1575621177709,
+    "duration": 1,
+    "pid": 19780,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575621177711,
+    "end": 1575621177711,
+    "duration": 0,
+    "pid": 19780,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575621177713,
+    "end": 1575621177713,
+    "duration": 0,
+    "pid": 19780,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575621177716,
+    "end": 1575621177717,
+    "duration": 1,
+    "pid": 19780,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575621177718,
+    "end": 1575621177719,
+    "duration": 1,
+    "pid": 19780,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575621177721,
+    "end": 1575621177722,
+    "duration": 1,
+    "pid": 19780,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575621177726,
+    "end": 1575621177726,
+    "duration": 0,
+    "pid": 19780,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575621177728,
+    "end": 1575621177729,
+    "duration": 1,
+    "pid": 19780,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575621177731,
+    "end": 1575621177731,
+    "duration": 0,
+    "pid": 19780,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575621177740,
+    "end": 1575621177741,
+    "duration": 1,
+    "pid": 19780,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575621177744,
+    "end": 1575621177744,
+    "duration": 0,
+    "pid": 19780,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575621177749,
+    "end": 1575621177749,
+    "duration": 0,
+    "pid": 19780,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575621177752,
+    "end": 1575621177752,
+    "duration": 0,
+    "pid": 19780,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575621177752,
+    "end": 1575621177752,
+    "duration": 0,
+    "pid": 19780,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575621177758,
+    "end": 1575621177808,
+    "duration": 50,
+    "pid": 19780,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575621177760,
+    "end": 1575621177760,
+    "duration": 0,
+    "pid": 19780,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575621177761,
+    "end": 1575621177765,
+    "duration": 4,
+    "pid": 19780,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575621177766,
+    "end": 1575621177770,
+    "duration": 4,
+    "pid": 19780,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575621177780,
+    "end": 1575621177795,
+    "duration": 15,
+    "pid": 19780,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575621177797,
+    "end": 1575621177800,
+    "duration": 3,
+    "pid": 19780,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575621177808,
+    "end": 1575621177824,
+    "duration": 16,
+    "pid": 19780,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575621177813,
+    "end": 1575621177817,
+    "duration": 4,
+    "pid": 19780,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575621177824,
+    "end": 1575621177843,
+    "duration": 19,
+    "pid": 19780,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575621177830,
+    "end": 1575621177834,
+    "duration": 4,
+    "pid": 19780,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575621177843,
+    "end": 1575621177993,
+    "duration": 150,
+    "pid": 19780,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575621177844,
+    "end": 1575621177881,
+    "duration": 37,
+    "pid": 19780,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575621177882,
+    "end": 1575621177884,
+    "duration": 2,
+    "pid": 19780,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575621177885,
+    "end": 1575621177886,
+    "duration": 1,
+    "pid": 19780,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575621177889,
+    "end": 1575621177975,
+    "duration": 86,
+    "pid": 19780,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575621177976,
+    "end": 1575621177979,
+    "duration": 3,
+    "pid": 19780,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575621177980,
+    "end": 1575621177981,
+    "duration": 1,
+    "pid": 19780,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575621177982,
+    "end": 1575621177985,
+    "duration": 3,
+    "pid": 19780,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575621177993,
+    "end": 1575621178052,
+    "duration": 59,
+    "pid": 19780,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575621177995,
+    "end": 1575621178039,
+    "duration": 44,
+    "pid": 19780,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575621178043,
+    "end": 1575621178043,
+    "duration": 0,
+    "pid": 19780,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575621178052,
+    "end": 1575621178160,
+    "duration": 108,
+    "pid": 19780,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575621178053,
+    "end": 1575621178053,
+    "duration": 0,
+    "pid": 19780,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575621178055,
+    "end": 1575621178060,
+    "duration": 5,
+    "pid": 19780,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575621178061,
+    "end": 1575621178080,
+    "duration": 19,
+    "pid": 19780,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575621178080,
+    "end": 1575621178099,
+    "duration": 19,
+    "pid": 19780,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575621178100,
+    "end": 1575621178106,
+    "duration": 6,
+    "pid": 19780,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575621178107,
+    "end": 1575621178111,
+    "duration": 4,
+    "pid": 19780,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575621178111,
+    "end": 1575621178115,
+    "duration": 4,
+    "pid": 19780,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575621178116,
+    "end": 1575621178117,
+    "duration": 1,
+    "pid": 19780,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575621178118,
+    "end": 1575621178118,
+    "duration": 0,
+    "pid": 19780,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575621178119,
+    "end": 1575621178119,
+    "duration": 0,
+    "pid": 19780,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575621178121,
+    "end": 1575621178153,
+    "duration": 32,
+    "pid": 19780,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575621178155,
+    "end": 1575621178159,
+    "duration": 4,
+    "pid": 19780,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575621178180,
+    "end": 1575621183660,
+    "duration": 5480,
+    "pid": 19780,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575621178413,
+    "end": 1575621183668,
+    "duration": 5255,
+    "pid": 19780,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575621178414,
+    "end": 1575621178431,
+    "duration": 17,
+    "pid": 19780,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575621178414,
+    "end": 1575621178431,
+    "duration": 17,
+    "pid": 19780,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575621178431,
+    "end": 1575621178614,
+    "duration": 183,
+    "pid": 19780,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575621178432,
+    "end": 1575621178596,
+    "duration": 164,
+    "pid": 19780,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575621178614,
+    "end": 1575621183470,
+    "duration": 4856,
+    "pid": 19780,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575621178614,
+    "end": 1575621183470,
+    "duration": 4856,
+    "pid": 19780,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575621183471,
+    "end": 1575621183484,
+    "duration": 13,
+    "pid": 19780,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575621183475,
+    "end": 1575621183480,
+    "duration": 5,
+    "pid": 19780,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575621183481,
+    "end": 1575621183533,
+    "duration": 52,
+    "pid": 19780,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_20484.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575620841116,
+    "end": 1575620844486,
+    "duration": 3370,
+    "pid": 20484,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575620841128,
+    "end": 1575620841181,
+    "duration": 53,
+    "pid": 20484,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575620841182,
+    "end": 1575620841235,
+    "duration": 53,
+    "pid": 20484,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575620841184,
+    "end": 1575620841185,
+    "duration": 1,
+    "pid": 20484,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575620841188,
+    "end": 1575620841189,
+    "duration": 1,
+    "pid": 20484,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575620841190,
+    "end": 1575620841191,
+    "duration": 1,
+    "pid": 20484,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575620841192,
+    "end": 1575620841193,
+    "duration": 1,
+    "pid": 20484,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575620841194,
+    "end": 1575620841195,
+    "duration": 1,
+    "pid": 20484,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575620841197,
+    "end": 1575620841198,
+    "duration": 1,
+    "pid": 20484,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575620841199,
+    "end": 1575620841199,
+    "duration": 0,
+    "pid": 20484,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575620841201,
+    "end": 1575620841201,
+    "duration": 0,
+    "pid": 20484,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575620841202,
+    "end": 1575620841205,
+    "duration": 3,
+    "pid": 20484,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575620841208,
+    "end": 1575620841208,
+    "duration": 0,
+    "pid": 20484,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575620841210,
+    "end": 1575620841210,
+    "duration": 0,
+    "pid": 20484,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575620841211,
+    "end": 1575620841212,
+    "duration": 1,
+    "pid": 20484,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575620841213,
+    "end": 1575620841214,
+    "duration": 1,
+    "pid": 20484,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575620841216,
+    "end": 1575620841217,
+    "duration": 1,
+    "pid": 20484,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575620841218,
+    "end": 1575620841218,
+    "duration": 0,
+    "pid": 20484,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575620841219,
+    "end": 1575620841220,
+    "duration": 1,
+    "pid": 20484,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575620841220,
+    "end": 1575620841221,
+    "duration": 1,
+    "pid": 20484,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575620841224,
+    "end": 1575620841224,
+    "duration": 0,
+    "pid": 20484,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575620841226,
+    "end": 1575620841226,
+    "duration": 0,
+    "pid": 20484,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575620841228,
+    "end": 1575620841229,
+    "duration": 1,
+    "pid": 20484,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575620841232,
+    "end": 1575620841232,
+    "duration": 0,
+    "pid": 20484,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575620841234,
+    "end": 1575620841235,
+    "duration": 1,
+    "pid": 20484,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575620841235,
+    "end": 1575620841235,
+    "duration": 0,
+    "pid": 20484,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575620841238,
+    "end": 1575620841274,
+    "duration": 36,
+    "pid": 20484,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575620841239,
+    "end": 1575620841240,
+    "duration": 1,
+    "pid": 20484,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575620841241,
+    "end": 1575620841243,
+    "duration": 2,
+    "pid": 20484,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575620841244,
+    "end": 1575620841248,
+    "duration": 4,
+    "pid": 20484,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575620841251,
+    "end": 1575620841266,
+    "duration": 15,
+    "pid": 20484,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575620841267,
+    "end": 1575620841269,
+    "duration": 2,
+    "pid": 20484,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575620841274,
+    "end": 1575620841287,
+    "duration": 13,
+    "pid": 20484,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575620841279,
+    "end": 1575620841282,
+    "duration": 3,
+    "pid": 20484,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575620841287,
+    "end": 1575620841304,
+    "duration": 17,
+    "pid": 20484,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575620841293,
+    "end": 1575620841298,
+    "duration": 5,
+    "pid": 20484,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575620841304,
+    "end": 1575620841460,
+    "duration": 156,
+    "pid": 20484,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575620841305,
+    "end": 1575620841336,
+    "duration": 31,
+    "pid": 20484,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575620841336,
+    "end": 1575620841339,
+    "duration": 3,
+    "pid": 20484,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575620841342,
+    "end": 1575620841342,
+    "duration": 0,
+    "pid": 20484,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575620841345,
+    "end": 1575620841442,
+    "duration": 97,
+    "pid": 20484,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575620841444,
+    "end": 1575620841447,
+    "duration": 3,
+    "pid": 20484,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575620841448,
+    "end": 1575620841448,
+    "duration": 0,
+    "pid": 20484,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575620841449,
+    "end": 1575620841453,
+    "duration": 4,
+    "pid": 20484,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575620841460,
+    "end": 1575620841509,
+    "duration": 49,
+    "pid": 20484,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575620841461,
+    "end": 1575620841500,
+    "duration": 39,
+    "pid": 20484,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575620841505,
+    "end": 1575620841505,
+    "duration": 0,
+    "pid": 20484,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575620841509,
+    "end": 1575620841600,
+    "duration": 91,
+    "pid": 20484,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575620841510,
+    "end": 1575620841511,
+    "duration": 1,
+    "pid": 20484,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575620841511,
+    "end": 1575620841514,
+    "duration": 3,
+    "pid": 20484,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575620841515,
+    "end": 1575620841531,
+    "duration": 16,
+    "pid": 20484,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575620841532,
+    "end": 1575620841548,
+    "duration": 16,
+    "pid": 20484,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575620841549,
+    "end": 1575620841555,
+    "duration": 6,
+    "pid": 20484,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575620841555,
+    "end": 1575620841558,
+    "duration": 3,
+    "pid": 20484,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575620841558,
+    "end": 1575620841563,
+    "duration": 5,
+    "pid": 20484,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575620841564,
+    "end": 1575620841564,
+    "duration": 0,
+    "pid": 20484,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575620841565,
+    "end": 1575620841565,
+    "duration": 0,
+    "pid": 20484,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575620841566,
+    "end": 1575620841567,
+    "duration": 1,
+    "pid": 20484,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575620841568,
+    "end": 1575620841595,
+    "duration": 27,
+    "pid": 20484,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575620841596,
+    "end": 1575620841598,
+    "duration": 2,
+    "pid": 20484,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575620841617,
+    "end": 1575620844479,
+    "duration": 2862,
+    "pid": 20484,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575620841940,
+    "end": 1575620844484,
+    "duration": 2544,
+    "pid": 20484,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575620841941,
+    "end": 1575620841962,
+    "duration": 21,
+    "pid": 20484,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575620841941,
+    "end": 1575620841962,
+    "duration": 21,
+    "pid": 20484,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575620841962,
+    "end": 1575620842097,
+    "duration": 135,
+    "pid": 20484,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575620841962,
+    "end": 1575620842084,
+    "duration": 122,
+    "pid": 20484,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575620842097,
+    "end": 1575620844370,
+    "duration": 2273,
+    "pid": 20484,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575620842097,
+    "end": 1575620844370,
+    "duration": 2273,
+    "pid": 20484,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575620844370,
+    "end": 1575620844381,
+    "duration": 11,
+    "pid": 20484,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575620844372,
+    "end": 1575620844375,
+    "duration": 3,
+    "pid": 20484,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575620844376,
+    "end": 1575620844414,
+    "duration": 38,
+    "pid": 20484,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_22060.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575617089736,
+    "end": 1575617091372,
+    "duration": 1636,
+    "pid": 22060,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575617089745,
+    "end": 1575617089799,
+    "duration": 54,
+    "pid": 22060,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575617089800,
+    "end": 1575617089893,
+    "duration": 93,
+    "pid": 22060,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575617089802,
+    "end": 1575617089804,
+    "duration": 2,
+    "pid": 22060,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575617089806,
+    "end": 1575617089807,
+    "duration": 1,
+    "pid": 22060,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575617089810,
+    "end": 1575617089823,
+    "duration": 13,
+    "pid": 22060,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575617089825,
+    "end": 1575617089825,
+    "duration": 0,
+    "pid": 22060,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575617089827,
+    "end": 1575617089827,
+    "duration": 0,
+    "pid": 22060,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575617089829,
+    "end": 1575617089829,
+    "duration": 0,
+    "pid": 22060,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575617089831,
+    "end": 1575617089832,
+    "duration": 1,
+    "pid": 22060,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575617089835,
+    "end": 1575617089837,
+    "duration": 2,
+    "pid": 22060,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575617089839,
+    "end": 1575617089842,
+    "duration": 3,
+    "pid": 22060,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575617089851,
+    "end": 1575617089852,
+    "duration": 1,
+    "pid": 22060,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575617089856,
+    "end": 1575617089856,
+    "duration": 0,
+    "pid": 22060,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575617089857,
+    "end": 1575617089858,
+    "duration": 1,
+    "pid": 22060,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575617089859,
+    "end": 1575617089860,
+    "duration": 1,
+    "pid": 22060,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575617089861,
+    "end": 1575617089862,
+    "duration": 1,
+    "pid": 22060,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575617089864,
+    "end": 1575617089864,
+    "duration": 0,
+    "pid": 22060,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575617089867,
+    "end": 1575617089872,
+    "duration": 5,
+    "pid": 22060,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575617089873,
+    "end": 1575617089875,
+    "duration": 2,
+    "pid": 22060,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575617089877,
+    "end": 1575617089877,
+    "duration": 0,
+    "pid": 22060,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575617089879,
+    "end": 1575617089880,
+    "duration": 1,
+    "pid": 22060,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575617089882,
+    "end": 1575617089883,
+    "duration": 1,
+    "pid": 22060,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575617089890,
+    "end": 1575617089890,
+    "duration": 0,
+    "pid": 22060,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575617089892,
+    "end": 1575617089893,
+    "duration": 1,
+    "pid": 22060,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575617089893,
+    "end": 1575617089893,
+    "duration": 0,
+    "pid": 22060,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575617089897,
+    "end": 1575617089982,
+    "duration": 85,
+    "pid": 22060,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575617089898,
+    "end": 1575617089900,
+    "duration": 2,
+    "pid": 22060,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575617089901,
+    "end": 1575617089904,
+    "duration": 3,
+    "pid": 22060,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575617089905,
+    "end": 1575617089910,
+    "duration": 5,
+    "pid": 22060,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575617089913,
+    "end": 1575617089958,
+    "duration": 45,
+    "pid": 22060,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575617089960,
+    "end": 1575617089963,
+    "duration": 3,
+    "pid": 22060,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575617089982,
+    "end": 1575617090002,
+    "duration": 20,
+    "pid": 22060,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575617089991,
+    "end": 1575617089994,
+    "duration": 3,
+    "pid": 22060,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575617090003,
+    "end": 1575617090020,
+    "duration": 17,
+    "pid": 22060,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575617090009,
+    "end": 1575617090013,
+    "duration": 4,
+    "pid": 22060,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575617090020,
+    "end": 1575617090369,
+    "duration": 349,
+    "pid": 22060,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575617090021,
+    "end": 1575617090117,
+    "duration": 96,
+    "pid": 22060,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575617090118,
+    "end": 1575617090122,
+    "duration": 4,
+    "pid": 22060,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575617090124,
+    "end": 1575617090125,
+    "duration": 1,
+    "pid": 22060,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575617090138,
+    "end": 1575617090337,
+    "duration": 199,
+    "pid": 22060,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575617090339,
+    "end": 1575617090342,
+    "duration": 3,
+    "pid": 22060,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575617090354,
+    "end": 1575617090355,
+    "duration": 1,
+    "pid": 22060,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575617090356,
+    "end": 1575617090362,
+    "duration": 6,
+    "pid": 22060,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575617090369,
+    "end": 1575617090441,
+    "duration": 72,
+    "pid": 22060,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575617090370,
+    "end": 1575617090414,
+    "duration": 44,
+    "pid": 22060,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575617090420,
+    "end": 1575617090432,
+    "duration": 12,
+    "pid": 22060,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575617090442,
+    "end": 1575617090669,
+    "duration": 227,
+    "pid": 22060,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575617090443,
+    "end": 1575617090443,
+    "duration": 0,
+    "pid": 22060,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575617090445,
+    "end": 1575617090449,
+    "duration": 4,
+    "pid": 22060,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575617090450,
+    "end": 1575617090479,
+    "duration": 29,
+    "pid": 22060,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575617090480,
+    "end": 1575617090551,
+    "duration": 71,
+    "pid": 22060,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575617090565,
+    "end": 1575617090573,
+    "duration": 8,
+    "pid": 22060,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575617090574,
+    "end": 1575617090578,
+    "duration": 4,
+    "pid": 22060,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575617090579,
+    "end": 1575617090586,
+    "duration": 7,
+    "pid": 22060,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575617090587,
+    "end": 1575617090588,
+    "duration": 1,
+    "pid": 22060,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575617090589,
+    "end": 1575617090590,
+    "duration": 1,
+    "pid": 22060,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575617090591,
+    "end": 1575617090592,
+    "duration": 1,
+    "pid": 22060,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575617090594,
+    "end": 1575617090661,
+    "duration": 67,
+    "pid": 22060,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575617090662,
+    "end": 1575617090666,
+    "duration": 4,
+    "pid": 22060,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575617090711,
+    "end": 1575617091363,
+    "duration": 652,
+    "pid": 22060,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575617091020,
+    "end": 1575617091369,
+    "duration": 349,
+    "pid": 22060,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575617091021,
+    "end": 1575617091042,
+    "duration": 21,
+    "pid": 22060,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575617091021,
+    "end": 1575617091042,
+    "duration": 21,
+    "pid": 22060,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575617091042,
+    "end": 1575617091263,
+    "duration": 221,
+    "pid": 22060,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575617091043,
+    "end": 1575617091237,
+    "duration": 194,
+    "pid": 22060,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575617091263,
+    "end": 1575617091277,
+    "duration": 14,
+    "pid": 22060,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575617091264,
+    "end": 1575617091277,
+    "duration": 13,
+    "pid": 22060,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575617091277,
+    "end": 1575617091284,
+    "duration": 7,
+    "pid": 22060,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575617091278,
+    "end": 1575617091281,
+    "duration": 3,
+    "pid": 22060,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575617091281,
+    "end": 1575617091314,
+    "duration": 33,
+    "pid": 22060,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_22896.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575619518238,
+    "end": 1575619521747,
+    "duration": 3509,
+    "pid": 22896,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575619518245,
+    "end": 1575619518277,
+    "duration": 32,
+    "pid": 22896,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575619518278,
+    "end": 1575619518319,
+    "duration": 41,
+    "pid": 22896,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575619518279,
+    "end": 1575619518280,
+    "duration": 1,
+    "pid": 22896,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575619518282,
+    "end": 1575619518283,
+    "duration": 1,
+    "pid": 22896,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575619518284,
+    "end": 1575619518284,
+    "duration": 0,
+    "pid": 22896,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575619518285,
+    "end": 1575619518285,
+    "duration": 0,
+    "pid": 22896,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575619518286,
+    "end": 1575619518287,
+    "duration": 1,
+    "pid": 22896,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575619518289,
+    "end": 1575619518289,
+    "duration": 0,
+    "pid": 22896,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575619518290,
+    "end": 1575619518291,
+    "duration": 1,
+    "pid": 22896,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575619518293,
+    "end": 1575619518293,
+    "duration": 0,
+    "pid": 22896,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575619518294,
+    "end": 1575619518297,
+    "duration": 3,
+    "pid": 22896,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575619518298,
+    "end": 1575619518299,
+    "duration": 1,
+    "pid": 22896,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575619518300,
+    "end": 1575619518300,
+    "duration": 0,
+    "pid": 22896,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575619518301,
+    "end": 1575619518301,
+    "duration": 0,
+    "pid": 22896,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575619518302,
+    "end": 1575619518303,
+    "duration": 1,
+    "pid": 22896,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575619518304,
+    "end": 1575619518304,
+    "duration": 0,
+    "pid": 22896,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575619518305,
+    "end": 1575619518305,
+    "duration": 0,
+    "pid": 22896,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575619518306,
+    "end": 1575619518307,
+    "duration": 1,
+    "pid": 22896,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575619518307,
+    "end": 1575619518308,
+    "duration": 1,
+    "pid": 22896,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575619518310,
+    "end": 1575619518310,
+    "duration": 0,
+    "pid": 22896,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575619518311,
+    "end": 1575619518312,
+    "duration": 1,
+    "pid": 22896,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575619518313,
+    "end": 1575619518314,
+    "duration": 1,
+    "pid": 22896,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575619518316,
+    "end": 1575619518316,
+    "duration": 0,
+    "pid": 22896,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575619518318,
+    "end": 1575619518319,
+    "duration": 1,
+    "pid": 22896,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575619518319,
+    "end": 1575619518319,
+    "duration": 0,
+    "pid": 22896,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575619518321,
+    "end": 1575619518379,
+    "duration": 58,
+    "pid": 22896,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575619518321,
+    "end": 1575619518322,
+    "duration": 1,
+    "pid": 22896,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575619518323,
+    "end": 1575619518329,
+    "duration": 6,
+    "pid": 22896,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575619518330,
+    "end": 1575619518333,
+    "duration": 3,
+    "pid": 22896,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575619518346,
+    "end": 1575619518367,
+    "duration": 21,
+    "pid": 22896,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575619518368,
+    "end": 1575619518371,
+    "duration": 3,
+    "pid": 22896,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575619518379,
+    "end": 1575619518393,
+    "duration": 14,
+    "pid": 22896,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575619518384,
+    "end": 1575619518387,
+    "duration": 3,
+    "pid": 22896,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575619518393,
+    "end": 1575619518413,
+    "duration": 20,
+    "pid": 22896,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575619518401,
+    "end": 1575619518409,
+    "duration": 8,
+    "pid": 22896,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575619518413,
+    "end": 1575619518563,
+    "duration": 150,
+    "pid": 22896,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575619518414,
+    "end": 1575619518441,
+    "duration": 27,
+    "pid": 22896,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575619518441,
+    "end": 1575619518444,
+    "duration": 3,
+    "pid": 22896,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575619518445,
+    "end": 1575619518445,
+    "duration": 0,
+    "pid": 22896,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575619518447,
+    "end": 1575619518536,
+    "duration": 89,
+    "pid": 22896,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575619518540,
+    "end": 1575619518543,
+    "duration": 3,
+    "pid": 22896,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575619518545,
+    "end": 1575619518546,
+    "duration": 1,
+    "pid": 22896,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575619518546,
+    "end": 1575619518558,
+    "duration": 12,
+    "pid": 22896,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575619518563,
+    "end": 1575619518612,
+    "duration": 49,
+    "pid": 22896,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575619518564,
+    "end": 1575619518599,
+    "duration": 35,
+    "pid": 22896,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575619518606,
+    "end": 1575619518607,
+    "duration": 1,
+    "pid": 22896,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575619518613,
+    "end": 1575619518712,
+    "duration": 99,
+    "pid": 22896,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575619518614,
+    "end": 1575619518614,
+    "duration": 0,
+    "pid": 22896,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575619518615,
+    "end": 1575619518619,
+    "duration": 4,
+    "pid": 22896,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575619518620,
+    "end": 1575619518640,
+    "duration": 20,
+    "pid": 22896,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575619518641,
+    "end": 1575619518659,
+    "duration": 18,
+    "pid": 22896,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575619518660,
+    "end": 1575619518666,
+    "duration": 6,
+    "pid": 22896,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575619518666,
+    "end": 1575619518669,
+    "duration": 3,
+    "pid": 22896,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575619518670,
+    "end": 1575619518674,
+    "duration": 4,
+    "pid": 22896,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575619518674,
+    "end": 1575619518675,
+    "duration": 1,
+    "pid": 22896,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575619518675,
+    "end": 1575619518676,
+    "duration": 1,
+    "pid": 22896,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575619518676,
+    "end": 1575619518677,
+    "duration": 1,
+    "pid": 22896,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575619518679,
+    "end": 1575619518707,
+    "duration": 28,
+    "pid": 22896,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575619518708,
+    "end": 1575619518710,
+    "duration": 2,
+    "pid": 22896,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575619518735,
+    "end": 1575619521739,
+    "duration": 3004,
+    "pid": 22896,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575619519003,
+    "end": 1575619521745,
+    "duration": 2742,
+    "pid": 22896,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575619519004,
+    "end": 1575619519020,
+    "duration": 16,
+    "pid": 22896,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575619519004,
+    "end": 1575619519020,
+    "duration": 16,
+    "pid": 22896,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575619519020,
+    "end": 1575619519173,
+    "duration": 153,
+    "pid": 22896,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575619519020,
+    "end": 1575619519159,
+    "duration": 139,
+    "pid": 22896,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575619519173,
+    "end": 1575619521650,
+    "duration": 2477,
+    "pid": 22896,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575619519173,
+    "end": 1575619521650,
+    "duration": 2477,
+    "pid": 22896,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575619521650,
+    "end": 1575619521655,
+    "duration": 5,
+    "pid": 22896,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575619521650,
+    "end": 1575619521652,
+    "duration": 2,
+    "pid": 22896,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575619521653,
+    "end": 1575619521675,
+    "duration": 22,
+    "pid": 22896,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_23188.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575620961247,
+    "end": 1575620965061,
+    "duration": 3814,
+    "pid": 23188,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575620961255,
+    "end": 1575620961286,
+    "duration": 31,
+    "pid": 23188,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575620961287,
+    "end": 1575620961326,
+    "duration": 39,
+    "pid": 23188,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575620961288,
+    "end": 1575620961289,
+    "duration": 1,
+    "pid": 23188,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575620961291,
+    "end": 1575620961291,
+    "duration": 0,
+    "pid": 23188,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575620961293,
+    "end": 1575620961293,
+    "duration": 0,
+    "pid": 23188,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575620961294,
+    "end": 1575620961294,
+    "duration": 0,
+    "pid": 23188,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575620961296,
+    "end": 1575620961296,
+    "duration": 0,
+    "pid": 23188,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575620961297,
+    "end": 1575620961297,
+    "duration": 0,
+    "pid": 23188,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575620961298,
+    "end": 1575620961299,
+    "duration": 1,
+    "pid": 23188,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575620961300,
+    "end": 1575620961301,
+    "duration": 1,
+    "pid": 23188,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575620961302,
+    "end": 1575620961305,
+    "duration": 3,
+    "pid": 23188,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575620961306,
+    "end": 1575620961306,
+    "duration": 0,
+    "pid": 23188,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575620961308,
+    "end": 1575620961308,
+    "duration": 0,
+    "pid": 23188,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575620961309,
+    "end": 1575620961309,
+    "duration": 0,
+    "pid": 23188,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575620961310,
+    "end": 1575620961311,
+    "duration": 1,
+    "pid": 23188,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575620961312,
+    "end": 1575620961313,
+    "duration": 1,
+    "pid": 23188,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575620961314,
+    "end": 1575620961314,
+    "duration": 0,
+    "pid": 23188,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575620961315,
+    "end": 1575620961316,
+    "duration": 1,
+    "pid": 23188,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575620961317,
+    "end": 1575620961317,
+    "duration": 0,
+    "pid": 23188,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575620961319,
+    "end": 1575620961319,
+    "duration": 0,
+    "pid": 23188,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575620961320,
+    "end": 1575620961320,
+    "duration": 0,
+    "pid": 23188,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575620961321,
+    "end": 1575620961322,
+    "duration": 1,
+    "pid": 23188,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575620961324,
+    "end": 1575620961324,
+    "duration": 0,
+    "pid": 23188,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575620961325,
+    "end": 1575620961326,
+    "duration": 1,
+    "pid": 23188,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575620961326,
+    "end": 1575620961326,
+    "duration": 0,
+    "pid": 23188,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575620961329,
+    "end": 1575620961369,
+    "duration": 40,
+    "pid": 23188,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575620961330,
+    "end": 1575620961331,
+    "duration": 1,
+    "pid": 23188,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575620961336,
+    "end": 1575620961340,
+    "duration": 4,
+    "pid": 23188,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575620961343,
+    "end": 1575620961348,
+    "duration": 5,
+    "pid": 23188,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575620961351,
+    "end": 1575620961360,
+    "duration": 9,
+    "pid": 23188,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575620961362,
+    "end": 1575620961364,
+    "duration": 2,
+    "pid": 23188,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575620961369,
+    "end": 1575620961381,
+    "duration": 12,
+    "pid": 23188,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575620961375,
+    "end": 1575620961377,
+    "duration": 2,
+    "pid": 23188,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575620961381,
+    "end": 1575620961393,
+    "duration": 12,
+    "pid": 23188,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575620961386,
+    "end": 1575620961388,
+    "duration": 2,
+    "pid": 23188,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575620961393,
+    "end": 1575620961514,
+    "duration": 121,
+    "pid": 23188,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575620961394,
+    "end": 1575620961421,
+    "duration": 27,
+    "pid": 23188,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575620961422,
+    "end": 1575620961424,
+    "duration": 2,
+    "pid": 23188,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575620961425,
+    "end": 1575620961426,
+    "duration": 1,
+    "pid": 23188,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575620961428,
+    "end": 1575620961500,
+    "duration": 72,
+    "pid": 23188,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575620961502,
+    "end": 1575620961504,
+    "duration": 2,
+    "pid": 23188,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575620961505,
+    "end": 1575620961506,
+    "duration": 1,
+    "pid": 23188,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575620961506,
+    "end": 1575620961510,
+    "duration": 4,
+    "pid": 23188,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575620961514,
+    "end": 1575620961551,
+    "duration": 37,
+    "pid": 23188,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575620961515,
+    "end": 1575620961542,
+    "duration": 27,
+    "pid": 23188,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575620961546,
+    "end": 1575620961546,
+    "duration": 0,
+    "pid": 23188,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575620961552,
+    "end": 1575620961658,
+    "duration": 106,
+    "pid": 23188,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575620961552,
+    "end": 1575620961553,
+    "duration": 1,
+    "pid": 23188,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575620961553,
+    "end": 1575620961556,
+    "duration": 3,
+    "pid": 23188,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575620961557,
+    "end": 1575620961573,
+    "duration": 16,
+    "pid": 23188,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575620961574,
+    "end": 1575620961603,
+    "duration": 29,
+    "pid": 23188,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575620961603,
+    "end": 1575620961609,
+    "duration": 6,
+    "pid": 23188,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575620961610,
+    "end": 1575620961613,
+    "duration": 3,
+    "pid": 23188,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575620961614,
+    "end": 1575620961619,
+    "duration": 5,
+    "pid": 23188,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575620961619,
+    "end": 1575620961620,
+    "duration": 1,
+    "pid": 23188,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575620961620,
+    "end": 1575620961621,
+    "duration": 1,
+    "pid": 23188,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575620961622,
+    "end": 1575620961623,
+    "duration": 1,
+    "pid": 23188,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575620961624,
+    "end": 1575620961653,
+    "duration": 29,
+    "pid": 23188,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575620961654,
+    "end": 1575620961657,
+    "duration": 3,
+    "pid": 23188,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575620961677,
+    "end": 1575620965047,
+    "duration": 3370,
+    "pid": 23188,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575620961846,
+    "end": 1575620965057,
+    "duration": 3211,
+    "pid": 23188,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575620961846,
+    "end": 1575620964744,
+    "duration": 2898,
+    "pid": 23188,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575620961847,
+    "end": 1575620964744,
+    "duration": 2897,
+    "pid": 23188,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575620964744,
+    "end": 1575620964918,
+    "duration": 174,
+    "pid": 23188,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575620964744,
+    "end": 1575620964902,
+    "duration": 158,
+    "pid": 23188,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575620964918,
+    "end": 1575620964939,
+    "duration": 21,
+    "pid": 23188,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575620964918,
+    "end": 1575620964939,
+    "duration": 21,
+    "pid": 23188,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575620964939,
+    "end": 1575620964946,
+    "duration": 7,
+    "pid": 23188,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575620964940,
+    "end": 1575620964942,
+    "duration": 2,
+    "pid": 23188,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575620964943,
+    "end": 1575620964977,
+    "duration": 34,
+    "pid": 23188,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_23276.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575618111763,
+    "end": 1575618117360,
+    "duration": 5597,
+    "pid": 23276,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575618111776,
+    "end": 1575618115951,
+    "duration": 4175,
+    "pid": 23276,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575618115952,
+    "end": 1575618116056,
+    "duration": 104,
+    "pid": 23276,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575618115953,
+    "end": 1575618116015,
+    "duration": 62,
+    "pid": 23276,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575618116017,
+    "end": 1575618116024,
+    "duration": 7,
+    "pid": 23276,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575618116025,
+    "end": 1575618116025,
+    "duration": 0,
+    "pid": 23276,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575618116026,
+    "end": 1575618116026,
+    "duration": 0,
+    "pid": 23276,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575618116028,
+    "end": 1575618116028,
+    "duration": 0,
+    "pid": 23276,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575618116029,
+    "end": 1575618116029,
+    "duration": 0,
+    "pid": 23276,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575618116030,
+    "end": 1575618116030,
+    "duration": 0,
+    "pid": 23276,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575618116032,
+    "end": 1575618116032,
+    "duration": 0,
+    "pid": 23276,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575618116033,
+    "end": 1575618116036,
+    "duration": 3,
+    "pid": 23276,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575618116037,
+    "end": 1575618116038,
+    "duration": 1,
+    "pid": 23276,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575618116039,
+    "end": 1575618116039,
+    "duration": 0,
+    "pid": 23276,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575618116040,
+    "end": 1575618116040,
+    "duration": 0,
+    "pid": 23276,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575618116041,
+    "end": 1575618116041,
+    "duration": 0,
+    "pid": 23276,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575618116043,
+    "end": 1575618116044,
+    "duration": 1,
+    "pid": 23276,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575618116044,
+    "end": 1575618116045,
+    "duration": 1,
+    "pid": 23276,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575618116046,
+    "end": 1575618116046,
+    "duration": 0,
+    "pid": 23276,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575618116047,
+    "end": 1575618116048,
+    "duration": 1,
+    "pid": 23276,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575618116049,
+    "end": 1575618116049,
+    "duration": 0,
+    "pid": 23276,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575618116050,
+    "end": 1575618116050,
+    "duration": 0,
+    "pid": 23276,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575618116052,
+    "end": 1575618116052,
+    "duration": 0,
+    "pid": 23276,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575618116054,
+    "end": 1575618116055,
+    "duration": 1,
+    "pid": 23276,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575618116056,
+    "end": 1575618116056,
+    "duration": 0,
+    "pid": 23276,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575618116056,
+    "end": 1575618116056,
+    "duration": 0,
+    "pid": 23276,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575618116059,
+    "end": 1575618116096,
+    "duration": 37,
+    "pid": 23276,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575618116060,
+    "end": 1575618116060,
+    "duration": 0,
+    "pid": 23276,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575618116061,
+    "end": 1575618116063,
+    "duration": 2,
+    "pid": 23276,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575618116064,
+    "end": 1575618116067,
+    "duration": 3,
+    "pid": 23276,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575618116069,
+    "end": 1575618116088,
+    "duration": 19,
+    "pid": 23276,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575618116089,
+    "end": 1575618116091,
+    "duration": 2,
+    "pid": 23276,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575618116096,
+    "end": 1575618116108,
+    "duration": 12,
+    "pid": 23276,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575618116102,
+    "end": 1575618116104,
+    "duration": 2,
+    "pid": 23276,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575618116108,
+    "end": 1575618116119,
+    "duration": 11,
+    "pid": 23276,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575618116112,
+    "end": 1575618116115,
+    "duration": 3,
+    "pid": 23276,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575618116119,
+    "end": 1575618116233,
+    "duration": 114,
+    "pid": 23276,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575618116120,
+    "end": 1575618116145,
+    "duration": 25,
+    "pid": 23276,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575618116146,
+    "end": 1575618116148,
+    "duration": 2,
+    "pid": 23276,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575618116149,
+    "end": 1575618116150,
+    "duration": 1,
+    "pid": 23276,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575618116151,
+    "end": 1575618116219,
+    "duration": 68,
+    "pid": 23276,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575618116220,
+    "end": 1575618116223,
+    "duration": 3,
+    "pid": 23276,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575618116224,
+    "end": 1575618116225,
+    "duration": 1,
+    "pid": 23276,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575618116226,
+    "end": 1575618116229,
+    "duration": 3,
+    "pid": 23276,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575618116233,
+    "end": 1575618116292,
+    "duration": 59,
+    "pid": 23276,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575618116234,
+    "end": 1575618116281,
+    "duration": 47,
+    "pid": 23276,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575618116285,
+    "end": 1575618116286,
+    "duration": 1,
+    "pid": 23276,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575618116296,
+    "end": 1575618116414,
+    "duration": 118,
+    "pid": 23276,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575618116297,
+    "end": 1575618116297,
+    "duration": 0,
+    "pid": 23276,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575618116298,
+    "end": 1575618116301,
+    "duration": 3,
+    "pid": 23276,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575618116302,
+    "end": 1575618116319,
+    "duration": 17,
+    "pid": 23276,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575618116320,
+    "end": 1575618116347,
+    "duration": 27,
+    "pid": 23276,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575618116348,
+    "end": 1575618116354,
+    "duration": 6,
+    "pid": 23276,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575618116354,
+    "end": 1575618116357,
+    "duration": 3,
+    "pid": 23276,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575618116358,
+    "end": 1575618116365,
+    "duration": 7,
+    "pid": 23276,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575618116366,
+    "end": 1575618116367,
+    "duration": 1,
+    "pid": 23276,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575618116368,
+    "end": 1575618116368,
+    "duration": 0,
+    "pid": 23276,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575618116369,
+    "end": 1575618116369,
+    "duration": 0,
+    "pid": 23276,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575618116370,
+    "end": 1575618116405,
+    "duration": 35,
+    "pid": 23276,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575618116406,
+    "end": 1575618116413,
+    "duration": 7,
+    "pid": 23276,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575618116437,
+    "end": 1575618117352,
+    "duration": 915,
+    "pid": 23276,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575618116620,
+    "end": 1575618117358,
+    "duration": 738,
+    "pid": 23276,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575618116620,
+    "end": 1575618116849,
+    "duration": 229,
+    "pid": 23276,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575618116620,
+    "end": 1575618116849,
+    "duration": 229,
+    "pid": 23276,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575618116850,
+    "end": 1575618117038,
+    "duration": 188,
+    "pid": 23276,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575618116850,
+    "end": 1575618117021,
+    "duration": 171,
+    "pid": 23276,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575618117038,
+    "end": 1575618117235,
+    "duration": 197,
+    "pid": 23276,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575618117038,
+    "end": 1575618117235,
+    "duration": 197,
+    "pid": 23276,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575618117235,
+    "end": 1575618117267,
+    "duration": 32,
+    "pid": 23276,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575618117236,
+    "end": 1575618117265,
+    "duration": 29,
+    "pid": 23276,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575618117265,
+    "end": 1575618117287,
+    "duration": 22,
+    "pid": 23276,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_24584.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575617425057,
+    "end": 1575617426075,
+    "duration": 1018,
+    "pid": 24584,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575617425065,
+    "end": 1575617425135,
+    "duration": 70,
+    "pid": 24584,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575617425135,
+    "end": 1575617425197,
+    "duration": 62,
+    "pid": 24584,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575617425137,
+    "end": 1575617425138,
+    "duration": 1,
+    "pid": 24584,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575617425140,
+    "end": 1575617425141,
+    "duration": 1,
+    "pid": 24584,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575617425143,
+    "end": 1575617425143,
+    "duration": 0,
+    "pid": 24584,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575617425144,
+    "end": 1575617425145,
+    "duration": 1,
+    "pid": 24584,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575617425147,
+    "end": 1575617425148,
+    "duration": 1,
+    "pid": 24584,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575617425149,
+    "end": 1575617425149,
+    "duration": 0,
+    "pid": 24584,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575617425151,
+    "end": 1575617425151,
+    "duration": 0,
+    "pid": 24584,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575617425153,
+    "end": 1575617425154,
+    "duration": 1,
+    "pid": 24584,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575617425155,
+    "end": 1575617425163,
+    "duration": 8,
+    "pid": 24584,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575617425165,
+    "end": 1575617425166,
+    "duration": 1,
+    "pid": 24584,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575617425167,
+    "end": 1575617425168,
+    "duration": 1,
+    "pid": 24584,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575617425169,
+    "end": 1575617425169,
+    "duration": 0,
+    "pid": 24584,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575617425171,
+    "end": 1575617425171,
+    "duration": 0,
+    "pid": 24584,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575617425173,
+    "end": 1575617425174,
+    "duration": 1,
+    "pid": 24584,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575617425175,
+    "end": 1575617425176,
+    "duration": 1,
+    "pid": 24584,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575617425177,
+    "end": 1575617425178,
+    "duration": 1,
+    "pid": 24584,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575617425179,
+    "end": 1575617425179,
+    "duration": 0,
+    "pid": 24584,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575617425184,
+    "end": 1575617425184,
+    "duration": 0,
+    "pid": 24584,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575617425185,
+    "end": 1575617425186,
+    "duration": 1,
+    "pid": 24584,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575617425188,
+    "end": 1575617425189,
+    "duration": 1,
+    "pid": 24584,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575617425194,
+    "end": 1575617425194,
+    "duration": 0,
+    "pid": 24584,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575617425196,
+    "end": 1575617425197,
+    "duration": 1,
+    "pid": 24584,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575617425197,
+    "end": 1575617425197,
+    "duration": 0,
+    "pid": 24584,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575617425200,
+    "end": 1575617425253,
+    "duration": 53,
+    "pid": 24584,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575617425202,
+    "end": 1575617425203,
+    "duration": 1,
+    "pid": 24584,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575617425204,
+    "end": 1575617425207,
+    "duration": 3,
+    "pid": 24584,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575617425209,
+    "end": 1575617425212,
+    "duration": 3,
+    "pid": 24584,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575617425217,
+    "end": 1575617425236,
+    "duration": 19,
+    "pid": 24584,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575617425241,
+    "end": 1575617425244,
+    "duration": 3,
+    "pid": 24584,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575617425253,
+    "end": 1575617425270,
+    "duration": 17,
+    "pid": 24584,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575617425260,
+    "end": 1575617425263,
+    "duration": 3,
+    "pid": 24584,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575617425271,
+    "end": 1575617425291,
+    "duration": 20,
+    "pid": 24584,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575617425279,
+    "end": 1575617425283,
+    "duration": 4,
+    "pid": 24584,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575617425291,
+    "end": 1575617425501,
+    "duration": 210,
+    "pid": 24584,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575617425292,
+    "end": 1575617425366,
+    "duration": 74,
+    "pid": 24584,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575617425367,
+    "end": 1575617425370,
+    "duration": 3,
+    "pid": 24584,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575617425372,
+    "end": 1575617425373,
+    "duration": 1,
+    "pid": 24584,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575617425375,
+    "end": 1575617425482,
+    "duration": 107,
+    "pid": 24584,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575617425484,
+    "end": 1575617425487,
+    "duration": 3,
+    "pid": 24584,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575617425489,
+    "end": 1575617425489,
+    "duration": 0,
+    "pid": 24584,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575617425490,
+    "end": 1575617425495,
+    "duration": 5,
+    "pid": 24584,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575617425501,
+    "end": 1575617425547,
+    "duration": 46,
+    "pid": 24584,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575617425502,
+    "end": 1575617425536,
+    "duration": 34,
+    "pid": 24584,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575617425542,
+    "end": 1575617425542,
+    "duration": 0,
+    "pid": 24584,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575617425547,
+    "end": 1575617425644,
+    "duration": 97,
+    "pid": 24584,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575617425548,
+    "end": 1575617425548,
+    "duration": 0,
+    "pid": 24584,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575617425549,
+    "end": 1575617425553,
+    "duration": 4,
+    "pid": 24584,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575617425554,
+    "end": 1575617425568,
+    "duration": 14,
+    "pid": 24584,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575617425569,
+    "end": 1575617425592,
+    "duration": 23,
+    "pid": 24584,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575617425593,
+    "end": 1575617425600,
+    "duration": 7,
+    "pid": 24584,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575617425601,
+    "end": 1575617425603,
+    "duration": 2,
+    "pid": 24584,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575617425604,
+    "end": 1575617425608,
+    "duration": 4,
+    "pid": 24584,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575617425609,
+    "end": 1575617425609,
+    "duration": 0,
+    "pid": 24584,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575617425610,
+    "end": 1575617425610,
+    "duration": 0,
+    "pid": 24584,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575617425611,
+    "end": 1575617425611,
+    "duration": 0,
+    "pid": 24584,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575617425612,
+    "end": 1575617425639,
+    "duration": 27,
+    "pid": 24584,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575617425640,
+    "end": 1575617425642,
+    "duration": 2,
+    "pid": 24584,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575617425663,
+    "end": 1575617426065,
+    "duration": 402,
+    "pid": 24584,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575617425826,
+    "end": 1575617426072,
+    "duration": 246,
+    "pid": 24584,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575617425826,
+    "end": 1575617425851,
+    "duration": 25,
+    "pid": 24584,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575617425826,
+    "end": 1575617425851,
+    "duration": 25,
+    "pid": 24584,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575617425852,
+    "end": 1575617425986,
+    "duration": 134,
+    "pid": 24584,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575617425852,
+    "end": 1575617425967,
+    "duration": 115,
+    "pid": 24584,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575617425986,
+    "end": 1575617425998,
+    "duration": 12,
+    "pid": 24584,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575617425986,
+    "end": 1575617425998,
+    "duration": 12,
+    "pid": 24584,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575617425998,
+    "end": 1575617426003,
+    "duration": 5,
+    "pid": 24584,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575617425999,
+    "end": 1575617426000,
+    "duration": 1,
+    "pid": 24584,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575617426001,
+    "end": 1575617426030,
+    "duration": 29,
+    "pid": 24584,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_4432.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575617431254,
+    "end": 1575617434322,
+    "duration": 3068,
+    "pid": 4432,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575617431264,
+    "end": 1575617431351,
+    "duration": 87,
+    "pid": 4432,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575617431351,
+    "end": 1575617431447,
+    "duration": 96,
+    "pid": 4432,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575617431359,
+    "end": 1575617431360,
+    "duration": 1,
+    "pid": 4432,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575617431363,
+    "end": 1575617431365,
+    "duration": 2,
+    "pid": 4432,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575617431367,
+    "end": 1575617431368,
+    "duration": 1,
+    "pid": 4432,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575617431376,
+    "end": 1575617431376,
+    "duration": 0,
+    "pid": 4432,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575617431378,
+    "end": 1575617431379,
+    "duration": 1,
+    "pid": 4432,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575617431398,
+    "end": 1575617431399,
+    "duration": 1,
+    "pid": 4432,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575617431400,
+    "end": 1575617431402,
+    "duration": 2,
+    "pid": 4432,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575617431406,
+    "end": 1575617431408,
+    "duration": 2,
+    "pid": 4432,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575617431410,
+    "end": 1575617431414,
+    "duration": 4,
+    "pid": 4432,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575617431416,
+    "end": 1575617431416,
+    "duration": 0,
+    "pid": 4432,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575617431418,
+    "end": 1575617431418,
+    "duration": 0,
+    "pid": 4432,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575617431420,
+    "end": 1575617431421,
+    "duration": 1,
+    "pid": 4432,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575617431422,
+    "end": 1575617431423,
+    "duration": 1,
+    "pid": 4432,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575617431425,
+    "end": 1575617431425,
+    "duration": 0,
+    "pid": 4432,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575617431426,
+    "end": 1575617431427,
+    "duration": 1,
+    "pid": 4432,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575617431428,
+    "end": 1575617431429,
+    "duration": 1,
+    "pid": 4432,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575617431430,
+    "end": 1575617431431,
+    "duration": 1,
+    "pid": 4432,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575617431433,
+    "end": 1575617431433,
+    "duration": 0,
+    "pid": 4432,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575617431436,
+    "end": 1575617431437,
+    "duration": 1,
+    "pid": 4432,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575617431439,
+    "end": 1575617431440,
+    "duration": 1,
+    "pid": 4432,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575617431444,
+    "end": 1575617431445,
+    "duration": 1,
+    "pid": 4432,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575617431447,
+    "end": 1575617431447,
+    "duration": 0,
+    "pid": 4432,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575617431447,
+    "end": 1575617431447,
+    "duration": 0,
+    "pid": 4432,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575617431450,
+    "end": 1575617431498,
+    "duration": 48,
+    "pid": 4432,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575617431451,
+    "end": 1575617431452,
+    "duration": 1,
+    "pid": 4432,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575617431453,
+    "end": 1575617431457,
+    "duration": 4,
+    "pid": 4432,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575617431458,
+    "end": 1575617431461,
+    "duration": 3,
+    "pid": 4432,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575617431465,
+    "end": 1575617431482,
+    "duration": 17,
+    "pid": 4432,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575617431483,
+    "end": 1575617431487,
+    "duration": 4,
+    "pid": 4432,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575617431499,
+    "end": 1575617431518,
+    "duration": 19,
+    "pid": 4432,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575617431507,
+    "end": 1575617431510,
+    "duration": 3,
+    "pid": 4432,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575617431518,
+    "end": 1575617431538,
+    "duration": 20,
+    "pid": 4432,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575617431524,
+    "end": 1575617431530,
+    "duration": 6,
+    "pid": 4432,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575617431538,
+    "end": 1575617431720,
+    "duration": 182,
+    "pid": 4432,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575617431540,
+    "end": 1575617431577,
+    "duration": 37,
+    "pid": 4432,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575617431578,
+    "end": 1575617431581,
+    "duration": 3,
+    "pid": 4432,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575617431583,
+    "end": 1575617431584,
+    "duration": 1,
+    "pid": 4432,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575617431585,
+    "end": 1575617431704,
+    "duration": 119,
+    "pid": 4432,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575617431706,
+    "end": 1575617431709,
+    "duration": 3,
+    "pid": 4432,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575617431711,
+    "end": 1575617431711,
+    "duration": 0,
+    "pid": 4432,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575617431712,
+    "end": 1575617431716,
+    "duration": 4,
+    "pid": 4432,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575617431720,
+    "end": 1575617431762,
+    "duration": 42,
+    "pid": 4432,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575617431721,
+    "end": 1575617431754,
+    "duration": 33,
+    "pid": 4432,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575617431757,
+    "end": 1575617431758,
+    "duration": 1,
+    "pid": 4432,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575617431762,
+    "end": 1575617431852,
+    "duration": 90,
+    "pid": 4432,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575617431763,
+    "end": 1575617431763,
+    "duration": 0,
+    "pid": 4432,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575617431764,
+    "end": 1575617431767,
+    "duration": 3,
+    "pid": 4432,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575617431768,
+    "end": 1575617431782,
+    "duration": 14,
+    "pid": 4432,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575617431783,
+    "end": 1575617431799,
+    "duration": 16,
+    "pid": 4432,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575617431799,
+    "end": 1575617431805,
+    "duration": 6,
+    "pid": 4432,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575617431806,
+    "end": 1575617431808,
+    "duration": 2,
+    "pid": 4432,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575617431809,
+    "end": 1575617431813,
+    "duration": 4,
+    "pid": 4432,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575617431813,
+    "end": 1575617431814,
+    "duration": 1,
+    "pid": 4432,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575617431814,
+    "end": 1575617431815,
+    "duration": 1,
+    "pid": 4432,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575617431815,
+    "end": 1575617431816,
+    "duration": 1,
+    "pid": 4432,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575617431817,
+    "end": 1575617431848,
+    "duration": 31,
+    "pid": 4432,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575617431848,
+    "end": 1575617431851,
+    "duration": 3,
+    "pid": 4432,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575617431871,
+    "end": 1575617434313,
+    "duration": 2442,
+    "pid": 4432,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575617432042,
+    "end": 1575617434320,
+    "duration": 2278,
+    "pid": 4432,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575617432042,
+    "end": 1575617434039,
+    "duration": 1997,
+    "pid": 4432,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575617432043,
+    "end": 1575617434039,
+    "duration": 1996,
+    "pid": 4432,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575617434039,
+    "end": 1575617434208,
+    "duration": 169,
+    "pid": 4432,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575617434040,
+    "end": 1575617434195,
+    "duration": 155,
+    "pid": 4432,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575617434208,
+    "end": 1575617434217,
+    "duration": 9,
+    "pid": 4432,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575617434208,
+    "end": 1575617434217,
+    "duration": 9,
+    "pid": 4432,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575617434217,
+    "end": 1575617434222,
+    "duration": 5,
+    "pid": 4432,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575617434218,
+    "end": 1575617434220,
+    "duration": 2,
+    "pid": 4432,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575617434220,
+    "end": 1575617434241,
+    "duration": 21,
+    "pid": 4432,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_5172.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575617523220,
+    "end": 1575617528901,
+    "duration": 5681,
+    "pid": 5172,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575617523229,
+    "end": 1575617527137,
+    "duration": 3908,
+    "pid": 5172,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575617527138,
+    "end": 1575617527353,
+    "duration": 215,
+    "pid": 5172,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575617527140,
+    "end": 1575617527286,
+    "duration": 146,
+    "pid": 5172,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575617527288,
+    "end": 1575617527300,
+    "duration": 12,
+    "pid": 5172,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575617527303,
+    "end": 1575617527303,
+    "duration": 0,
+    "pid": 5172,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575617527304,
+    "end": 1575617527304,
+    "duration": 0,
+    "pid": 5172,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575617527306,
+    "end": 1575617527306,
+    "duration": 0,
+    "pid": 5172,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575617527307,
+    "end": 1575617527308,
+    "duration": 1,
+    "pid": 5172,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575617527313,
+    "end": 1575617527314,
+    "duration": 1,
+    "pid": 5172,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575617527315,
+    "end": 1575617527315,
+    "duration": 0,
+    "pid": 5172,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575617527316,
+    "end": 1575617527320,
+    "duration": 4,
+    "pid": 5172,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575617527321,
+    "end": 1575617527322,
+    "duration": 1,
+    "pid": 5172,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575617527323,
+    "end": 1575617527323,
+    "duration": 0,
+    "pid": 5172,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575617527324,
+    "end": 1575617527324,
+    "duration": 0,
+    "pid": 5172,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575617527329,
+    "end": 1575617527330,
+    "duration": 1,
+    "pid": 5172,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575617527331,
+    "end": 1575617527331,
+    "duration": 0,
+    "pid": 5172,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575617527333,
+    "end": 1575617527333,
+    "duration": 0,
+    "pid": 5172,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575617527334,
+    "end": 1575617527335,
+    "duration": 1,
+    "pid": 5172,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575617527335,
+    "end": 1575617527336,
+    "duration": 1,
+    "pid": 5172,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575617527338,
+    "end": 1575617527338,
+    "duration": 0,
+    "pid": 5172,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575617527339,
+    "end": 1575617527340,
+    "duration": 1,
+    "pid": 5172,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575617527342,
+    "end": 1575617527345,
+    "duration": 3,
+    "pid": 5172,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575617527349,
+    "end": 1575617527351,
+    "duration": 2,
+    "pid": 5172,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575617527353,
+    "end": 1575617527353,
+    "duration": 0,
+    "pid": 5172,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575617527353,
+    "end": 1575617527353,
+    "duration": 0,
+    "pid": 5172,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575617527355,
+    "end": 1575617527417,
+    "duration": 62,
+    "pid": 5172,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575617527356,
+    "end": 1575617527357,
+    "duration": 1,
+    "pid": 5172,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575617527358,
+    "end": 1575617527365,
+    "duration": 7,
+    "pid": 5172,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575617527366,
+    "end": 1575617527369,
+    "duration": 3,
+    "pid": 5172,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575617527372,
+    "end": 1575617527399,
+    "duration": 27,
+    "pid": 5172,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575617527401,
+    "end": 1575617527405,
+    "duration": 4,
+    "pid": 5172,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575617527417,
+    "end": 1575617527436,
+    "duration": 19,
+    "pid": 5172,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575617527422,
+    "end": 1575617527424,
+    "duration": 2,
+    "pid": 5172,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575617527436,
+    "end": 1575617527453,
+    "duration": 17,
+    "pid": 5172,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575617527440,
+    "end": 1575617527448,
+    "duration": 8,
+    "pid": 5172,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575617527453,
+    "end": 1575617527684,
+    "duration": 231,
+    "pid": 5172,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575617527454,
+    "end": 1575617527514,
+    "duration": 60,
+    "pid": 5172,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575617527515,
+    "end": 1575617527518,
+    "duration": 3,
+    "pid": 5172,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575617527521,
+    "end": 1575617527521,
+    "duration": 0,
+    "pid": 5172,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575617527523,
+    "end": 1575617527647,
+    "duration": 124,
+    "pid": 5172,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575617527650,
+    "end": 1575617527655,
+    "duration": 5,
+    "pid": 5172,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575617527656,
+    "end": 1575617527657,
+    "duration": 1,
+    "pid": 5172,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575617527658,
+    "end": 1575617527671,
+    "duration": 13,
+    "pid": 5172,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575617527684,
+    "end": 1575617527745,
+    "duration": 61,
+    "pid": 5172,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575617527687,
+    "end": 1575617527734,
+    "duration": 47,
+    "pid": 5172,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575617527739,
+    "end": 1575617527739,
+    "duration": 0,
+    "pid": 5172,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575617527746,
+    "end": 1575617527901,
+    "duration": 155,
+    "pid": 5172,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575617527747,
+    "end": 1575617527747,
+    "duration": 0,
+    "pid": 5172,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575617527748,
+    "end": 1575617527754,
+    "duration": 6,
+    "pid": 5172,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575617527756,
+    "end": 1575617527785,
+    "duration": 29,
+    "pid": 5172,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575617527787,
+    "end": 1575617527817,
+    "duration": 30,
+    "pid": 5172,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575617527818,
+    "end": 1575617527829,
+    "duration": 11,
+    "pid": 5172,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575617527830,
+    "end": 1575617527832,
+    "duration": 2,
+    "pid": 5172,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575617527833,
+    "end": 1575617527839,
+    "duration": 6,
+    "pid": 5172,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575617527840,
+    "end": 1575617527841,
+    "duration": 1,
+    "pid": 5172,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575617527842,
+    "end": 1575617527843,
+    "duration": 1,
+    "pid": 5172,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575617527844,
+    "end": 1575617527845,
+    "duration": 1,
+    "pid": 5172,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575617527847,
+    "end": 1575617527895,
+    "duration": 48,
+    "pid": 5172,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575617527896,
+    "end": 1575617527899,
+    "duration": 3,
+    "pid": 5172,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575617527928,
+    "end": 1575617528891,
+    "duration": 963,
+    "pid": 5172,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575617528095,
+    "end": 1575617528899,
+    "duration": 804,
+    "pid": 5172,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575617528095,
+    "end": 1575617528352,
+    "duration": 257,
+    "pid": 5172,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575617528095,
+    "end": 1575617528352,
+    "duration": 257,
+    "pid": 5172,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575617528353,
+    "end": 1575617528540,
+    "duration": 187,
+    "pid": 5172,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575617528353,
+    "end": 1575617528525,
+    "duration": 172,
+    "pid": 5172,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575617528540,
+    "end": 1575617528735,
+    "duration": 195,
+    "pid": 5172,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575617528540,
+    "end": 1575617528735,
+    "duration": 195,
+    "pid": 5172,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575617528735,
+    "end": 1575617528801,
+    "duration": 66,
+    "pid": 5172,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575617528736,
+    "end": 1575617528798,
+    "duration": 62,
+    "pid": 5172,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575617528799,
+    "end": 1575617528822,
+    "duration": 23,
+    "pid": 5172,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_5376.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575617979882,
+    "end": 1575617983698,
+    "duration": 3816,
+    "pid": 5376,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575617979890,
+    "end": 1575617979922,
+    "duration": 32,
+    "pid": 5376,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575617979922,
+    "end": 1575617979972,
+    "duration": 50,
+    "pid": 5376,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575617979924,
+    "end": 1575617979925,
+    "duration": 1,
+    "pid": 5376,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575617979927,
+    "end": 1575617979927,
+    "duration": 0,
+    "pid": 5376,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575617979928,
+    "end": 1575617979929,
+    "duration": 1,
+    "pid": 5376,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575617979930,
+    "end": 1575617979933,
+    "duration": 3,
+    "pid": 5376,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575617979939,
+    "end": 1575617979940,
+    "duration": 1,
+    "pid": 5376,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575617979941,
+    "end": 1575617979941,
+    "duration": 0,
+    "pid": 5376,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575617979943,
+    "end": 1575617979943,
+    "duration": 0,
+    "pid": 5376,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575617979945,
+    "end": 1575617979945,
+    "duration": 0,
+    "pid": 5376,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575617979947,
+    "end": 1575617979949,
+    "duration": 2,
+    "pid": 5376,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575617979951,
+    "end": 1575617979951,
+    "duration": 0,
+    "pid": 5376,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575617979952,
+    "end": 1575617979953,
+    "duration": 1,
+    "pid": 5376,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575617979954,
+    "end": 1575617979955,
+    "duration": 1,
+    "pid": 5376,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575617979956,
+    "end": 1575617979956,
+    "duration": 0,
+    "pid": 5376,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575617979957,
+    "end": 1575617979958,
+    "duration": 1,
+    "pid": 5376,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575617979959,
+    "end": 1575617979959,
+    "duration": 0,
+    "pid": 5376,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575617979960,
+    "end": 1575617979960,
+    "duration": 0,
+    "pid": 5376,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575617979961,
+    "end": 1575617979962,
+    "duration": 1,
+    "pid": 5376,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575617979963,
+    "end": 1575617979963,
+    "duration": 0,
+    "pid": 5376,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575617979965,
+    "end": 1575617979966,
+    "duration": 1,
+    "pid": 5376,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575617979967,
+    "end": 1575617979967,
+    "duration": 0,
+    "pid": 5376,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575617979969,
+    "end": 1575617979969,
+    "duration": 0,
+    "pid": 5376,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575617979971,
+    "end": 1575617979971,
+    "duration": 0,
+    "pid": 5376,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575617979972,
+    "end": 1575617979972,
+    "duration": 0,
+    "pid": 5376,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575617979974,
+    "end": 1575617980003,
+    "duration": 29,
+    "pid": 5376,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575617979975,
+    "end": 1575617979975,
+    "duration": 0,
+    "pid": 5376,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575617979976,
+    "end": 1575617979978,
+    "duration": 2,
+    "pid": 5376,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575617979979,
+    "end": 1575617979981,
+    "duration": 2,
+    "pid": 5376,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575617979984,
+    "end": 1575617979995,
+    "duration": 11,
+    "pid": 5376,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575617979996,
+    "end": 1575617979998,
+    "duration": 2,
+    "pid": 5376,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575617980003,
+    "end": 1575617980013,
+    "duration": 10,
+    "pid": 5376,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575617980007,
+    "end": 1575617980009,
+    "duration": 2,
+    "pid": 5376,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575617980013,
+    "end": 1575617980024,
+    "duration": 11,
+    "pid": 5376,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575617980018,
+    "end": 1575617980020,
+    "duration": 2,
+    "pid": 5376,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575617980024,
+    "end": 1575617980146,
+    "duration": 122,
+    "pid": 5376,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575617980025,
+    "end": 1575617980051,
+    "duration": 26,
+    "pid": 5376,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575617980051,
+    "end": 1575617980054,
+    "duration": 3,
+    "pid": 5376,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575617980055,
+    "end": 1575617980056,
+    "duration": 1,
+    "pid": 5376,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575617980057,
+    "end": 1575617980129,
+    "duration": 72,
+    "pid": 5376,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575617980131,
+    "end": 1575617980134,
+    "duration": 3,
+    "pid": 5376,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575617980136,
+    "end": 1575617980136,
+    "duration": 0,
+    "pid": 5376,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575617980137,
+    "end": 1575617980142,
+    "duration": 5,
+    "pid": 5376,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575617980146,
+    "end": 1575617980201,
+    "duration": 55,
+    "pid": 5376,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575617980148,
+    "end": 1575617980186,
+    "duration": 38,
+    "pid": 5376,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575617980192,
+    "end": 1575617980193,
+    "duration": 1,
+    "pid": 5376,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575617980201,
+    "end": 1575617980302,
+    "duration": 101,
+    "pid": 5376,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575617980202,
+    "end": 1575617980203,
+    "duration": 1,
+    "pid": 5376,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575617980204,
+    "end": 1575617980209,
+    "duration": 5,
+    "pid": 5376,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575617980210,
+    "end": 1575617980227,
+    "duration": 17,
+    "pid": 5376,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575617980228,
+    "end": 1575617980247,
+    "duration": 19,
+    "pid": 5376,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575617980247,
+    "end": 1575617980253,
+    "duration": 6,
+    "pid": 5376,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575617980254,
+    "end": 1575617980257,
+    "duration": 3,
+    "pid": 5376,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575617980258,
+    "end": 1575617980262,
+    "duration": 4,
+    "pid": 5376,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575617980262,
+    "end": 1575617980263,
+    "duration": 1,
+    "pid": 5376,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575617980263,
+    "end": 1575617980264,
+    "duration": 1,
+    "pid": 5376,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575617980265,
+    "end": 1575617980266,
+    "duration": 1,
+    "pid": 5376,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575617980267,
+    "end": 1575617980297,
+    "duration": 30,
+    "pid": 5376,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575617980298,
+    "end": 1575617980301,
+    "duration": 3,
+    "pid": 5376,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575617980323,
+    "end": 1575617983691,
+    "duration": 3368,
+    "pid": 5376,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575617980489,
+    "end": 1575617983696,
+    "duration": 3207,
+    "pid": 5376,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575617980489,
+    "end": 1575617980505,
+    "duration": 16,
+    "pid": 5376,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575617980490,
+    "end": 1575617980505,
+    "duration": 15,
+    "pid": 5376,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575617980505,
+    "end": 1575617980650,
+    "duration": 145,
+    "pid": 5376,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575617980505,
+    "end": 1575617980632,
+    "duration": 127,
+    "pid": 5376,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575617980650,
+    "end": 1575617980662,
+    "duration": 12,
+    "pid": 5376,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575617980650,
+    "end": 1575617980662,
+    "duration": 12,
+    "pid": 5376,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575617980662,
+    "end": 1575617983605,
+    "duration": 2943,
+    "pid": 5376,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575617980662,
+    "end": 1575617983603,
+    "duration": 2941,
+    "pid": 5376,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575617983604,
+    "end": 1575617983625,
+    "duration": 21,
+    "pid": 5376,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_6524.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575617274017,
+    "end": 1575617277953,
+    "duration": 3936,
+    "pid": 6524,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575617274027,
+    "end": 1575617274098,
+    "duration": 71,
+    "pid": 6524,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575617274099,
+    "end": 1575617274218,
+    "duration": 119,
+    "pid": 6524,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575617274101,
+    "end": 1575617274103,
+    "duration": 2,
+    "pid": 6524,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575617274106,
+    "end": 1575617274107,
+    "duration": 1,
+    "pid": 6524,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575617274109,
+    "end": 1575617274110,
+    "duration": 1,
+    "pid": 6524,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575617274116,
+    "end": 1575617274116,
+    "duration": 0,
+    "pid": 6524,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575617274118,
+    "end": 1575617274119,
+    "duration": 1,
+    "pid": 6524,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575617274120,
+    "end": 1575617274121,
+    "duration": 1,
+    "pid": 6524,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575617274122,
+    "end": 1575617274123,
+    "duration": 1,
+    "pid": 6524,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575617274125,
+    "end": 1575617274126,
+    "duration": 1,
+    "pid": 6524,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575617274127,
+    "end": 1575617274145,
+    "duration": 18,
+    "pid": 6524,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575617274146,
+    "end": 1575617274146,
+    "duration": 0,
+    "pid": 6524,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575617274148,
+    "end": 1575617274148,
+    "duration": 0,
+    "pid": 6524,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575617274150,
+    "end": 1575617274157,
+    "duration": 7,
+    "pid": 6524,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575617274159,
+    "end": 1575617274159,
+    "duration": 0,
+    "pid": 6524,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575617274161,
+    "end": 1575617274161,
+    "duration": 0,
+    "pid": 6524,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575617274164,
+    "end": 1575617274164,
+    "duration": 0,
+    "pid": 6524,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575617274166,
+    "end": 1575617274166,
+    "duration": 0,
+    "pid": 6524,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575617274168,
+    "end": 1575617274186,
+    "duration": 18,
+    "pid": 6524,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575617274194,
+    "end": 1575617274194,
+    "duration": 0,
+    "pid": 6524,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575617274196,
+    "end": 1575617274197,
+    "duration": 1,
+    "pid": 6524,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575617274199,
+    "end": 1575617274200,
+    "duration": 1,
+    "pid": 6524,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575617274203,
+    "end": 1575617274203,
+    "duration": 0,
+    "pid": 6524,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575617274217,
+    "end": 1575617274218,
+    "duration": 1,
+    "pid": 6524,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575617274218,
+    "end": 1575617274218,
+    "duration": 0,
+    "pid": 6524,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575617274233,
+    "end": 1575617274347,
+    "duration": 114,
+    "pid": 6524,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575617274235,
+    "end": 1575617274236,
+    "duration": 1,
+    "pid": 6524,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575617274242,
+    "end": 1575617274245,
+    "duration": 3,
+    "pid": 6524,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575617274246,
+    "end": 1575617274249,
+    "duration": 3,
+    "pid": 6524,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575617274253,
+    "end": 1575617274320,
+    "duration": 67,
+    "pid": 6524,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575617274326,
+    "end": 1575617274330,
+    "duration": 4,
+    "pid": 6524,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575617274347,
+    "end": 1575617274373,
+    "duration": 26,
+    "pid": 6524,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575617274354,
+    "end": 1575617274364,
+    "duration": 10,
+    "pid": 6524,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575617274373,
+    "end": 1575617274397,
+    "duration": 24,
+    "pid": 6524,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575617274384,
+    "end": 1575617274388,
+    "duration": 4,
+    "pid": 6524,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575617274397,
+    "end": 1575617274630,
+    "duration": 233,
+    "pid": 6524,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575617274399,
+    "end": 1575617274448,
+    "duration": 49,
+    "pid": 6524,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575617274449,
+    "end": 1575617274452,
+    "duration": 3,
+    "pid": 6524,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575617274453,
+    "end": 1575617274454,
+    "duration": 1,
+    "pid": 6524,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575617274456,
+    "end": 1575617274594,
+    "duration": 138,
+    "pid": 6524,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575617274596,
+    "end": 1575617274611,
+    "duration": 15,
+    "pid": 6524,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575617274612,
+    "end": 1575617274614,
+    "duration": 2,
+    "pid": 6524,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575617274615,
+    "end": 1575617274620,
+    "duration": 5,
+    "pid": 6524,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575617274631,
+    "end": 1575617274711,
+    "duration": 80,
+    "pid": 6524,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575617274632,
+    "end": 1575617274697,
+    "duration": 65,
+    "pid": 6524,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575617274702,
+    "end": 1575617274703,
+    "duration": 1,
+    "pid": 6524,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575617274712,
+    "end": 1575617274854,
+    "duration": 142,
+    "pid": 6524,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575617274713,
+    "end": 1575617274714,
+    "duration": 1,
+    "pid": 6524,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575617274715,
+    "end": 1575617274721,
+    "duration": 6,
+    "pid": 6524,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575617274723,
+    "end": 1575617274742,
+    "duration": 19,
+    "pid": 6524,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575617274743,
+    "end": 1575617274787,
+    "duration": 44,
+    "pid": 6524,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575617274788,
+    "end": 1575617274797,
+    "duration": 9,
+    "pid": 6524,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575617274798,
+    "end": 1575617274801,
+    "duration": 3,
+    "pid": 6524,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575617274802,
+    "end": 1575617274809,
+    "duration": 7,
+    "pid": 6524,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575617274810,
+    "end": 1575617274810,
+    "duration": 0,
+    "pid": 6524,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575617274811,
+    "end": 1575617274812,
+    "duration": 1,
+    "pid": 6524,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575617274813,
+    "end": 1575617274813,
+    "duration": 0,
+    "pid": 6524,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575617274815,
+    "end": 1575617274847,
+    "duration": 32,
+    "pid": 6524,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575617274848,
+    "end": 1575617274852,
+    "duration": 4,
+    "pid": 6524,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575617274876,
+    "end": 1575617277948,
+    "duration": 3072,
+    "pid": 6524,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575617275094,
+    "end": 1575617277952,
+    "duration": 2858,
+    "pid": 6524,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575617275094,
+    "end": 1575617277723,
+    "duration": 2629,
+    "pid": 6524,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575617275094,
+    "end": 1575617277723,
+    "duration": 2629,
+    "pid": 6524,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575617277723,
+    "end": 1575617277858,
+    "duration": 135,
+    "pid": 6524,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575617277723,
+    "end": 1575617277844,
+    "duration": 121,
+    "pid": 6524,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575617277858,
+    "end": 1575617277867,
+    "duration": 9,
+    "pid": 6524,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575617277858,
+    "end": 1575617277867,
+    "duration": 9,
+    "pid": 6524,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575617277867,
+    "end": 1575617277872,
+    "duration": 5,
+    "pid": 6524,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575617277868,
+    "end": 1575617277870,
+    "duration": 2,
+    "pid": 6524,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575617277870,
+    "end": 1575617277901,
+    "duration": 31,
+    "pid": 6524,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_7388.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575617723288,
+    "end": 1575617724519,
+    "duration": 1231,
+    "pid": 7388,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575617723295,
+    "end": 1575617723331,
+    "duration": 36,
+    "pid": 7388,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575617723332,
+    "end": 1575617723390,
+    "duration": 58,
+    "pid": 7388,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575617723333,
+    "end": 1575617723334,
+    "duration": 1,
+    "pid": 7388,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575617723336,
+    "end": 1575617723337,
+    "duration": 1,
+    "pid": 7388,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575617723338,
+    "end": 1575617723338,
+    "duration": 0,
+    "pid": 7388,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575617723340,
+    "end": 1575617723341,
+    "duration": 1,
+    "pid": 7388,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575617723342,
+    "end": 1575617723342,
+    "duration": 0,
+    "pid": 7388,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575617723344,
+    "end": 1575617723344,
+    "duration": 0,
+    "pid": 7388,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575617723345,
+    "end": 1575617723345,
+    "duration": 0,
+    "pid": 7388,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575617723347,
+    "end": 1575617723347,
+    "duration": 0,
+    "pid": 7388,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575617723348,
+    "end": 1575617723351,
+    "duration": 3,
+    "pid": 7388,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575617723352,
+    "end": 1575617723353,
+    "duration": 1,
+    "pid": 7388,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575617723355,
+    "end": 1575617723355,
+    "duration": 0,
+    "pid": 7388,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575617723357,
+    "end": 1575617723358,
+    "duration": 1,
+    "pid": 7388,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575617723359,
+    "end": 1575617723359,
+    "duration": 0,
+    "pid": 7388,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575617723361,
+    "end": 1575617723365,
+    "duration": 4,
+    "pid": 7388,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575617723373,
+    "end": 1575617723373,
+    "duration": 0,
+    "pid": 7388,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575617723377,
+    "end": 1575617723377,
+    "duration": 0,
+    "pid": 7388,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575617723378,
+    "end": 1575617723379,
+    "duration": 1,
+    "pid": 7388,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575617723381,
+    "end": 1575617723381,
+    "duration": 0,
+    "pid": 7388,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575617723382,
+    "end": 1575617723383,
+    "duration": 1,
+    "pid": 7388,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575617723384,
+    "end": 1575617723385,
+    "duration": 1,
+    "pid": 7388,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575617723387,
+    "end": 1575617723388,
+    "duration": 1,
+    "pid": 7388,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575617723390,
+    "end": 1575617723390,
+    "duration": 0,
+    "pid": 7388,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575617723390,
+    "end": 1575617723390,
+    "duration": 0,
+    "pid": 7388,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575617723392,
+    "end": 1575617723425,
+    "duration": 33,
+    "pid": 7388,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575617723393,
+    "end": 1575617723394,
+    "duration": 1,
+    "pid": 7388,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575617723394,
+    "end": 1575617723396,
+    "duration": 2,
+    "pid": 7388,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575617723397,
+    "end": 1575617723400,
+    "duration": 3,
+    "pid": 7388,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575617723403,
+    "end": 1575617723415,
+    "duration": 12,
+    "pid": 7388,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575617723416,
+    "end": 1575617723419,
+    "duration": 3,
+    "pid": 7388,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575617723425,
+    "end": 1575617723437,
+    "duration": 12,
+    "pid": 7388,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575617723429,
+    "end": 1575617723431,
+    "duration": 2,
+    "pid": 7388,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575617723437,
+    "end": 1575617723450,
+    "duration": 13,
+    "pid": 7388,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575617723442,
+    "end": 1575617723445,
+    "duration": 3,
+    "pid": 7388,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575617723450,
+    "end": 1575617723696,
+    "duration": 246,
+    "pid": 7388,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575617723452,
+    "end": 1575617723504,
+    "duration": 52,
+    "pid": 7388,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575617723505,
+    "end": 1575617723509,
+    "duration": 4,
+    "pid": 7388,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575617723511,
+    "end": 1575617723512,
+    "duration": 1,
+    "pid": 7388,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575617723514,
+    "end": 1575617723657,
+    "duration": 143,
+    "pid": 7388,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575617723667,
+    "end": 1575617723675,
+    "duration": 8,
+    "pid": 7388,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575617723677,
+    "end": 1575617723678,
+    "duration": 1,
+    "pid": 7388,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575617723679,
+    "end": 1575617723683,
+    "duration": 4,
+    "pid": 7388,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575617723696,
+    "end": 1575617723763,
+    "duration": 67,
+    "pid": 7388,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575617723697,
+    "end": 1575617723747,
+    "duration": 50,
+    "pid": 7388,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575617723755,
+    "end": 1575617723755,
+    "duration": 0,
+    "pid": 7388,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575617723763,
+    "end": 1575617723919,
+    "duration": 156,
+    "pid": 7388,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575617723764,
+    "end": 1575617723765,
+    "duration": 1,
+    "pid": 7388,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575617723766,
+    "end": 1575617723771,
+    "duration": 5,
+    "pid": 7388,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575617723774,
+    "end": 1575617723799,
+    "duration": 25,
+    "pid": 7388,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575617723800,
+    "end": 1575617723825,
+    "duration": 25,
+    "pid": 7388,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575617723827,
+    "end": 1575617723835,
+    "duration": 8,
+    "pid": 7388,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575617723836,
+    "end": 1575617723841,
+    "duration": 5,
+    "pid": 7388,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575617723843,
+    "end": 1575617723853,
+    "duration": 10,
+    "pid": 7388,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575617723855,
+    "end": 1575617723855,
+    "duration": 0,
+    "pid": 7388,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575617723856,
+    "end": 1575617723857,
+    "duration": 1,
+    "pid": 7388,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575617723858,
+    "end": 1575617723863,
+    "duration": 5,
+    "pid": 7388,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575617723867,
+    "end": 1575617723914,
+    "duration": 47,
+    "pid": 7388,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575617723915,
+    "end": 1575617723917,
+    "duration": 2,
+    "pid": 7388,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575617723943,
+    "end": 1575617724507,
+    "duration": 564,
+    "pid": 7388,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575617724173,
+    "end": 1575617724516,
+    "duration": 343,
+    "pid": 7388,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575617724173,
+    "end": 1575617724203,
+    "duration": 30,
+    "pid": 7388,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575617724173,
+    "end": 1575617724203,
+    "duration": 30,
+    "pid": 7388,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575617724203,
+    "end": 1575617724395,
+    "duration": 192,
+    "pid": 7388,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575617724203,
+    "end": 1575617724379,
+    "duration": 176,
+    "pid": 7388,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575617724395,
+    "end": 1575617724407,
+    "duration": 12,
+    "pid": 7388,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575617724396,
+    "end": 1575617724407,
+    "duration": 11,
+    "pid": 7388,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575617724407,
+    "end": 1575617724414,
+    "duration": 7,
+    "pid": 7388,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575617724409,
+    "end": 1575617724411,
+    "duration": 2,
+    "pid": 7388,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575617724411,
+    "end": 1575617724450,
+    "duration": 39,
+    "pid": 7388,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_8072.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575624372665,
+    "end": 1575624373753,
+    "duration": 1088,
+    "pid": 8072,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575624372674,
+    "end": 1575624372714,
+    "duration": 40,
+    "pid": 8072,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575624372715,
+    "end": 1575624372771,
+    "duration": 56,
+    "pid": 8072,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575624372717,
+    "end": 1575624372719,
+    "duration": 2,
+    "pid": 8072,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575624372722,
+    "end": 1575624372723,
+    "duration": 1,
+    "pid": 8072,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575624372724,
+    "end": 1575624372725,
+    "duration": 1,
+    "pid": 8072,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575624372727,
+    "end": 1575624372728,
+    "duration": 1,
+    "pid": 8072,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575624372730,
+    "end": 1575624372731,
+    "duration": 1,
+    "pid": 8072,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575624372732,
+    "end": 1575624372738,
+    "duration": 6,
+    "pid": 8072,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575624372739,
+    "end": 1575624372740,
+    "duration": 1,
+    "pid": 8072,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575624372741,
+    "end": 1575624372742,
+    "duration": 1,
+    "pid": 8072,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575624372743,
+    "end": 1575624372746,
+    "duration": 3,
+    "pid": 8072,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575624372747,
+    "end": 1575624372748,
+    "duration": 1,
+    "pid": 8072,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575624372749,
+    "end": 1575624372750,
+    "duration": 1,
+    "pid": 8072,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575624372751,
+    "end": 1575624372752,
+    "duration": 1,
+    "pid": 8072,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575624372753,
+    "end": 1575624372754,
+    "duration": 1,
+    "pid": 8072,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575624372755,
+    "end": 1575624372755,
+    "duration": 0,
+    "pid": 8072,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575624372757,
+    "end": 1575624372758,
+    "duration": 1,
+    "pid": 8072,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575624372758,
+    "end": 1575624372759,
+    "duration": 1,
+    "pid": 8072,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575624372760,
+    "end": 1575624372761,
+    "duration": 1,
+    "pid": 8072,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575624372762,
+    "end": 1575624372762,
+    "duration": 0,
+    "pid": 8072,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575624372763,
+    "end": 1575624372764,
+    "duration": 1,
+    "pid": 8072,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575624372766,
+    "end": 1575624372767,
+    "duration": 1,
+    "pid": 8072,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575624372769,
+    "end": 1575624372769,
+    "duration": 0,
+    "pid": 8072,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575624372771,
+    "end": 1575624372771,
+    "duration": 0,
+    "pid": 8072,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575624372771,
+    "end": 1575624372771,
+    "duration": 0,
+    "pid": 8072,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575624372773,
+    "end": 1575624372810,
+    "duration": 37,
+    "pid": 8072,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575624372774,
+    "end": 1575624372776,
+    "duration": 2,
+    "pid": 8072,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575624372777,
+    "end": 1575624372779,
+    "duration": 2,
+    "pid": 8072,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575624372780,
+    "end": 1575624372783,
+    "duration": 3,
+    "pid": 8072,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575624372786,
+    "end": 1575624372799,
+    "duration": 13,
+    "pid": 8072,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575624372800,
+    "end": 1575624372803,
+    "duration": 3,
+    "pid": 8072,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575624372810,
+    "end": 1575624372823,
+    "duration": 13,
+    "pid": 8072,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575624372814,
+    "end": 1575624372817,
+    "duration": 3,
+    "pid": 8072,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575624372823,
+    "end": 1575624372835,
+    "duration": 12,
+    "pid": 8072,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575624372828,
+    "end": 1575624372830,
+    "duration": 2,
+    "pid": 8072,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575624372835,
+    "end": 1575624373017,
+    "duration": 182,
+    "pid": 8072,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575624372836,
+    "end": 1575624372870,
+    "duration": 34,
+    "pid": 8072,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575624372871,
+    "end": 1575624372874,
+    "duration": 3,
+    "pid": 8072,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575624372875,
+    "end": 1575624372876,
+    "duration": 1,
+    "pid": 8072,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575624372877,
+    "end": 1575624373000,
+    "duration": 123,
+    "pid": 8072,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575624373002,
+    "end": 1575624373006,
+    "duration": 4,
+    "pid": 8072,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575624373007,
+    "end": 1575624373007,
+    "duration": 0,
+    "pid": 8072,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575624373008,
+    "end": 1575624373013,
+    "duration": 5,
+    "pid": 8072,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575624373017,
+    "end": 1575624373063,
+    "duration": 46,
+    "pid": 8072,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575624373018,
+    "end": 1575624373052,
+    "duration": 34,
+    "pid": 8072,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575624373057,
+    "end": 1575624373058,
+    "duration": 1,
+    "pid": 8072,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575624373064,
+    "end": 1575624373198,
+    "duration": 134,
+    "pid": 8072,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575624373064,
+    "end": 1575624373065,
+    "duration": 1,
+    "pid": 8072,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575624373066,
+    "end": 1575624373071,
+    "duration": 5,
+    "pid": 8072,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575624373072,
+    "end": 1575624373095,
+    "duration": 23,
+    "pid": 8072,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575624373096,
+    "end": 1575624373122,
+    "duration": 26,
+    "pid": 8072,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575624373122,
+    "end": 1575624373131,
+    "duration": 9,
+    "pid": 8072,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575624373132,
+    "end": 1575624373136,
+    "duration": 4,
+    "pid": 8072,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575624373138,
+    "end": 1575624373144,
+    "duration": 6,
+    "pid": 8072,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575624373145,
+    "end": 1575624373146,
+    "duration": 1,
+    "pid": 8072,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575624373146,
+    "end": 1575624373147,
+    "duration": 1,
+    "pid": 8072,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575624373148,
+    "end": 1575624373148,
+    "duration": 0,
+    "pid": 8072,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575624373150,
+    "end": 1575624373192,
+    "duration": 42,
+    "pid": 8072,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575624373193,
+    "end": 1575624373197,
+    "duration": 4,
+    "pid": 8072,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575624373225,
+    "end": 1575624373741,
+    "duration": 516,
+    "pid": 8072,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575624373444,
+    "end": 1575624373752,
+    "duration": 308,
+    "pid": 8072,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575624373444,
+    "end": 1575624373463,
+    "duration": 19,
+    "pid": 8072,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575624373445,
+    "end": 1575624373463,
+    "duration": 18,
+    "pid": 8072,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575624373463,
+    "end": 1575624373629,
+    "duration": 166,
+    "pid": 8072,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575624373464,
+    "end": 1575624373613,
+    "duration": 149,
+    "pid": 8072,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575624373629,
+    "end": 1575624373647,
+    "duration": 18,
+    "pid": 8072,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575624373629,
+    "end": 1575624373647,
+    "duration": 18,
+    "pid": 8072,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575624373647,
+    "end": 1575624373654,
+    "duration": 7,
+    "pid": 8072,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575624373648,
+    "end": 1575624373650,
+    "duration": 2,
+    "pid": 8072,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575624373650,
+    "end": 1575624373682,
+    "duration": 32,
+    "pid": 8072,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_8304.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575620345348,
+    "end": 1575620348455,
+    "duration": 3107,
+    "pid": 8304,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575620345356,
+    "end": 1575620345390,
+    "duration": 34,
+    "pid": 8304,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575620345390,
+    "end": 1575620345441,
+    "duration": 51,
+    "pid": 8304,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575620345392,
+    "end": 1575620345394,
+    "duration": 2,
+    "pid": 8304,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575620345397,
+    "end": 1575620345398,
+    "duration": 1,
+    "pid": 8304,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575620345401,
+    "end": 1575620345401,
+    "duration": 0,
+    "pid": 8304,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575620345403,
+    "end": 1575620345404,
+    "duration": 1,
+    "pid": 8304,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575620345406,
+    "end": 1575620345407,
+    "duration": 1,
+    "pid": 8304,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575620345408,
+    "end": 1575620345408,
+    "duration": 0,
+    "pid": 8304,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575620345409,
+    "end": 1575620345410,
+    "duration": 1,
+    "pid": 8304,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575620345411,
+    "end": 1575620345412,
+    "duration": 1,
+    "pid": 8304,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575620345413,
+    "end": 1575620345416,
+    "duration": 3,
+    "pid": 8304,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575620345417,
+    "end": 1575620345417,
+    "duration": 0,
+    "pid": 8304,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575620345418,
+    "end": 1575620345419,
+    "duration": 1,
+    "pid": 8304,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575620345420,
+    "end": 1575620345420,
+    "duration": 0,
+    "pid": 8304,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575620345421,
+    "end": 1575620345421,
+    "duration": 0,
+    "pid": 8304,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575620345422,
+    "end": 1575620345423,
+    "duration": 1,
+    "pid": 8304,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575620345424,
+    "end": 1575620345424,
+    "duration": 0,
+    "pid": 8304,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575620345426,
+    "end": 1575620345426,
+    "duration": 0,
+    "pid": 8304,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575620345427,
+    "end": 1575620345428,
+    "duration": 1,
+    "pid": 8304,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575620345430,
+    "end": 1575620345430,
+    "duration": 0,
+    "pid": 8304,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575620345431,
+    "end": 1575620345432,
+    "duration": 1,
+    "pid": 8304,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575620345434,
+    "end": 1575620345435,
+    "duration": 1,
+    "pid": 8304,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575620345438,
+    "end": 1575620345439,
+    "duration": 1,
+    "pid": 8304,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575620345440,
+    "end": 1575620345441,
+    "duration": 1,
+    "pid": 8304,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575620345441,
+    "end": 1575620345441,
+    "duration": 0,
+    "pid": 8304,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575620345443,
+    "end": 1575620345474,
+    "duration": 31,
+    "pid": 8304,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575620345444,
+    "end": 1575620345445,
+    "duration": 1,
+    "pid": 8304,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575620345447,
+    "end": 1575620345449,
+    "duration": 2,
+    "pid": 8304,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575620345450,
+    "end": 1575620345452,
+    "duration": 2,
+    "pid": 8304,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575620345455,
+    "end": 1575620345464,
+    "duration": 9,
+    "pid": 8304,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575620345467,
+    "end": 1575620345469,
+    "duration": 2,
+    "pid": 8304,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575620345474,
+    "end": 1575620345487,
+    "duration": 13,
+    "pid": 8304,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575620345478,
+    "end": 1575620345480,
+    "duration": 2,
+    "pid": 8304,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575620345487,
+    "end": 1575620345510,
+    "duration": 23,
+    "pid": 8304,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575620345503,
+    "end": 1575620345506,
+    "duration": 3,
+    "pid": 8304,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575620345510,
+    "end": 1575620345634,
+    "duration": 124,
+    "pid": 8304,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575620345511,
+    "end": 1575620345539,
+    "duration": 28,
+    "pid": 8304,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575620345539,
+    "end": 1575620345542,
+    "duration": 3,
+    "pid": 8304,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575620345543,
+    "end": 1575620345543,
+    "duration": 0,
+    "pid": 8304,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575620345545,
+    "end": 1575620345619,
+    "duration": 74,
+    "pid": 8304,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575620345620,
+    "end": 1575620345623,
+    "duration": 3,
+    "pid": 8304,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575620345625,
+    "end": 1575620345625,
+    "duration": 0,
+    "pid": 8304,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575620345626,
+    "end": 1575620345629,
+    "duration": 3,
+    "pid": 8304,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575620345634,
+    "end": 1575620345672,
+    "duration": 38,
+    "pid": 8304,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575620345635,
+    "end": 1575620345664,
+    "duration": 29,
+    "pid": 8304,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575620345667,
+    "end": 1575620345668,
+    "duration": 1,
+    "pid": 8304,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575620345673,
+    "end": 1575620345776,
+    "duration": 103,
+    "pid": 8304,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575620345673,
+    "end": 1575620345674,
+    "duration": 1,
+    "pid": 8304,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575620345675,
+    "end": 1575620345678,
+    "duration": 3,
+    "pid": 8304,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575620345679,
+    "end": 1575620345695,
+    "duration": 16,
+    "pid": 8304,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575620345696,
+    "end": 1575620345714,
+    "duration": 18,
+    "pid": 8304,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575620345714,
+    "end": 1575620345721,
+    "duration": 7,
+    "pid": 8304,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575620345722,
+    "end": 1575620345725,
+    "duration": 3,
+    "pid": 8304,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575620345725,
+    "end": 1575620345730,
+    "duration": 5,
+    "pid": 8304,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575620345731,
+    "end": 1575620345731,
+    "duration": 0,
+    "pid": 8304,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575620345732,
+    "end": 1575620345733,
+    "duration": 1,
+    "pid": 8304,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575620345733,
+    "end": 1575620345734,
+    "duration": 1,
+    "pid": 8304,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575620345735,
+    "end": 1575620345771,
+    "duration": 36,
+    "pid": 8304,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575620345771,
+    "end": 1575620345774,
+    "duration": 3,
+    "pid": 8304,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575620345797,
+    "end": 1575620348446,
+    "duration": 2649,
+    "pid": 8304,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575620345971,
+    "end": 1575620348453,
+    "duration": 2482,
+    "pid": 8304,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575620345972,
+    "end": 1575620348195,
+    "duration": 2223,
+    "pid": 8304,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575620345972,
+    "end": 1575620348195,
+    "duration": 2223,
+    "pid": 8304,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575620348196,
+    "end": 1575620348350,
+    "duration": 154,
+    "pid": 8304,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575620348196,
+    "end": 1575620348336,
+    "duration": 140,
+    "pid": 8304,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575620348350,
+    "end": 1575620348363,
+    "duration": 13,
+    "pid": 8304,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575620348350,
+    "end": 1575620348363,
+    "duration": 13,
+    "pid": 8304,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575620348363,
+    "end": 1575620348367,
+    "duration": 4,
+    "pid": 8304,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575620348364,
+    "end": 1575620348365,
+    "duration": 1,
+    "pid": 8304,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575620348365,
+    "end": 1575620348386,
+    "duration": 21,
+    "pid": 8304,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_8628.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575620257357,
+    "end": 1575620260753,
+    "duration": 3396,
+    "pid": 8628,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575620257368,
+    "end": 1575620257418,
+    "duration": 50,
+    "pid": 8628,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575620257419,
+    "end": 1575620257473,
+    "duration": 54,
+    "pid": 8628,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575620257423,
+    "end": 1575620257425,
+    "duration": 2,
+    "pid": 8628,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575620257433,
+    "end": 1575620257434,
+    "duration": 1,
+    "pid": 8628,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575620257436,
+    "end": 1575620257436,
+    "duration": 0,
+    "pid": 8628,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575620257437,
+    "end": 1575620257437,
+    "duration": 0,
+    "pid": 8628,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575620257438,
+    "end": 1575620257439,
+    "duration": 1,
+    "pid": 8628,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575620257440,
+    "end": 1575620257440,
+    "duration": 0,
+    "pid": 8628,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575620257441,
+    "end": 1575620257441,
+    "duration": 0,
+    "pid": 8628,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575620257445,
+    "end": 1575620257446,
+    "duration": 1,
+    "pid": 8628,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575620257447,
+    "end": 1575620257450,
+    "duration": 3,
+    "pid": 8628,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575620257451,
+    "end": 1575620257452,
+    "duration": 1,
+    "pid": 8628,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575620257453,
+    "end": 1575620257454,
+    "duration": 1,
+    "pid": 8628,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575620257455,
+    "end": 1575620257455,
+    "duration": 0,
+    "pid": 8628,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575620257456,
+    "end": 1575620257457,
+    "duration": 1,
+    "pid": 8628,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575620257458,
+    "end": 1575620257458,
+    "duration": 0,
+    "pid": 8628,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575620257459,
+    "end": 1575620257459,
+    "duration": 0,
+    "pid": 8628,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575620257461,
+    "end": 1575620257461,
+    "duration": 0,
+    "pid": 8628,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575620257463,
+    "end": 1575620257464,
+    "duration": 1,
+    "pid": 8628,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575620257465,
+    "end": 1575620257465,
+    "duration": 0,
+    "pid": 8628,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575620257466,
+    "end": 1575620257467,
+    "duration": 1,
+    "pid": 8628,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575620257468,
+    "end": 1575620257468,
+    "duration": 0,
+    "pid": 8628,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575620257470,
+    "end": 1575620257471,
+    "duration": 1,
+    "pid": 8628,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575620257472,
+    "end": 1575620257472,
+    "duration": 0,
+    "pid": 8628,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575620257473,
+    "end": 1575620257473,
+    "duration": 0,
+    "pid": 8628,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575620257475,
+    "end": 1575620257508,
+    "duration": 33,
+    "pid": 8628,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575620257478,
+    "end": 1575620257478,
+    "duration": 0,
+    "pid": 8628,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575620257480,
+    "end": 1575620257481,
+    "duration": 1,
+    "pid": 8628,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575620257482,
+    "end": 1575620257485,
+    "duration": 3,
+    "pid": 8628,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575620257487,
+    "end": 1575620257499,
+    "duration": 12,
+    "pid": 8628,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575620257501,
+    "end": 1575620257503,
+    "duration": 2,
+    "pid": 8628,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575620257508,
+    "end": 1575620257521,
+    "duration": 13,
+    "pid": 8628,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575620257514,
+    "end": 1575620257516,
+    "duration": 2,
+    "pid": 8628,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575620257521,
+    "end": 1575620257535,
+    "duration": 14,
+    "pid": 8628,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575620257525,
+    "end": 1575620257529,
+    "duration": 4,
+    "pid": 8628,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575620257535,
+    "end": 1575620257674,
+    "duration": 139,
+    "pid": 8628,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575620257536,
+    "end": 1575620257565,
+    "duration": 29,
+    "pid": 8628,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575620257565,
+    "end": 1575620257567,
+    "duration": 2,
+    "pid": 8628,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575620257570,
+    "end": 1575620257570,
+    "duration": 0,
+    "pid": 8628,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575620257572,
+    "end": 1575620257652,
+    "duration": 80,
+    "pid": 8628,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575620257653,
+    "end": 1575620257657,
+    "duration": 4,
+    "pid": 8628,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575620257659,
+    "end": 1575620257660,
+    "duration": 1,
+    "pid": 8628,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575620257661,
+    "end": 1575620257666,
+    "duration": 5,
+    "pid": 8628,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575620257674,
+    "end": 1575620257737,
+    "duration": 63,
+    "pid": 8628,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575620257675,
+    "end": 1575620257725,
+    "duration": 50,
+    "pid": 8628,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575620257732,
+    "end": 1575620257732,
+    "duration": 0,
+    "pid": 8628,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575620257738,
+    "end": 1575620257866,
+    "duration": 128,
+    "pid": 8628,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575620257739,
+    "end": 1575620257739,
+    "duration": 0,
+    "pid": 8628,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575620257740,
+    "end": 1575620257744,
+    "duration": 4,
+    "pid": 8628,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575620257747,
+    "end": 1575620257768,
+    "duration": 21,
+    "pid": 8628,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575620257769,
+    "end": 1575620257790,
+    "duration": 21,
+    "pid": 8628,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575620257791,
+    "end": 1575620257801,
+    "duration": 10,
+    "pid": 8628,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575620257801,
+    "end": 1575620257805,
+    "duration": 4,
+    "pid": 8628,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575620257806,
+    "end": 1575620257812,
+    "duration": 6,
+    "pid": 8628,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575620257814,
+    "end": 1575620257815,
+    "duration": 1,
+    "pid": 8628,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575620257816,
+    "end": 1575620257816,
+    "duration": 0,
+    "pid": 8628,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575620257817,
+    "end": 1575620257818,
+    "duration": 1,
+    "pid": 8628,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575620257820,
+    "end": 1575620257859,
+    "duration": 39,
+    "pid": 8628,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575620257860,
+    "end": 1575620257865,
+    "duration": 5,
+    "pid": 8628,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575620257888,
+    "end": 1575620260747,
+    "duration": 2859,
+    "pid": 8628,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575620258068,
+    "end": 1575620260751,
+    "duration": 2683,
+    "pid": 8628,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575620258068,
+    "end": 1575620258081,
+    "duration": 13,
+    "pid": 8628,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575620258068,
+    "end": 1575620258081,
+    "duration": 13,
+    "pid": 8628,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575620258081,
+    "end": 1575620258219,
+    "duration": 138,
+    "pid": 8628,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575620258081,
+    "end": 1575620258205,
+    "duration": 124,
+    "pid": 8628,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575620258219,
+    "end": 1575620260652,
+    "duration": 2433,
+    "pid": 8628,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575620258219,
+    "end": 1575620260652,
+    "duration": 2433,
+    "pid": 8628,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575620260652,
+    "end": 1575620260657,
+    "duration": 5,
+    "pid": 8628,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575620260653,
+    "end": 1575620260654,
+    "duration": 1,
+    "pid": 8628,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575620260655,
+    "end": 1575620260677,
+    "duration": 22,
+    "pid": 8628,
+    "index": 70
+  }
+]

+ 570 - 0
代码/后端/run/application_timing_9148.json

@@ -0,0 +1,570 @@
+[
+  {
+    "name": "Application Start",
+    "start": 1575617307689,
+    "end": 1575617312081,
+    "duration": 4392,
+    "pid": 9148,
+    "index": 0
+  },
+  {
+    "name": "Load Plugin",
+    "start": 1575617307709,
+    "end": 1575617307781,
+    "duration": 72,
+    "pid": 9148,
+    "index": 1
+  },
+  {
+    "name": "Load Config",
+    "start": 1575617307781,
+    "end": 1575617307850,
+    "duration": 69,
+    "pid": 9148,
+    "index": 2
+  },
+  {
+    "name": "Require(0) config/config.default.ts",
+    "start": 1575617307784,
+    "end": 1575617307785,
+    "duration": 1,
+    "pid": 9148,
+    "index": 3
+  },
+  {
+    "name": "Require(1) config/config.local.ts",
+    "start": 1575617307788,
+    "end": 1575617307789,
+    "duration": 1,
+    "pid": 9148,
+    "index": 4
+  },
+  {
+    "name": "Require(2) node_modules/egg-session/config/config.default.js",
+    "start": 1575617307790,
+    "end": 1575617307791,
+    "duration": 1,
+    "pid": 9148,
+    "index": 5
+  },
+  {
+    "name": "Require(3) node_modules/egg-security/config/config.default.js",
+    "start": 1575617307793,
+    "end": 1575617307793,
+    "duration": 0,
+    "pid": 9148,
+    "index": 6
+  },
+  {
+    "name": "Require(4) node_modules/egg-jsonp/config/config.default.js",
+    "start": 1575617307796,
+    "end": 1575617307797,
+    "duration": 1,
+    "pid": 9148,
+    "index": 7
+  },
+  {
+    "name": "Require(5) node_modules/egg-onerror/config/config.default.js",
+    "start": 1575617307798,
+    "end": 1575617307798,
+    "duration": 0,
+    "pid": 9148,
+    "index": 8
+  },
+  {
+    "name": "Require(6) node_modules/egg-i18n/config/config.default.js",
+    "start": 1575617307800,
+    "end": 1575617307800,
+    "duration": 0,
+    "pid": 9148,
+    "index": 9
+  },
+  {
+    "name": "Require(7) node_modules/egg-watcher/config/config.default.js",
+    "start": 1575617307803,
+    "end": 1575617307804,
+    "duration": 1,
+    "pid": 9148,
+    "index": 10
+  },
+  {
+    "name": "Require(8) node_modules/egg-schedule/config/config.default.js",
+    "start": 1575617307806,
+    "end": 1575617307809,
+    "duration": 3,
+    "pid": 9148,
+    "index": 11
+  },
+  {
+    "name": "Require(9) node_modules/egg-multipart/config/config.default.js",
+    "start": 1575617307810,
+    "end": 1575617307811,
+    "duration": 1,
+    "pid": 9148,
+    "index": 12
+  },
+  {
+    "name": "Require(10) node_modules/egg-development/config/config.default.js",
+    "start": 1575617307812,
+    "end": 1575617307813,
+    "duration": 1,
+    "pid": 9148,
+    "index": 13
+  },
+  {
+    "name": "Require(11) node_modules/egg-logrotator/config/config.default.js",
+    "start": 1575617307814,
+    "end": 1575617307814,
+    "duration": 0,
+    "pid": 9148,
+    "index": 14
+  },
+  {
+    "name": "Require(12) node_modules/egg-static/config/config.default.js",
+    "start": 1575617307818,
+    "end": 1575617307819,
+    "duration": 1,
+    "pid": 9148,
+    "index": 15
+  },
+  {
+    "name": "Require(13) node_modules/egg-view/config/config.default.js",
+    "start": 1575617307820,
+    "end": 1575617307821,
+    "duration": 1,
+    "pid": 9148,
+    "index": 16
+  },
+  {
+    "name": "Require(14) node_modules/egg-mysql/config/config.default.js",
+    "start": 1575617307822,
+    "end": 1575617307823,
+    "duration": 1,
+    "pid": 9148,
+    "index": 17
+  },
+  {
+    "name": "Require(15) node_modules/egg-validate/config/config.default.js",
+    "start": 1575617307824,
+    "end": 1575617307824,
+    "duration": 0,
+    "pid": 9148,
+    "index": 18
+  },
+  {
+    "name": "Require(16) node_modules/egg/config/config.default.js",
+    "start": 1575617307825,
+    "end": 1575617307826,
+    "duration": 1,
+    "pid": 9148,
+    "index": 19
+  },
+  {
+    "name": "Require(17) config/config.default.ts",
+    "start": 1575617307829,
+    "end": 1575617307829,
+    "duration": 0,
+    "pid": 9148,
+    "index": 20
+  },
+  {
+    "name": "Require(18) node_modules/egg-security/config/config.local.js",
+    "start": 1575617307830,
+    "end": 1575617307835,
+    "duration": 5,
+    "pid": 9148,
+    "index": 21
+  },
+  {
+    "name": "Require(19) node_modules/egg-watcher/config/config.local.js",
+    "start": 1575617307843,
+    "end": 1575617307843,
+    "duration": 0,
+    "pid": 9148,
+    "index": 22
+  },
+  {
+    "name": "Require(20) node_modules/egg-view/config/config.local.js",
+    "start": 1575617307847,
+    "end": 1575617307848,
+    "duration": 1,
+    "pid": 9148,
+    "index": 23
+  },
+  {
+    "name": "Require(21) node_modules/egg/config/config.local.js",
+    "start": 1575617307850,
+    "end": 1575617307850,
+    "duration": 0,
+    "pid": 9148,
+    "index": 24
+  },
+  {
+    "name": "Require(22) config/config.local.ts",
+    "start": 1575617307850,
+    "end": 1575617307850,
+    "duration": 0,
+    "pid": 9148,
+    "index": 25
+  },
+  {
+    "name": "Load extend/application.js",
+    "start": 1575617307856,
+    "end": 1575617307894,
+    "duration": 38,
+    "pid": 9148,
+    "index": 26
+  },
+  {
+    "name": "Require(23) node_modules/egg-session/app/extend/application.js",
+    "start": 1575617307857,
+    "end": 1575617307858,
+    "duration": 1,
+    "pid": 9148,
+    "index": 27
+  },
+  {
+    "name": "Require(24) node_modules/egg-security/app/extend/application.js",
+    "start": 1575617307859,
+    "end": 1575617307860,
+    "duration": 1,
+    "pid": 9148,
+    "index": 28
+  },
+  {
+    "name": "Require(25) node_modules/egg-jsonp/app/extend/application.js",
+    "start": 1575617307861,
+    "end": 1575617307865,
+    "duration": 4,
+    "pid": 9148,
+    "index": 29
+  },
+  {
+    "name": "Require(26) node_modules/egg-logrotator/app/extend/application.js",
+    "start": 1575617307867,
+    "end": 1575617307881,
+    "duration": 14,
+    "pid": 9148,
+    "index": 30
+  },
+  {
+    "name": "Require(27) node_modules/egg-view/app/extend/application.js",
+    "start": 1575617307883,
+    "end": 1575617307886,
+    "duration": 3,
+    "pid": 9148,
+    "index": 31
+  },
+  {
+    "name": "Load extend/request.js",
+    "start": 1575617307894,
+    "end": 1575617307922,
+    "duration": 28,
+    "pid": 9148,
+    "index": 32
+  },
+  {
+    "name": "Require(28) node_modules/egg/app/extend/request.js",
+    "start": 1575617307901,
+    "end": 1575617307912,
+    "duration": 11,
+    "pid": 9148,
+    "index": 33
+  },
+  {
+    "name": "Load extend/response.js",
+    "start": 1575617307922,
+    "end": 1575617307944,
+    "duration": 22,
+    "pid": 9148,
+    "index": 34
+  },
+  {
+    "name": "Require(29) node_modules/egg/app/extend/response.js",
+    "start": 1575617307931,
+    "end": 1575617307936,
+    "duration": 5,
+    "pid": 9148,
+    "index": 35
+  },
+  {
+    "name": "Load extend/context.js",
+    "start": 1575617307944,
+    "end": 1575617308136,
+    "duration": 192,
+    "pid": 9148,
+    "index": 36
+  },
+  {
+    "name": "Require(30) node_modules/egg-security/app/extend/context.js",
+    "start": 1575617307945,
+    "end": 1575617307983,
+    "duration": 38,
+    "pid": 9148,
+    "index": 37
+  },
+  {
+    "name": "Require(31) node_modules/egg-jsonp/app/extend/context.js",
+    "start": 1575617307984,
+    "end": 1575617307988,
+    "duration": 4,
+    "pid": 9148,
+    "index": 38
+  },
+  {
+    "name": "Require(32) node_modules/egg-i18n/app/extend/context.js",
+    "start": 1575617307990,
+    "end": 1575617307991,
+    "duration": 1,
+    "pid": 9148,
+    "index": 39
+  },
+  {
+    "name": "Require(33) node_modules/egg-multipart/app/extend/context.js",
+    "start": 1575617307993,
+    "end": 1575617308111,
+    "duration": 118,
+    "pid": 9148,
+    "index": 40
+  },
+  {
+    "name": "Require(34) node_modules/egg-view/app/extend/context.js",
+    "start": 1575617308113,
+    "end": 1575617308116,
+    "duration": 3,
+    "pid": 9148,
+    "index": 41
+  },
+  {
+    "name": "Require(35) node_modules/egg-validate/app/extend/context.js",
+    "start": 1575617308120,
+    "end": 1575617308121,
+    "duration": 1,
+    "pid": 9148,
+    "index": 42
+  },
+  {
+    "name": "Require(36) node_modules/egg/app/extend/context.js",
+    "start": 1575617308122,
+    "end": 1575617308129,
+    "duration": 7,
+    "pid": 9148,
+    "index": 43
+  },
+  {
+    "name": "Load extend/helper.js",
+    "start": 1575617308137,
+    "end": 1575617308238,
+    "duration": 101,
+    "pid": 9148,
+    "index": 44
+  },
+  {
+    "name": "Require(37) node_modules/egg-security/app/extend/helper.js",
+    "start": 1575617308138,
+    "end": 1575617308202,
+    "duration": 64,
+    "pid": 9148,
+    "index": 45
+  },
+  {
+    "name": "Require(38) node_modules/egg/app/extend/helper.js",
+    "start": 1575617308209,
+    "end": 1575617308212,
+    "duration": 3,
+    "pid": 9148,
+    "index": 46
+  },
+  {
+    "name": "Load app.js",
+    "start": 1575617308238,
+    "end": 1575617308526,
+    "duration": 288,
+    "pid": 9148,
+    "index": 47
+  },
+  {
+    "name": "Require(39) node_modules/egg-session/app.js",
+    "start": 1575617308240,
+    "end": 1575617308241,
+    "duration": 1,
+    "pid": 9148,
+    "index": 48
+  },
+  {
+    "name": "Require(40) node_modules/egg-security/app.js",
+    "start": 1575617308242,
+    "end": 1575617308248,
+    "duration": 6,
+    "pid": 9148,
+    "index": 49
+  },
+  {
+    "name": "Require(41) node_modules/egg-onerror/app.js",
+    "start": 1575617308256,
+    "end": 1575617308290,
+    "duration": 34,
+    "pid": 9148,
+    "index": 50
+  },
+  {
+    "name": "Require(42) node_modules/egg-i18n/app.js",
+    "start": 1575617308291,
+    "end": 1575617308349,
+    "duration": 58,
+    "pid": 9148,
+    "index": 51
+  },
+  {
+    "name": "Require(43) node_modules/egg-watcher/app.js",
+    "start": 1575617308350,
+    "end": 1575617308366,
+    "duration": 16,
+    "pid": 9148,
+    "index": 52
+  },
+  {
+    "name": "Require(44) node_modules/egg-schedule/app.js",
+    "start": 1575617308371,
+    "end": 1575617308376,
+    "duration": 5,
+    "pid": 9148,
+    "index": 53
+  },
+  {
+    "name": "Require(45) node_modules/egg-multipart/app.js",
+    "start": 1575617308377,
+    "end": 1575617308382,
+    "duration": 5,
+    "pid": 9148,
+    "index": 54
+  },
+  {
+    "name": "Require(46) node_modules/egg-development/app.js",
+    "start": 1575617308383,
+    "end": 1575617308385,
+    "duration": 2,
+    "pid": 9148,
+    "index": 55
+  },
+  {
+    "name": "Require(47) node_modules/egg-logrotator/app.js",
+    "start": 1575617308389,
+    "end": 1575617308390,
+    "duration": 1,
+    "pid": 9148,
+    "index": 56
+  },
+  {
+    "name": "Require(48) node_modules/egg-static/app.js",
+    "start": 1575617308391,
+    "end": 1575617308392,
+    "duration": 1,
+    "pid": 9148,
+    "index": 57
+  },
+  {
+    "name": "Require(49) node_modules/egg-mysql/app.js",
+    "start": 1575617308395,
+    "end": 1575617308500,
+    "duration": 105,
+    "pid": 9148,
+    "index": 58
+  },
+  {
+    "name": "Require(50) node_modules/egg-validate/app.js",
+    "start": 1575617308509,
+    "end": 1575617308516,
+    "duration": 7,
+    "pid": 9148,
+    "index": 59
+  },
+  {
+    "name": "Before Start in node_modules/egg-watcher/lib/init.js:15:14",
+    "start": 1575617308595,
+    "end": 1575617312073,
+    "duration": 3478,
+    "pid": 9148,
+    "index": 60
+  },
+  {
+    "name": "Before Start in node_modules/egg-mysql/lib/mysql.js:20:7",
+    "start": 1575617309246,
+    "end": 1575617312079,
+    "duration": 2833,
+    "pid": 9148,
+    "index": 61
+  },
+  {
+    "name": "Load Service",
+    "start": 1575617309247,
+    "end": 1575617309273,
+    "duration": 26,
+    "pid": 9148,
+    "index": 62
+  },
+  {
+    "name": "Load \"service\" to Context",
+    "start": 1575617309248,
+    "end": 1575617309273,
+    "duration": 25,
+    "pid": 9148,
+    "index": 63
+  },
+  {
+    "name": "Load Middleware",
+    "start": 1575617309273,
+    "end": 1575617309465,
+    "duration": 192,
+    "pid": 9148,
+    "index": 64
+  },
+  {
+    "name": "Load \"middlewares\" to Application",
+    "start": 1575617309273,
+    "end": 1575617309442,
+    "duration": 169,
+    "pid": 9148,
+    "index": 65
+  },
+  {
+    "name": "Load Controller",
+    "start": 1575617309465,
+    "end": 1575617311965,
+    "duration": 2500,
+    "pid": 9148,
+    "index": 66
+  },
+  {
+    "name": "Load \"controller\" to Application",
+    "start": 1575617309466,
+    "end": 1575617311965,
+    "duration": 2499,
+    "pid": 9148,
+    "index": 67
+  },
+  {
+    "name": "Load Router",
+    "start": 1575617311965,
+    "end": 1575617311973,
+    "duration": 8,
+    "pid": 9148,
+    "index": 68
+  },
+  {
+    "name": "Require(51) app/router.ts",
+    "start": 1575617311966,
+    "end": 1575617311969,
+    "duration": 3,
+    "pid": 9148,
+    "index": 69
+  },
+  {
+    "name": "Before Start in node_modules/egg-core/lib/egg.js:303:10",
+    "start": 1575617311970,
+    "end": 1575617312012,
+    "duration": 42,
+    "pid": 9148,
+    "index": 70
+  }
+]

+ 190 - 0
代码/后端/run/router.json

@@ -0,0 +1,190 @@
+[
+  {
+    "name": null,
+    "methods": [
+      "POST"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/upload",
+    "regexp": "/^\\/evaservice\\/upload(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "POST"
+    ],
+    "paramNames": [],
+    "path": "/station/upload",
+    "regexp": "/^\\/station\\/upload(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "HEAD",
+      "GET"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/overview",
+    "regexp": "/^\\/evaservice\\/overview(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "HEAD",
+      "GET"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/statisticAll",
+    "regexp": "/^\\/evaservice\\/statisticAll(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "HEAD",
+      "GET"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/statisticAllByTime",
+    "regexp": "/^\\/evaservice\\/statisticAllByTime(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "HEAD",
+      "GET"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/rank",
+    "regexp": "/^\\/evaservice\\/rank(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "POST"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/admin/login",
+    "regexp": "/^\\/evaservice\\/admin\\/login(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "HEAD",
+      "GET"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/admin/logout",
+    "regexp": "/^\\/evaservice\\/admin\\/logout(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "HEAD",
+      "GET"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/station/search",
+    "regexp": "/^\\/evaservice\\/station\\/search(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "HEAD",
+      "GET"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/station/evaluationInRange",
+    "regexp": "/^\\/evaservice\\/station\\/evaluationInRange(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "POST"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/station/add",
+    "regexp": "/^\\/evaservice\\/station\\/add(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "POST"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/station/modify",
+    "regexp": "/^\\/evaservice\\/station\\/modify(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "POST"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/station/disable",
+    "regexp": "/^\\/evaservice\\/station\\/disable(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "POST"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/station/enable",
+    "regexp": "/^\\/evaservice\\/station\\/enable(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  },
+  {
+    "name": null,
+    "methods": [
+      "HEAD",
+      "GET"
+    ],
+    "paramNames": [],
+    "path": "/evaservice/record/get",
+    "regexp": "/^\\/evaservice\\/record\\/get(?:\\/(?=$))?$/",
+    "stack": [
+      "wrappedController"
+    ]
+  }
+]

+ 11 - 0
代码/后端/test/app/controller/home.test.js

@@ -0,0 +1,11 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const assert = require("assert");
+const bootstrap_1 = require("egg-mock/bootstrap");
+describe('test/app/controller/home.test.ts', () => {
+    it('should GET /', async () => {
+        const result = await bootstrap_1.app.httpRequest().get('/').expect(200);
+        assert(result.text === 'hi, egg');
+    });
+});
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaG9tZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBQ2pDLGtEQUF5QztBQUV6QyxRQUFRLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO0lBQ2hELEVBQUUsQ0FBQyxjQUFjLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDNUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxlQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1RCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIn0=

+ 9 - 0
代码/后端/test/app/controller/home.test.ts

@@ -0,0 +1,9 @@
+import * as assert from 'assert';
+import { app } from 'egg-mock/bootstrap';
+
+describe('test/app/controller/home.test.ts', () => {
+  it('should GET /', async () => {
+    const result = await app.httpRequest().get('/').expect(200);
+    assert(result.text === 'hi, egg');
+  });
+});

+ 15 - 0
代码/后端/test/app/service/Test.test.js

@@ -0,0 +1,15 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const assert = require("assert");
+const bootstrap_1 = require("egg-mock/bootstrap");
+describe('test/app/service/Test.test.js', () => {
+    let ctx;
+    before(async () => {
+        ctx = bootstrap_1.app.mockContext();
+    });
+    it('sayHi', async () => {
+        const result = await ctx.service.test.sayHi('egg');
+        assert(result === 'hi, egg');
+    });
+});
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVzdC50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiVGVzdC50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQWlDO0FBRWpDLGtEQUF5QztBQUV6QyxRQUFRLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO0lBQzdDLElBQUksR0FBWSxDQUFDO0lBRWpCLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNoQixHQUFHLEdBQUcsZUFBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtRQUNyQixNQUFNLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==

+ 16 - 0
代码/后端/test/app/service/Test.test.ts

@@ -0,0 +1,16 @@
+import * as assert from 'assert';
+import { Context } from 'egg';
+import { app } from 'egg-mock/bootstrap';
+
+describe('test/app/service/Test.test.js', () => {
+  let ctx: Context;
+
+  before(async () => {
+    ctx = app.mockContext();
+  });
+
+  it('sayHi', async () => {
+    const result = await ctx.service.test.sayHi('egg');
+    assert(result === 'hi, egg');
+  });
+});

+ 87 - 0
数据库/evaluation.sql

@@ -0,0 +1,87 @@
+/*
+Navicat MySQL Data Transfer
+
+Source Server         : company
+Source Server Version : 50720
+Source Host           : localhost:3306
+Source Database       : evaluation
+
+Target Server Type    : MYSQL
+Target Server Version : 50720
+File Encoding         : 65001
+
+Date: 2019-12-10 09:36:39
+*/
+
+SET FOREIGN_KEY_CHECKS=0;
+
+-- ----------------------------
+-- Table structure for `admin`
+-- ----------------------------
+DROP TABLE IF EXISTS `admin`;
+CREATE TABLE `admin` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `name` text NOT NULL,
+  `password` text NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of admin
+-- ----------------------------
+INSERT INTO `admin` VALUES ('1', 'admin', 'admin123456');
+
+-- ----------------------------
+-- Table structure for `evaluation`
+-- ----------------------------
+DROP TABLE IF EXISTS `evaluation`;
+CREATE TABLE `evaluation` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `station` text NOT NULL,
+  `date` text NOT NULL,
+  `excellent` int(11) NOT NULL,
+  `good` int(11) NOT NULL,
+  `ordinary` int(11) NOT NULL,
+  `bad` int(11) NOT NULL,
+  `abandoned` int(11) NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of evaluation
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for `record`
+-- ----------------------------
+DROP TABLE IF EXISTS `record`;
+CREATE TABLE `record` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `user` text NOT NULL,
+  `type` text NOT NULL,
+  `value` text NOT NULL,
+  `ip` text NOT NULL,
+  `time` text NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of record
+-- ----------------------------
+INSERT INTO `record` VALUES ('1', 'admin', 'login', '', '127.0.0.1', '2019-12-10 08:40:03');
+
+-- ----------------------------
+-- Table structure for `station`
+-- ----------------------------
+DROP TABLE IF EXISTS `station`;
+CREATE TABLE `station` (
+  `id` text NOT NULL,
+  `name` text NOT NULL,
+  `disable` int(11) NOT NULL DEFAULT '0',
+  `active` text,
+  PRIMARY KEY (`id`(8))
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ----------------------------
+-- Records of station
+-- ----------------------------

Some files were not shown because too many files changed in this diff