Jump to content

Clément

Members
  • Content Count

    357
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Clément

  1. Clément

    Zip Compression library

    Hi, In this project I need to ZIP huge text files ( over 1 GB ) for backup purposes. And I got disappointed. I'm using Delphi library and third party components but I can't beat windows vanilla zip, neither in speed nor in size. I am testing those libraries with 3 files: huge3.txt 1,926,179Kb, huge4.txt 797,946Kb and huge5.txt 650,767kb (You really don't want to ask the sizes of huge1 and huge2 ). Using windows (send compressed zip folder) in less then 2 minutes produces a 255,940KB zip files. Using delphi library (ZipForge, Abbrevia, VCL.Zip ) even at max compression level the best library produced a 316,690 KB. It took over 3 minutes. Needless to say my customer will not accept such difference. I don't really need to produce ZIP files, I can use any compression I like, but the file must be opened by a popular compressor viewer. Is there any hope?
  2. Clément

    Zip Compression library

    Would you please elaborate?
  3. Clément

    Zip Compression library

    My ending product will be a Window Service available in both 32 and 64 bits. My next step is looking for some library or a way to use windows zip in my application. And of course, combine files carefully to achieve best compression. But I'm still digging...
  4. Clément

    Zip Compression library

    Huge 5_mode 5 is faster 15s. Huge 5 (normal) zipped in 19s. Windows10zip files uncompresses fine using windows in anyway ( explorer and extracting one file, or using menu ). I can decompress Windows10 zip with WinRAR 6.11 and Peazip 8.1.0. So windows is using some archiving method other applications can uncompress, including zipForge. I just uncompressed windows10zip file using zipforge and it worked as expected. There's must a be way to combine the files to compress even more. Anyway, it's good know windows is going this far! Hopefully there are some tweaking we can do to achieve the same results
  5. Clément

    Zip Compression library

    I did some more digging.... I built this test using a single file, then combining files 3&4 and then 3&4&5. I'm using zipForge clNormal compression, that's why the size from 3&4&5 from this test is bigger than the previous one (using clMax). As you can see, zipForge beats windows in every challenge. zipforge huge 3 has 182MB against windows 187MB . The same goes for the other 2. If we add zip forges 3 single files add up to 320MB... if we add Windows zip 3 single files, they also add up to 320MB ... My best guess is that windows zip uses all 3 files combined to achieve a better compression result.
  6. Clément

    Zip Compression library

    I downloaded the personal version an yet... the same results...
  7. Clément

    Zip Compression library

    I'm using a comercial version. I will retry with the personal one.
  8. Clément

    Zip Compression library

    What zipForge's version are you using?
  9. Clément

    Zip Compression library

    I installed 7z.dll. Things are getting better (Last entry in the image ) Here is the code that beat windows zip! (everything 64bits) var lZip := TJclZipCompressArchive.Create('d:\temp 1\JCL_7ZDLL_x64.zip'); try lZip.SetCompressionMethod(cmDeflate64); lZip.AddFile('d:\temp 1\huge3.txt', 'd:\temp 1\huge3.txt'); lZip.AddFile('d:\temp 1\huge4.txt', 'd:\temp 1\huge4.txt'); lZip.AddFile('d:\temp 1\huge5.txt', 'd:\temp 1\huge5.txt'); finally lZip.Compress; lZip.Free; end; I had to use cmDeflate64. cmDeflate was better than the other libraries but sill over 300MB. Here I'm displaying the compression ratio. But it took over 6 min
  10. Clément

    Zip Compression library

    zipForge version 6.94. CompressionLevel: clMax CompressionMode: 9 EncryptionMethod caPkzipClassic, Zip64Mode: zmDisabled
  11. Clément

    Zip Compression library

    Some numbers.... I'm using zip forge clMax to try to get as close as possible to Windows10_X64 size. 64 bit zipForge (max): created at 10:18:17 - Last modified 10:20:56 32 bit zipForge (max): created at 10:14:29 - Last modified 10:17:51 64 bit TzipVCL (zcDeflate😞 created at 10:35:27 - Last Modified: 10:36:36 They are all at least 60MB greater.
  12. Clément

    Zip Compression library

    This test is 32 bit. Final version will have both available and the user will install the one he wants
  13. Clément

    Set colour for TStaticText with themes.

    Do you have Transparent property set to true? if it is change it to false
  14. Clément

    New security requirements for code signing, disruptive ?

    Not sure I understood correctly, but " Effective 1 June 2023, the code signing certificate key pair must be generated and stored in a hardware crypto module that meets or exceeds the requirements of FIPS 140-2 level 2 or Common Criteria EAL 4+. This means the key pair will be generated in a device, where the private key cannot be exported. This will help to minimize the private key compromise. " This means every signed software in a machine will have a corresponding key stored in crypto module. "Out of memory" comes to my mind. and " In addition, the CA must verify or ensure the private key was generated in a hardware crypto module using one of the following methods: " So I need to have a crypto modulo compatible with the one of my customer. I have a bad feeling about this. Hopefully someone can clarify this
  15. Clément

    32bit vs 64bit

    I also do not required 64 bit, but there's no point in fighting network administrators wanting to keep a 64 bit machine running only 64 bit processes over a few extra MBytes. While I agree there's technically no reason to upgrade, there's a "keep your life simpler" and "don't pick a fight you won't win" factors. If you work with 3rd party applications sharing the same machine then you might keep your life simpler when everything is the same bitness. I had to configure Oracle to work with both 32 and 64 bits, as my application required 32 bit dlls to work with (OCI and the like). Not hard, but it requires some tweaking. When I upgrade, I must make sure every 64 bit applications are running, but when they upgrade they don't give a squat about mine. I never understood how some application installation was able to damage my dual Oracle Client Setup. BUT....it's my phone that rings. I got tired to listen to "Every other application is modern and works in 64bits, why can't yours" arguments. I compiled/debugged/released 64 bits. It uses more RAM, from 27MB it went to 35MB. But no more 32 bit installation tweaking, and no more messed setup after upgrades. Clément
  16. Clément

    Anyone using Cromis?

    I'm using Delphi 11.2 ( yes I did ) I downloaded from https://github.com/CPsoftBE/BackupOfCromis I am using this library in a few projects and never had any issue. Until a fews days ago. After a lot of debugging I finally realized the library has a problem. If I compile IPCServer ( from demo ) using FastMM4 (eternal version) the following error is raised: --------------------------- Debugger Exception Notification --------------------------- Project IPCServer.exe raised exception class EThread with message 'Cannot terminate an externally created thread'. --------------------------- Break Continue Copy Help --------------------------- Since there's no externally created thread, there's probably a memory issue. Before digging into solving it, I posted an issue in github, but to play safe, I'm also posting here. Hopefully someone already found (and fixed) the issue . TIA, Clément
  17. Clément

    Anyone using Cromis?

    I meant this: https://github.com/CPsoftBE/BackupOfCromis/tree/Limagito-patches
  18. Clément

    The Delphi 11.2 release thread

    I'm also happy with 11.2. So far all my projects compiled directly without any trouble. The IDE is stable and the new features are cool. I will give the debugger a try and get back.
  19. Clément

    Anyone using Cromis?

    FYI CPsoftBE uploaded a fix in branch 'Limagito Patches' . Problem is solved!
  20. Clément

    Anyone using Cromis?

    It's a nice library, with many features. Any way, hopefully there's a way to fix this issue.
  21. Clément

    The Delphi 11.2 release thread

    I also installed 11.2 without issues. I used the migration tool. Web Install. Keep Existing registry option. No Android. No IOs. No Linux. Restored the data (from migration tool). And I'm already working. Since I have to re-install my components from GetIt ( including the styles), here's a tip. Run Delphi as Administrator and install all your getIt stuff.. It runs/installs a lot faster!
  22. Clément

    TBitmap32 to jpg (graphics32)

    I'm using since Delphi XE Should be in VCL.Graphics unit.
  23. Clément

    Out Of memory

    You're probably hitting 32 bit application address space limit. One easy way to check this is to open Task Manager and monitor you application when executing that specific lines of code. *IF* this is the problem, then you are downloading too much data, and the "Out of memory" will happen in whatever unit asks for memory and don't get it. FireDAC has some Fetching options, and my guess is you're using FetchAll. You might want to try fmOnDemand. " FireDAC is fetching rowsets according to the FetchOptions.Mode property: fmOnDemand--the rowset is automatically fetched when the dataset is trying to move the current position beyond the last fetched record. fmAll--all the rowsets are automatically fetched right after executing the SQL command. This is similar to calling the FetchAll method. fmManual--the programmer manually fetches the rowsets using the FetchNext or FetchAll methods. fmExactRecsMax--all rowsets are automatically fetched right after executing the SQL command. If the number of rows is different from FetchOptions.RecsMax, an exception is raised. " https://docwiki.embarcadero.com/RADStudio/Sydney/en/Fetching_Rows_(FireDAC) You are seeing the message only once most probably because FireDAC exception handler is freeing the memory allowing you application to work with whatever memory is available. HTH
  24. Clément

    TBitmap32 to jpg (graphics32)

    Sorry if this is not related to your problem, but have you tried using TWICImage ?
  25. Clément

    Do you need an ARM64 compiler for Windows?

    Till in DevExpress front: https://community.devexpress.com/blogs/vcl/archive/2022/07/25/vcl-subscription-upcoming-features.aspx " In this blog post, I'll summarize new VCL features we expect to ship in mid to late August. As always, thank you for your continued support." Might not be the roadmap, but they are working.
×