Générateur de fichiers aléatoire (encore une fois!)

J’ai vraiment besoin d’un générateur de fichiers aléatoires qui génère des fichiers factices vraiment aléatoires et non compressibles .

Je me suis retrouvé avec ce code delphi. Ca marche , mais c’est douloureusement sloooow

var Buf : Integer; TheFile : TFileStream; begin TheFile := TFileStream.Create(FileName, fmCreate OR fmOpenReadWrite); with TheFile do begin for i := 0 to FileSize do // Iterate begin Buf := Random(999999) * i; WriteBuffer(Buf, SizeOf(Buf)); end; // for end; // with end, 

Ma question est la suivante: existe-t-il un générateur de fichiers aléatoire rapide que je peux utiliser? Le code Delphi et / ou les outils de ligne de commande sont acceptables tant que:

  1. Je peux l’exécuter sous Windows sans intervention manuelle (j’en ai besoin pour mes tests, aucune intervention n’est autorisée)
  2. C’est rapide
  3. Les fichiers générés ne sont pas compressibles (c. -à- d. Que la compression du fichier généré ne génère aucun gain de place)

EDIT Pour les personnes intéressées, j’ai appliqué les conseils que j’ai reçus ici et rendu cette fonction assez rapide et 7zip a du mal à compresser les données générées.

Utilisez un tampon de 4096 octets ou plusieurs tampons. Écrire un entier à la fois sera lent.

Vous pouvez utiliser mon script generate_random_file.py (Python 3) que j’ai utilisé pour générer des données de test dans un de mes projets.

  • Cela fonctionne à la fois sous Linux et Windows.
  • Il est très rapide, car il utilise os.urandom() pour générer les données aléatoires par blocs de 256 Ko au lieu de générer et d’écrire chaque octet séparément.