[ostree/wip/delta2] wip/delta: Print comparison of compressed sizes



commit 69846714d1463666e0bf2e43e66f4fac278353f7
Author: Colin Walters <walters verbum org>
Date:   Sun Apr 20 17:43:57 2014 -0400

    wip/delta: Print comparison of compressed sizes

 .../ostree-repo-static-delta-compilation.c         |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/src/libostree/ostree-repo-static-delta-compilation.c 
b/src/libostree/ostree-repo-static-delta-compilation.c
index 1e5ef41..9047239 100644
--- a/src/libostree/ostree-repo-static-delta-compilation.c
+++ b/src/libostree/ostree-repo-static-delta-compilation.c
@@ -39,6 +39,7 @@ typedef struct {
 typedef struct {
   GPtrArray *parts;
   GPtrArray *fallback_objects;
+  guint64 loose_compressed_size;
 } OstreeStaticDeltaBuilder;
 
 static void
@@ -165,6 +166,7 @@ generate_delta_lowlatency (OstreeRepo                       *repo,
       gs_unref_object GInputStream *content_stream = NULL;
       gsize bytes_read;
       const guint readlen = 4096;
+      guint64 compressed_size;
 
       ostree_object_name_deserialize (serialized_key, &checksum, &objtype);
 
@@ -195,6 +197,12 @@ generate_delta_lowlatency (OstreeRepo                       *repo,
           current_part = allocate_part (builder);
         } 
 
+      if (!ostree_repo_query_object_storage_size (repo, objtype, checksum,
+                                                  &compressed_size,
+                                                  cancellable, error))
+        goto out;
+      builder->loose_compressed_size += compressed_size;
+
       current_part->uncompressed_size += content_size;
 
       g_ptr_array_add (current_part->objects, g_variant_ref (serialized_key));
@@ -331,6 +339,8 @@ ostree_repo_static_delta_generate (OstreeRepo                   *self,
   OstreeStaticDeltaBuilder builder = { 0, };
   guint i;
   GVariant *metadata_source;
+  guint64 total_compressed_size = 0;
+  guint64 total_uncompressed_size = 0;
   gs_unref_variant_builder GVariantBuilder *part_headers = NULL;
   gs_unref_ptrarray GPtrArray *part_tempfiles = NULL;
   gs_unref_variant GVariant *delta_descriptor = NULL;
@@ -416,6 +426,9 @@ ostree_repo_static_delta_generate (OstreeRepo                   *self,
                                          ot_gvariant_new_ay_bytes (objtype_checksum_array));
       g_variant_builder_add_value (part_headers, g_variant_ref (delta_part_header));
       g_ptr_array_add (part_tempfiles, g_object_ref (part_tempfile));
+      
+      total_compressed_size += g_variant_get_size (delta_part);
+      total_uncompressed_size += part_builder->uncompressed_size;
 
       g_printerr ("part %u n:%u compressed:%" G_GUINT64_FORMAT " uncompressed:%" G_GUINT64_FORMAT "\n",
                   i, part_builder->objects->len,
@@ -470,6 +483,9 @@ ostree_repo_static_delta_generate (OstreeRepo                   *self,
     g_date_time_unref (now);
   }
 
+  g_printerr ("delta compressed=%" G_GUINT64_FORMAT " loose=%" G_GUINT64_FORMAT "\n",
+              total_compressed_size, builder.loose_compressed_size);
+
   if (!ot_util_variant_save (descriptor_path, delta_descriptor, cancellable, error))
     goto out;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]