# profiing: cProfile&pstats
# 参考
# demo
import time
import requests
import sqlite3
from flask import Flask
app = Flask(__name__)
# 模拟外部 API 请求
def simulate_api_request():
# 使用 requests 发起一个 GET 请求,模拟对外部 API 的调用
response = requests.get('https://jsonplaceholder.typicode.com/posts/1')
return response.json()
# 模拟数据库查询
def simulate_database_query():
# 连接到 SQLite 数据库并执行一个简单的查询
conn = sqlite3.connect(':memory:') # 创建一个内存中的数据库
cursor = conn.cursor()
cursor.execute("CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)")
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 30))
conn.commit()
# 执行查询操作
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
conn.close()
return rows
# 模拟文件 I/O 操作
def simulate_file_io():
# 模拟文件读写操作
file_name = 'example.txt'
with open(file_name, 'w') as file:
file.write('This is an example text.')
with open(file_name, 'r') as file:
content = file.read()
# 删除文件
import os
os.remove(file_name)
return content
@app.route('/')
def index():
return 'Welcome to my Flask App!'
import cProfile
@app.route('/simulate')
def simulate_operations():
profiler = cProfile.Profile()
profiler.enable()
simulate_api_request()
simulate_database_query()
simulate_file_io()
profiler.disable()
profiler.print_stats(sort='cumulative') # 在控制台打印耗时最多的函数调用信息
return 'Simulated API request, database query, and file I/O.'
if __name__ == '__main__':
app.run(debug=True)