3

我将 python 3 用于在端口 5000 中运行的烧瓶应用程序。它有一个示例 API。我需要在从 REST 或浏览器访问此 API 时分析内存、CPU 使用情况。

请帮助我寻求更好的解决方案。

import logging
from flask import Flask, jsonify
from flask_cors import CORS

logger = logging.getLogger()
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - "
                          "%(name)s:%(lineno)d [-] %(funcName)s- %(message)s")
logger.setLevel(logging.INFO)


app = Flask(__name__)
app.url_map.strict_slashes = False
CORS(app)


def health_check():
   return jsonify({"message": "success"})


app.add_url_rule(rule='/health', endpoint='health-check', 
    view_func=health_check, methods=['GET'])

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)
4

1 回答 1

1

怎么样(见:https ://pypi.org/project/memory_profiler/ ):

import logging
from flask import Flask, jsonify
from flask_cors import CORS
import memory_profiler as mp   # <----

logger = logging.getLogger()
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - "
                      "%(name)s:%(lineno)d [-] %(funcName)s- %(message)s")
logger.setLevel(logging.INFO)


app = Flask(__name__)
app.url_map.strict_slashes = False
CORS(app)


@mp.profile
def health_check():
   return jsonify({"message": "success"})


app.add_url_rule(rule='/health', endpoint='health-check', 
    view_func=health_check, methods=['GET'])

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=500)

给出:

 * Running on http://0.0.0.0:5001/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger pin code: 187-502-207
Filename: mp.py

Line #    Mem usage    Increment   Line Contents
================================================
    17     40.0 MiB     40.0 MiB   @mp.profile
    18                             def health_check():
    19     40.0 MiB      0.0 MiB      return jsonify({"message": "success"})


127.0.0.1 - - [04/Jul/2018 11:01:15] "GET /health HTTP/1.1" 200 -
于 2018-07-04T09:04:17.147 回答