[GH-ISSUE #97] Compression Algorithm ?? #43

Closed
opened 2026-02-27 15:48:27 +03:00 by kerem · 15 comments
Owner

Originally created by @DragonzMaster on GitHub (May 7, 2015).
Original GitHub issue: https://github.com/quasar/Quasar/issues/97

Is QuickLZ really the best choice as compression algorithm ??
as there is TWO more algorithms do a good job with compression
after i searched for sometime i found that there is Snappy (fastest between them) Algorithm and LZ4 (latest is very fast)
both of them do a great job and they faster (a bit) than QiuckLZ
you can find a comparison between them here :
http://encode.ru/threads/1266-In-memory-benchmark-with-fastest-LZSS-%28QuickLZ-Snappy%29-compressors

Originally created by @DragonzMaster on GitHub (May 7, 2015). Original GitHub issue: https://github.com/quasar/Quasar/issues/97 Is QuickLZ really the best choice as compression algorithm ?? as there is TWO more algorithms do a good job with compression after i searched for sometime i found that there is Snappy (fastest between them) Algorithm and LZ4 (latest is very fast) both of them do a great job and they faster (a bit) than QiuckLZ you can find a comparison between them here : http://encode.ru/threads/1266-In-memory-benchmark-with-fastest-LZSS-%28QuickLZ-Snappy%29-compressors
kerem 2026-02-27 15:48:27 +03:00
  • closed this issue
  • added the
    question
    label
Author
Owner

@OpenSourceCS commented on GitHub (May 7, 2015):

Yes you are right. LZ4 is pretty good yet there is not yet a pure c# algorithm which is maintained. there are only bindings.

Please see #96 #95 #94 #90 #85

<!-- gh-comment-id:99829879 --> @OpenSourceCS commented on GitHub (May 7, 2015): Yes you are right. LZ4 is pretty good yet there is not yet a pure c# algorithm which is maintained. there are only bindings. Please see #96 #95 #94 #90 #85
Author
Owner

@DragonzMaster commented on GitHub (May 7, 2015):

as for LZ4 i found a library for .net projects
http://lz4net.codeplex.com/
@OpenSourceCS

<!-- gh-comment-id:99832014 --> @DragonzMaster commented on GitHub (May 7, 2015): as for LZ4 i found a library for .net projects http://lz4net.codeplex.com/ @OpenSourceCS
Author
Owner

@OpenSourceCS commented on GitHub (May 7, 2015):

It is a binding project. It requires VC++ 2010 Redist. Moreover the native dll(whatever) of LZ4 (which is written in C) cannot be binded with Client.exe.

<!-- gh-comment-id:99835427 --> @OpenSourceCS commented on GitHub (May 7, 2015): It is a binding project. It requires VC++ 2010 Redist. Moreover the native dll(whatever) of LZ4 (which is written in C) cannot be binded with Client.exe.
Author
Owner

@OpenSourceCS commented on GitHub (May 7, 2015):

QuickLZ implemented in xRAT is just a single file written in pure c#. It makes things simple.

<!-- gh-comment-id:99836862 --> @OpenSourceCS commented on GitHub (May 7, 2015): QuickLZ implemented in xRAT is just a single file written in pure c#. It makes things simple.
Author
Owner

@yankejustin commented on GitHub (May 7, 2015):

Hmmm... I can port an algorithm if it is much better than what we currently use. Please know that the article mentioned is 4 years old. If possible, please show me a more recent bench mark and I will certainly convert it to C#. :)

<!-- gh-comment-id:99843419 --> @yankejustin commented on GitHub (May 7, 2015): Hmmm... I can port an algorithm if it is much better than what we currently use. Please know that the article mentioned is 4 years old. If possible, please show me a more recent bench mark and I will certainly convert it to C#. :)
Author
Owner

@DragonzMaster commented on GitHub (May 7, 2015):

as for snappy it hasn't changed a lot and you can see here
github.com/google/snappy@eeead8dc38

it might help you :)

and i am trying to find newer benchmark for LZ4

<!-- gh-comment-id:99852511 --> @DragonzMaster commented on GitHub (May 7, 2015): as for snappy it hasn't changed a lot and you can see here https://github.com/google/snappy/commit/eeead8dc38ea359f027fb6e89f345448e8e9d723 ## it might help you :) and i am trying to find newer benchmark for LZ4
Author
Owner

