Spaces:
Sleeping
Sleeping
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.") | |