-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
V9 Change log and read me #559
Conversation
Since there are many PNG optimizers out there, and the main deciding factors between them are speed and compression, I think it is important to keep the benchmarks up to date, even if only comparing performance with OptiPNG is somewhat limited. I could generate some updated numbers on an Intel Core i7-12700 CPU (20 logical cores, 8 performance cores) if that's okay with you! |
Yes, that'd be great! I might see if I can update the script to simplify the way it works with the read me... Did you have any comments on the change log or read me? |
Right, I've updated the compare script with a couple of key changes:
|
README.template.md
Outdated
@@ -41,28 +41,25 @@ Oxipng follows Semantic Versioning. | |||
Oxipng is a command-line utility. Basic usage looks similar to the following: | |||
|
|||
``` | |||
oxipng -o 4 -i 1 --strip safe *.png | |||
oxipng -o 4 --alpha --strip safe *.png |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please don't suggest --alpha
for newbies. It should not be the default. I recently got caught out on some specialist pre-multiplied alpha case, where this caused a breaking change...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't worry, it's not the default - this is just an example 🙂
For web or personal use (the majority of use cases), I do think it's a good suggestion. PNG isn't technically supposed to be pre-multiplied (according to the specs) and situations where alpha optimisation is breaking are indeed specialist as you say.
I've changed the wording to say it's an example for web usage.
Other than what @ace-dent suggested, I think the documents are fine 👍 I'll try to do some benchmarks soon, although it's likely I'll be busy these next days. |
README.md
Outdated
- Strip: Used to remove metadata info from processed images. Used via `--strip [safe,all]`. | ||
Can save a few kilobytes if you don't need the metadata. "Safe" removes only metadata that | ||
will never affect rendering of the image. "All" removes all metadata that is not critical | ||
to the image. You can also pass a comma-separated list of specific metadata chunks to remove. | ||
`-s` can be used as a shorthand for `--strip safe`. | ||
|
||
More advanced options can be found by running `oxipng -h`. | ||
More advanced options can be found by running `oxipng -h`, or viewed [here](MANUAL.txt). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not related to this line, but I think the deploy workflow needs to include this file too maybe?
https://github.com/shssoichiro/oxipng/blob/master/.github/workflows/deploy.yml#L57
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, I'll mention that in #563.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a note:
- Comment on parameters being case sensitive.
- Example of short vs long parameter usage, e.g.
-Psavvo6
==--pretend --strip=safe --alpha --verbose --verbose --opt=6
.
This fixes Tolerate lowercase-z
parameter #539.
Also suggest pointing user to --help
(not -h
), for extended help.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ace-dent done
I have just ran the benchmarks on a computer with a Debian sid Linux 6.5.0-2-amd64 kernel, an Intel Core i7-12700 CPU (12C 20T; stock clocks and cooler, but with turbo duration and power limits unlimited by motherboard firmware), and DDR5-5200 RAM in dual channel configuration. I used OptiPNG 0.7.7 as packaged by Debian. I compiled OxiPNG by running The results were as follows:
In general, the relative performance of OxiPNG over OptiPNG seems to have remained similar over time. |
Cool, thanks! |
Yeah, I'll push a commit here with the updated readme! |
@AlexTMjugador The compare.sh command should update the Read Me itself, did you not use that? |
I used it, but I didn't like how it formatted my CPU name as "12th Gen Intel(R) Core(TM) i7-12700" and did not make distinctions about the number of performance and efficiency cores, so I rewrote that a bit to look nicer in my opinion. |
Ah, fair enough. Do we really need to keep the old benchmarks though? |
I think they are useful for historical purposes. There is no harm in keeping them around for now. |
My 2¢: Old benchmarks have zero value to users of the contemporary release. Even the latest benchmarks are just indicative of performance.
Adds more noise for a new user to scan through when first encountering oxipng. |
It's a bit more convenient to have the old benchmarks readily available than upon bisecting or checking the Git logs, and they are clearly labeled as old and not shown by default. But I don't have a strong opinion either way, and I don't mind removing them if appropriate. |
Let's do this! |
Co-authored-by: Alejandro González <me@alegon.dev>
I haven't updated the actual read me yet, only the template. I'm unsure what we should do about the benchmarks. I don't have a machine with more than 4 primary cores, which I don't think makes a good benchmark.
Do you think we still need them? It currently only shows speed difference vs OptiPNG, though I think compression is equally notable.
We could always drop them for now and add them back some other time.