@DragonzMaster commented on GitHub (May 7, 2015):

GOOD News
Snappy (the extremely fast algorithm) is available in c# .net (4 years ago)
so you don't need to convert it ... here is the project
https://github.com/Kintaro/SnappySharp
Edit : I want to mention that Google owns Snappy so it should be stable and great 😆

<!-- gh-comment-id:99855606 --> @DragonzMaster commented on GitHub (May 7, 2015): GOOD News Snappy (the extremely fast algorithm) is available in c# .net (4 years ago) so you don't need to convert it ... here is the project https://github.com/Kintaro/SnappySharp Edit : I want to mention that Google owns Snappy so it should be stable and great :laughing:
Author
Owner

@OpenSourceCS commented on GitHub (May 7, 2015):

need to benchmark snappy and quickLZ before implementing

<!-- gh-comment-id:99856135 --> @OpenSourceCS commented on GitHub (May 7, 2015): need to benchmark snappy and quickLZ before implementing
Author
Owner

@DragonzMaster commented on GitHub (May 7, 2015):

i found more benchmarks i hope you find it useful
i want to mention that they are in different Implementation (some are java)
but it shows the difference between them and there performance
LZ4 shows to be the fastest 👍

reference :
http://java-performance.info/performance-general-compression/
https://sites.google.com/site/powturbo/home/benchmark
http://lz4net.codeplex.com/wikipage?title=Comparison%20to%20other%20algorithms&referringTitle=Home
https://code.google.com/p/lz4/
http://catchchallenger.first-world.info//wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO

<!-- gh-comment-id:99868781 --> @DragonzMaster commented on GitHub (May 7, 2015): i found more benchmarks i hope you find it useful i want to mention that they are in different Implementation (some are java) but it shows the difference between them and there performance LZ4 shows to be the fastest :+1: reference : http://java-performance.info/performance-general-compression/ https://sites.google.com/site/powturbo/home/benchmark http://lz4net.codeplex.com/wikipage?title=Comparison%20to%20other%20algorithms&referringTitle=Home https://code.google.com/p/lz4/ http://catchchallenger.first-world.info//wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO
Author
Owner

@OpenSourceCS commented on GitHub (May 7, 2015):

does anyone find lags in network transmission?. I think QuickLZ is sufficient for now. But after implementing other features, we can come back to this. @MaxXor please start assigning people for specific issues. Thanks!

<!-- gh-comment-id:99894522 --> @OpenSourceCS commented on GitHub (May 7, 2015): does anyone find lags in network transmission?. I think QuickLZ is sufficient for now. But after implementing other features, we can come back to this. @MaxXor please start assigning people for specific issues. Thanks!
Author
Owner

@yankejustin commented on GitHub (May 7, 2015):

I have no issues with network transmission. ProtoBuf is actually very fast and efficient.

<!-- gh-comment-id:99918096 --> @yankejustin commented on GitHub (May 7, 2015): I have no issues with network transmission. ProtoBuf is actually very fast and efficient.
Author
Owner

@MaxXor commented on GitHub (May 7, 2015):

DragonHunter recommended that we should use QuickLZ instead of LZ4. I also think we should stick with it.

<!-- gh-comment-id:99922789 --> @MaxXor commented on GitHub (May 7, 2015): DragonHunter recommended that we should use QuickLZ instead of LZ4. I also think we should stick with it.
Author
Owner

@yankejustin commented on GitHub (May 7, 2015):

By that, you mean we should continue using what we currently use? I would just like to clarify.

<!-- gh-comment-id:99923587 --> @yankejustin commented on GitHub (May 7, 2015): By that, you mean we should continue using what we currently use? I would just like to clarify.
Author
Owner

@MaxXor commented on GitHub (May 7, 2015):

Yes, correct. We'll change it when the current compression algorithm is not fast enough for our needs. But currently it is.

<!-- gh-comment-id:99923907 --> @MaxXor commented on GitHub (May 7, 2015): Yes, correct. We'll change it when the current compression algorithm is not fast enough for our needs. But currently it is.
Author
Owner

@yankejustin commented on GitHub (May 7, 2015):

Okay, thank you for the clarification. I agree.

<!-- gh-comment-id:99924242 --> @yankejustin commented on GitHub (May 7, 2015): Okay, thank you for the clarification. I agree.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Quasar#43
No description provided.