[Ada] Adjust growth factor from 1/32 to 1/2 for Unbounded_String
authorNicolas Roche <roche@adacore.com>
Mon, 16 Jul 2018 14:08:27 +0000 (14:08 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Mon, 16 Jul 2018 14:08:27 +0000 (14:08 +0000)
This will reduce significantly the number of allocations done when
doing consecutive append operations.

2018-07-16  Nicolas Roche  <roche@adacore.com>

gcc/ada/

* libgnat/a-strunb.adb, libgnat/a-strunb__shared.adb: Adjust growth
factor from 1/32 to 1/2 for Unbounded_String.

From-SVN: r262697

gcc/ada/ChangeLog
gcc/ada/libgnat/a-strunb.adb
gcc/ada/libgnat/a-strunb__shared.adb

index 6e53729ecf7b38240d2d48d2cc4655237f847ebf..d7063ae88a289df313a1925acda53744a1caa652 100644 (file)
@@ -1,3 +1,8 @@
+2018-07-16  Nicolas Roche  <roche@adacore.com>
+
+       * libgnat/a-strunb.adb, libgnat/a-strunb__shared.adb: Adjust growth
+       factor from 1/32 to 1/2 for Unbounded_String.
+
 2018-07-13  Eric Botcazou  <ebotcazou@adacore.com>
 
        * gcc-interface/lang.opt (funsigned-char): New option.
index 530550d6a1b2669ec713198929d9a37a60fe0fa1..da5e2b5c60493de490fe213b35c142bdd553e881 100644 (file)
@@ -763,13 +763,13 @@ package body Ada.Strings.Unbounded is
      (Source     : in out Unbounded_String;
       Chunk_Size : Natural)
    is
-      Growth_Factor : constant := 32;
+      Growth_Factor : constant := 2;
       --  The growth factor controls how much extra space is allocated when
       --  we have to increase the size of an allocated unbounded string. By
       --  allocating extra space, we avoid the need to reallocate on every
       --  append, particularly important when a string is built up by repeated
       --  append operations of small pieces. This is expressed as a factor so
-      --  32 means add 1/32 of the length of the string as growth space.
+      --  2 means add 1/2 of the length of the string as growth space.
 
       Min_Mul_Alloc : constant := Standard'Maximum_Alignment;
       --  Allocation will be done by a multiple of Min_Mul_Alloc This causes
index 21827ed6af4f79b075ca14638eb7ab50fc150d29..0e060e3436e01f5c08181a0006e96886d133aecd 100644 (file)
@@ -36,13 +36,13 @@ package body Ada.Strings.Unbounded is
 
    use Ada.Strings.Maps;
 
-   Growth_Factor : constant := 32;
+   Growth_Factor : constant := 2;
    --  The growth factor controls how much extra space is allocated when
    --  we have to increase the size of an allocated unbounded string. By
    --  allocating extra space, we avoid the need to reallocate on every
    --  append, particularly important when a string is built up by repeated
    --  append operations of small pieces. This is expressed as a factor so
-   --  32 means add 1/32 of the length of the string as growth space.
+   --  2 means add 1/2 of the length of the string as growth space.
 
    Min_Mul_Alloc : constant := Standard'Maximum_Alignment;
    --  Allocation will be done by a multiple of Min_Mul_Alloc. This causes