diff options
author | Christian Grothoff <christian@grothoff.org> | 2012-10-07 17:56:31 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2012-10-07 17:56:31 +0000 |
commit | decf459805cdb3f6811f979df4831bc2ce9a2858 (patch) | |
tree | 7d7644446cf8bd315185f2598993d0b4ce21cabb /src/fs/gnunet-service-fs_pe.c | |
parent | 605c3946e573ab1446e8210b3b7f6cccd5c1ba03 (diff) | |
download | gnunet-decf459805cdb3f6811f979df4831bc2ce9a2858.tar.gz gnunet-decf459805cdb3f6811f979df4831bc2ce9a2858.zip |
-reducing memory use for PendingRequestData by 30% by not allocating space for target/namespace hash codes unless the request needs/has them
Diffstat (limited to 'src/fs/gnunet-service-fs_pe.c')
-rw-r--r-- | src/fs/gnunet-service-fs_pe.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/fs/gnunet-service-fs_pe.c b/src/fs/gnunet-service-fs_pe.c index f20021a8c..dbaab7d48 100644 --- a/src/fs/gnunet-service-fs_pe.c +++ b/src/fs/gnunet-service-fs_pe.c | |||
@@ -585,7 +585,7 @@ GSF_plan_add_ (struct GSF_ConnectedPeer *cp, struct GSF_PendingRequest *pr) | |||
585 | mpc.pr = pr; | 585 | mpc.pr = pr; |
586 | GNUNET_CONTAINER_multihashmap_get_multiple (pp->plan_map, | 586 | GNUNET_CONTAINER_multihashmap_get_multiple (pp->plan_map, |
587 | &GSF_pending_request_get_data_ | 587 | &GSF_pending_request_get_data_ |
588 | (pr)->query, &merge_pr, &mpc); | 588 | (pr)->query, &merge_pr, &mpc); // 8 MB in 'merge_pr' |
589 | if (mpc.merged != GNUNET_NO) | 589 | if (mpc.merged != GNUNET_NO) |
590 | return; | 590 | return; |
591 | GNUNET_CONTAINER_multihashmap_get_multiple (pp->plan_map, | 591 | GNUNET_CONTAINER_multihashmap_get_multiple (pp->plan_map, |
@@ -600,7 +600,7 @@ GSF_plan_add_ (struct GSF_ConnectedPeer *cp, struct GSF_PendingRequest *pr) | |||
600 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 600 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
601 | "Planning transmission of query `%s' to peer `%s'\n", | 601 | "Planning transmission of query `%s' to peer `%s'\n", |
602 | GNUNET_h2s (&prd->query), GNUNET_i2s (&id)); | 602 | GNUNET_h2s (&prd->query), GNUNET_i2s (&id)); |
603 | rp = GNUNET_malloc (sizeof (struct GSF_RequestPlan)); | 603 | rp = GNUNET_malloc (sizeof (struct GSF_RequestPlan)); // 8 MB |
604 | rpr = GNUNET_malloc (sizeof (struct GSF_RequestPlanReference)); | 604 | rpr = GNUNET_malloc (sizeof (struct GSF_RequestPlanReference)); |
605 | prl = GNUNET_malloc (sizeof (struct PendingRequestList)); | 605 | prl = GNUNET_malloc (sizeof (struct PendingRequestList)); |
606 | rpr->rp = rp; | 606 | rpr->rp = rp; |
@@ -613,8 +613,8 @@ GSF_plan_add_ (struct GSF_ConnectedPeer *cp, struct GSF_PendingRequest *pr) | |||
613 | GNUNET_assert (GNUNET_YES == | 613 | GNUNET_assert (GNUNET_YES == |
614 | GNUNET_CONTAINER_multihashmap_put (pp->plan_map, | 614 | GNUNET_CONTAINER_multihashmap_put (pp->plan_map, |
615 | get_rp_key (rp), rp, | 615 | get_rp_key (rp), rp, |
616 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE)); | 616 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE)); // 8 MB |
617 | plan (pp, rp); | 617 | plan (pp, rp); // +5 MB (plan/heap-insert) |
618 | } | 618 | } |
619 | 619 | ||
620 | 620 | ||