Spaces:
Sleeping
Sleeping
File size: 1,327 Bytes
739e275 4d2d919 739e275 4d2d919 739e275 4d2d919 739e275 4d2d919 739e275 4d2d919 739e275 4d2d919 739e275 4d2d919 739e275 4d2d919 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
import cProfile
import multiprocessing
import time
import requests
from fasthtml.common import *
from app import serve, weeks
PORT = 7860 # Update this to match the port your app is using
def run_server():
serve() # This should start your FastHTML app
def make_requests():
base_url = f"http://127.0.0.1:{PORT}"
# Test home page
try:
requests.get(f"{base_url}/")
except requests.exceptions.RequestException as e:
print(f"Error accessing home page: {e}")
# Test 5 weeks (or fewer if less than 5 weeks available)
for week in weeks[: min(5, len(weeks))]:
try:
requests.get(f"{base_url}/week/{week}")
except requests.exceptions.RequestException as e:
print(f"Error accessing week {week}: {e}")
# Add more requests here to cover other parts of your application
def profile_app():
server_process = multiprocessing.Process(target=run_server)
server_process.start()
# Wait for the server to start
time.sleep(5) # Increased wait time
try:
make_requests()
finally:
server_process.terminate()
server_process.join()
if __name__ == "__main__":
cProfile.run("profile_app()", "profile_output.prof")
print("Profiling complete. Run 'snakeviz profile_output.prof' to view results.")
|