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(); }
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); }
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); } }
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"); }
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"); }