Django 1.8,Postgres 8.4.20
我正在尝试在DB中准备一些性能测试数据 - 生成10万个Django用户以及其他模型实例。这是我的代码:
for n in range(100000):
# Generate User with one related Profile
user = User.objects.create(username=str(random.random()))
UserProfile.objects.create(custom_id=str(random.random()), user=user)
# For each User generate a Journey with 10 related Visits
journey = Journey.objects.create(user_id=user.id)
for i in range(10):
journey.visit_set.add(Visit(custom_id=str(random.random())))
# Also for each User generate a Progress with 100 related Challenges
progress = Progress.objects.create(user_id=user.id)
for j in range(100):
progress.challenge_set.add(Challenge(custom_id=str(random.random())))
它按预期工作,唯一的问题是它非常慢。在具有1核和1 Gb RAM的VPS上,仅需要1小时即可生成4000个具有相应相关条目的用户。
消耗的CPU大约为10%,内存为200mb,负载平均值大约为1.00。
如何加快速度?