import os
import psutil
import asyncio
import time
from datetime import datetime
class Book:
def __init__(self,id,name,author,isbn,title,topic):
self.id=id
self.name=name
self.author=author
self.isbn=isbn
self.title=title
self.topic=topic
def init_bookslist(num=10000000):
interval=num/10
lt=[]
for a in range(1,num+1):
bk=Book(a,f'name_{a}',f'author_{a}',f'isbn_{a}',f'title_{a}',f'topic_{a}')
lt.append(bk)
if a%interval==0:
rss,vms=get_current_memory_usage()
print(f'Now is {datetime.now()},a:{a},Physical memory:{rss:.2f} MB,Virtual memory:{vms:.2f} MB')
return lt
def get_current_memory_usage():
process=psutil.Process(os.getpid())
memory_info=process.memory_info()
rss_mb=memory_info.rss/1024/1024
vms_mb=memory_info.vms/1024/1024
return rss_mb,vms_mb
async def background_task(duration):
for i in range(duration):
rss,vms=get_current_memory_usage()
print(f'Physical memory (RSS):{rss:.2f} MB')
print(f'Virtual memory (VMS):{vms:.2f} MB')
await asyncio.sleep(1)
async def main():
print("Starting async tasks...")
# bg_task=asyncio.create_task(background_task(duration=10000))
print("Creating book list...")
booksList=Book.init_bookslist(10000000)
print(f'Created {len(booksList)}')
# await bg_task
print("All tasks completed.")
if __name__=="__main__":
asyncio.run((main()))
![image]()