VS Code Flask调试比从命令行(具有相同参数)运行Flask慢得多]]

问题描述 投票:-1回答:1

我目前正处于VS Code的flask应用程序的早期开发阶段,我不明白为什么在使用VS Code调试器启动flask应用程序和从命令行启动我的flask应用程序之间我在运行时会有巨大的差异。在VS代码调试中要慢5到6倍),但具有相同的flask参数。这似乎主要是在我使用pandas / numpy对象时发生的。

我在launch.json中具有以下内容(仅与“ Python:烧瓶”相关的内容

        {
            "name": "Python: Flask",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "test_flask_app.py",
                "FLASK_ENV": "development",
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload",
            ],
            "jinja": true
        },

然后单击“开始调试”,并在终端中显示以下内容:

 * Serving Flask app "test_flask_app.py"
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

当我使用以下命令从命令行启动Flask时:导出FLASK_APP = test_flask_app.py出口FLASK_ENV =发展烧瓶运行--no-debugger --no-reload

以下信息在启动时显示(与第一个相同):

 * Serving Flask app "test_flask_app.py"
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

[奇怪的是,当我直接从终端运行Flask时,一页的运行时间大约需要800毫秒,而当我从VS Code调试器中运行Flask时,则需要5到6秒。

我相信我所有的参数都相同(当然我可以手动启动Flask,但是我想了解为什么运行时会有如此大的差异?

这是我使用的示例代码:

import time
import numpy as np
import pandas as pd
from flask import Flask

# vectorized function
def generateHeaderObject(text, level, calc, axis):
    return "." * int(level) + text + '|' + str(False) + '|' + "" + '|' + \
        "hdr " + axis + "ht" + (" " + axis + "agg" if calc else "")

# create sample dataframe
n = 1000000
df = pd.DataFrame(dict(
    calc=np.random.choice(a=[False,True],size=n),
    level=np.random.randint(1, 12, size=n),
    id=np.random.randint(10000000, 99999999, size=n)
))
df['id'] = df['id'].astype(str)

app = Flask(__name__) 

@app.route('/') 
# ‘/’ URL is bound with hello_world() function. 
def main():
    # Calculate new column
    start = time.time()
    df['output'] = np.vectorize(generateHeaderObject)(
        df['id'], df['level'], df['calc'], "r"
    )
    return 'runtime np.vectorize (ms): ' + str((time.time() - start) * 1000)

我目前处于使用VS Code开发Flask应用程序的早期阶段,我不明白为什么在使用VS Code调试器启动Flask应用程序与我何时之间存在巨大的运行时差异?

python debugging flask visual-studio-code
1个回答
0
投票

这只是使用调试器的开销,因为它必须在Flask应用程序中运行。如果在VS Code中使用“无需调试即可运行”,则不会看到速度下降的情况。

© www.soinside.com 2019 - 2024. All rights reserved.