Exemple #1
0
        private static void Main(string[] args)
        {
            string testDataFilePath1 = Environment.CurrentDirectory + "\\orgImpl.7z";
            string testDataFilePath2 = Environment.CurrentDirectory + "\\managedLZMA.7z";

            const int dataLength             = 0x19000000;
            Stopwatch stopwatch              = new Stopwatch();
            SerializiableTestClass testClass = Utils.GetSerializiableTestClass(dataLength);

            WriteToConsoleAndLog(string.Format("Test begining with {0} data using current C# single thread implementation", GeneralToolkitLib.Converters.GeneralConverters.FileSizeToStringFormater.ConvertFileSizeToString(dataLength)));

            StorageManagerSettings settings       = new StorageManagerSettings(true, 8, false, null);
            StorageManager         storageManager = new StorageManager(settings);

            stopwatch.Start();
            storageManager.SerializeObjectToFile(testClass, testDataFilePath1, null);
            stopwatch.Stop();
            WriteToConsoleAndLog("Test ended after: " + stopwatch.Elapsed);

            ManagedIncludeDllCompression sevenZipCompression = new ManagedIncludeDllCompression();


            stopwatch.Reset();
            stopwatch.Start();
            WriteToConsoleAndLog(string.Format("Test begining with {0} data using LZMA managed dll implementation", GeneralToolkitLib.Converters.GeneralConverters.FileSizeToStringFormater.ConvertFileSizeToString(dataLength)));
            sevenZipCompression.TestManagedIncludeDllCompression(testDataFilePath2, testClass);
            WriteToConsoleAndLog("Test ended after: " + stopwatch.Elapsed);
            stopwatch.Stop();


            Console.ReadLine();
        }
Exemple #2
0
        private SerializiableTestClass GetSerializiableTestClass(int fileSize)
        {
            var testClass = new SerializiableTestClass {
                Id = 1, Name = "Test class nr 1", Guid = Guid.NewGuid().ToString(), DataBytes = GetRandomBytes(fileSize, 0.5)
            };

            return(testClass);
        }
Exemple #3
0
        public void TestManagedIncludeDllCompression(string testDataFile, SerializiableTestClass testClass)
        {
            try
            {
                using (FileStream fs = File.Create(testDataFile))
                {
                    var encoder = new LZMA.CLzma2Enc(LZMA.ISzAlloc.SmallAlloc, LZMA.ISzAlloc.BigAlloc);

                    ObjectSerializer <SerializiableTestClass> testClassObjectSerializer = new ObjectSerializer <SerializiableTestClass>();
                    MemoryStream ms = new MemoryStream(testClassObjectSerializer.SerializeToByteArray(testClass));
                    byte[]       byteArrayToEncode = ms.ToArray();

                    ms = null;
                    GC.Collect();

                    SharedSettings settings = new SharedSettings
                    {
                        Algo            = 2,
                        UseV2           = true,
                        DictSize        = 0x2000000,
                        Level           = 5,
                        BTMode          = 1,
                        NumHashBytes    = 4,
                        WriteEndMark    = 1,
                        NumThreads      = 8,
                        NumTotalThreads = 8,
                        LC = 3,
                        LP = 0,
                        MC = 32,
                        FB = 32,
                        PB = 4,
                        NumBlockThreads = 8,
                        Variant         = 1,
                    };

                    settings.Src = new PZ(byteArrayToEncode);
                    settings.Dst = new PZ(new byte[byteArrayToEncode.Length]);
                    LZMA_Compress(settings);

                    fs.Write(settings.Dst.Buffer, 0, settings.WrittenSize);
                    fs.Flush();
                    fs.Close();

                    //LZMA.ISeqOutStream encoderOutputStream= new LZMA.CSeqOutStream();
                    //encoder.Lzma2Enc_Encode(fs, ms, null);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Exemple #4
0
        public void TestMultithreadCompression()
        {
            StorageManagerSettings storageManagerSettings = StorageManagerSettings.GetDefaultSettings();

            storageManagerSettings.UseMultithreading = true;
            storageManagerSettings.NumberOfThreads   = 8;
            storageManagerSettings.UseEncryption     = false;

            StorageManager         storageManager = new StorageManager(storageManagerSettings);
            SerializiableTestClass testClass      = GetSerializiableTestClass(0x100000 * 100); //100 Mb
                                                                                               //SerializableTextDataClass tesTextDataClass = new SerializableTextDataClass();


            bool compressionSuccessful = storageManager.SerializeObjectToFile(testClass, @"c:\temp\testdata.lzmc", null);

            Assert.IsTrue(compressionSuccessful, "Failed to compress file");

            SerializiableTestClass testClassRead = storageManager.DeserializeObjectFromFile <SerializiableTestClass>(@"c:\temp\testdata.lzmc", null);

            Assert.IsNotNull(testClassRead, "Failed to decode file");
        }
Exemple #5
0
        public void TestMultithreadCompressionWithEncryption()
        {
            StorageManagerSettings storageManagerSettings = new StorageManagerSettings
            {
                UseMultithreading = true,
                NumberOfThreads   = 8,
                UseEncryption     = true,
                Password          = "******"
            };

            StorageManager         storageManager = new StorageManager(storageManagerSettings);
            SerializiableTestClass testClass      = GetSerializiableTestClass(0x100000 * 100); //100 Mb


            bool compressionSuccessful = storageManager.SerializeObjectToFile(testClass, @"c:\temp\testdata.lzmc", null);

            Assert.IsTrue(compressionSuccessful, "Failed to compress file");

            //storageManagerSettings.Password = "******";
            SerializiableTestClass testClassRead = storageManager.DeserializeObjectFromFile <SerializiableTestClass>(@"c:\temp\testdata.lzmc", null);

            Assert.IsNotNull(testClassRead, "Failed to decode file");
        }