Various build fixes, cleanup and details #6
							
								
								
									
										14
									
								
								cista/app.py
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								cista/app.py
									
									
									
									
									
								
							| @@ -2,6 +2,7 @@ import asyncio | ||||
| import datetime | ||||
| import mimetypes | ||||
| import threading | ||||
| import tracemalloc | ||||
| from concurrent.futures import ThreadPoolExecutor | ||||
| from pathlib import Path, PurePath, PurePosixPath | ||||
| from stat import S_IFDIR, S_IFREG | ||||
| @@ -9,6 +10,7 @@ from urllib.parse import unquote | ||||
| from wsgiref.handlers import format_date_time | ||||
|  | ||||
| import brotli | ||||
| import objgraph | ||||
| import sanic.helpers | ||||
| from blake3 import blake3 | ||||
| from sanic import Blueprint, Sanic, empty, raw, redirect | ||||
| @@ -32,6 +34,7 @@ app.exception(Exception)(handle_sanic_exception) | ||||
|  | ||||
| @app.before_server_start | ||||
| async def main_start(app, loop): | ||||
|     tracemalloc.start() | ||||
|     config.load_config() | ||||
|     app.ctx.threadexec = ThreadPoolExecutor( | ||||
|         max_workers=8, thread_name_prefix="cista-ioworker" | ||||
| @@ -39,6 +42,17 @@ async def main_start(app, loop): | ||||
|     await watching.start(app, loop) | ||||
|  | ||||
|  | ||||
| @app.add_task | ||||
| async def mem_task(): | ||||
|     while True: | ||||
|         await asyncio.sleep(10) | ||||
|         snapshot = tracemalloc.take_snapshot() | ||||
|         top_stats = snapshot.statistics("lineno") | ||||
|         for stat in top_stats[:10]: | ||||
|             print(stat) | ||||
|         objgraph.show_growth(limit=10) | ||||
|  | ||||
|  | ||||
| @app.after_server_stop | ||||
| async def main_stop(app, loop): | ||||
|     quit.set() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user