Skip to content

Instantly share code, notes, and snippets.

@bukowa
Created October 21, 2025 09:47
Show Gist options
  • Select an option

  • Save bukowa/8dec0e26f922df9d3e66b00759f6f1e2 to your computer and use it in GitHub Desktop.

Select an option

Save bukowa/8dec0e26f922df9d3e66b00759f6f1e2 to your computer and use it in GitHub Desktop.

Revisions

  1. bukowa created this gist Oct 21, 2025.
    43 changes: 43 additions & 0 deletions run.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,43 @@
    import sys

    def fill_memory_with_strings():
    """
    Fills approximately 2GB of memory with unique strings.
    """
    target_bytes = 2 * 1024 * 1024 * 1024 # 2 GB
    strings = []
    total_size = 0
    counter = 0

    print(f"Starting to allocate approximately {target_bytes / (1024**3)} GB of memory with strings...")

    # Create a base string to append in each iteration.
    # A larger chunk size will be faster but less granular.
    chunk = "X" * (1024 * 100) # 100 KB chunk

    while total_size < target_bytes:
    # Create a unique string to ensure new memory is allocated.
    new_string = f"String number {counter}: {chunk}"
    strings.append(new_string)

    # Get the size of the new string and add it to the total.
    string_size = sys.getsizeof(new_string)
    total_size += string_size

    counter += 1

    # Print progress every 1000 iterations.
    if counter % 1000 == 0:
    print(f"Allocated approximately {total_size / (1024**2):.2f} MB")

    print("\n----------------------------------------------------------")
    print(f"Successfully allocated approximately {total_size / (1024**3):.2f} GB of memory.")
    print(f"Total number of strings created: {len(strings)}")
    print("----------------------------------------------------------")

    # Keep the script running so the memory remains allocated for debugging.
    input("Press Enter to exit and release the memory...")

    if __name__ == "__main__":
    fill_memory_with_strings()