Comments (4)
I'm just curious how this particular gif was created.
I'm not 100% confident that I remember the details, but I suspect that it was created by the byzanz
tool.
this yields new performance numbers which compare quite favorably
Thanks, but since we all have different hardware, I can't really learn much from these raw numbers without knowing a comparison point (on the same hardware, obviously). For example, numbers for "the old rust" or "wuffs/gif" or "C/giflib". When comparing two different Benchmarketc
runs, I use the benchstat
program to derive summary statistics (e.g. standard deviations and p-values).
from wuffs.
Thanks, but since we all have different hardware, I can't really learn much from these raw numbers without knowing a comparison point (on the same hardware, obviously). For example, numbers for "the old rust" or "wuffs/gif" or "C/giflib".
the numbers for gcc -O3 test/c/gif.c && ./a.out -bench
:
Benchmarkwuffs_gif_decode_1k_bw/gcc10 200000 1567 ns/op 653.388 MB/s
Benchmarkwuffs_gif_decode_1k_color_full_init/gcc10 100000 5489 ns/op 183.617 MB/s
Benchmarkwuffs_gif_decode_1k_color_part_init/gcc10 100000 4161 ns/op 242.213 MB/s
Benchmarkwuffs_gif_decode_10k_bgra/gcc10 10000 52387 ns/op 769.650 MB/s
Benchmarkwuffs_gif_decode_10k_indexed/gcc10 10000 41503 ns/op 242.873 MB/s
Benchmarkwuffs_gif_decode_20k/gcc10 5000 67273 ns/op 285.401 MB/s
Benchmarkwuffs_gif_decode_100k_artificial/gcc10 1500 219455 ns/op 628.392 MB/s
Benchmarkwuffs_gif_decode_100k_realistic/gcc10 1000 548069 ns/op 251.617 MB/s
Benchmarkwuffs_gif_decode_1000k_full_init/gcc10 100 3924560 ns/op 254.992 MB/s
Benchmarkwuffs_gif_decode_1000k_part_init/gcc10 100 3922270 ns/op 255.141 MB/s
Benchmarkwuffs_gif_decode_anim_screencap/gcc10 100 3348490 ns/op 1389.342 MB/s
Benchmarkwuffs_gif_decode_1k_bw/gcc10 200000 1575 ns/op 650.028 MB/s
Benchmarkwuffs_gif_decode_1k_color_full_init/gcc10 100000 5475 ns/op 184.106 MB/s
Benchmarkwuffs_gif_decode_1k_color_part_init/gcc10 100000 4183 ns/op 240.922 MB/s
Benchmarkwuffs_gif_decode_10k_bgra/gcc10 10000 52488 ns/op 768.163 MB/s
Benchmarkwuffs_gif_decode_10k_indexed/gcc10 10000 41521 ns/op 242.767 MB/s
Benchmarkwuffs_gif_decode_20k/gcc10 5000 67409 ns/op 284.828 MB/s
Benchmarkwuffs_gif_decode_100k_artificial/gcc10 1500 218344 ns/op 631.588 MB/s
Benchmarkwuffs_gif_decode_100k_realistic/gcc10 1000 549226 ns/op 251.087 MB/s
Benchmarkwuffs_gif_decode_1000k_full_init/gcc10 100 3917780 ns/op 255.434 MB/s
Benchmarkwuffs_gif_decode_1000k_part_init/gcc10 100 3929240 ns/op 254.689 MB/s
Benchmarkwuffs_gif_decode_anim_screencap/gcc10 100 3374310 ns/op 1378.710 MB/s
Benchmarkwuffs_gif_decode_1k_bw/gcc10 200000 1561 ns/op 655.825 MB/s
Benchmarkwuffs_gif_decode_1k_color_full_init/gcc10 100000 5495 ns/op 183.422 MB/s
Benchmarkwuffs_gif_decode_1k_color_part_init/gcc10 100000 4154 ns/op 242.633 MB/s
Benchmarkwuffs_gif_decode_10k_bgra/gcc10 10000 52682 ns/op 765.343 MB/s
Benchmarkwuffs_gif_decode_10k_indexed/gcc10 10000 41623 ns/op 242.171 MB/s
Benchmarkwuffs_gif_decode_20k/gcc10 5000 67333 ns/op 285.147 MB/s
Benchmarkwuffs_gif_decode_100k_artificial/gcc10 1500 218626 ns/op 630.775 MB/s
Benchmarkwuffs_gif_decode_100k_realistic/gcc10 1000 547527 ns/op 251.867 MB/s
Benchmarkwuffs_gif_decode_1000k_full_init/gcc10 100 3935070 ns/op 254.311 MB/s
Benchmarkwuffs_gif_decode_1000k_part_init/gcc10 100 3914220 ns/op 255.666 MB/s
Benchmarkwuffs_gif_decode_anim_screencap/gcc10 100 3373890 ns/op 1378.882 MB/s
Benchmarkwuffs_gif_decode_1k_bw/gcc10 200000 1569 ns/op 652.351 MB/s
Benchmarkwuffs_gif_decode_1k_color_full_init/gcc10 100000 5478 ns/op 183.978 MB/s
Benchmarkwuffs_gif_decode_1k_color_part_init/gcc10 100000 4161 ns/op 242.211 MB/s
Benchmarkwuffs_gif_decode_10k_bgra/gcc10 10000 53005 ns/op 760.678 MB/s
Benchmarkwuffs_gif_decode_10k_indexed/gcc10 10000 41800 ns/op 241.147 MB/s
Benchmarkwuffs_gif_decode_20k/gcc10 5000 67582 ns/op 284.098 MB/s
Benchmarkwuffs_gif_decode_100k_artificial/gcc10 1500 218334 ns/op 631.617 MB/s
Benchmarkwuffs_gif_decode_100k_realistic/gcc10 1000 549995 ns/op 250.736 MB/s
Benchmarkwuffs_gif_decode_1000k_full_init/gcc10 100 3917530 ns/op 255.450 MB/s
Benchmarkwuffs_gif_decode_1000k_part_init/gcc10 100 3950690 ns/op 253.306 MB/s
Benchmarkwuffs_gif_decode_anim_screencap/gcc10 100 3356460 ns/op 1386.043 MB/s
Benchmarkwuffs_gif_decode_1k_bw/gcc10 200000 1562 ns/op 655.420 MB/s
Benchmarkwuffs_gif_decode_1k_color_full_init/gcc10 100000 5486 ns/op 183.725 MB/s
Benchmarkwuffs_gif_decode_1k_color_part_init/gcc10 100000 4160 ns/op 242.286 MB/s
Benchmarkwuffs_gif_decode_10k_bgra/gcc10 10000 52965 ns/op 761.255 MB/s
Benchmarkwuffs_gif_decode_10k_indexed/gcc10 10000 41722 ns/op 241.597 MB/s
Benchmarkwuffs_gif_decode_20k/gcc10 5000 67457 ns/op 284.622 MB/s
Benchmarkwuffs_gif_decode_100k_artificial/gcc10 1500 220192 ns/op 626.289 MB/s
Benchmarkwuffs_gif_decode_100k_realistic/gcc10 1000 549098 ns/op 251.146 MB/s
Benchmarkwuffs_gif_decode_1000k_full_init/gcc10 100 3960640 ns/op 252.670 MB/s
Benchmarkwuffs_gif_decode_1000k_part_init/gcc10 100 3916360 ns/op 255.526 MB/s
Benchmarkwuffs_gif_decode_anim_screencap/gcc10 100 3403920 ns/op 1366.717 MB/s
In other words, the performance difference is no longer ×7 but rather ~×2.3.
from wuffs.
I'm not 100% confident that I remember the details, but I suspect that it was created by the byzanz tool.
Thanks, I'll have a look.
from wuffs.
Heh, I should just have read your source code... Since you made the same observation but more accurately reported it.
https://github.com/google/wuffs/blob/master/std/gif/decode_gif.wuffs#L889-L906
Sorry for the noice 🙂
from wuffs.
Related Issues (20)
- print-image-metadata script can go into an infinite loop
- Slow f64 parsing HOT 13
- RGB/BGR 16 bit treated like RGBA/BGRA? HOT 1
- OSS-Fuzz issue 59018 HOT 1
- [JPEG] unsupported DQT after SOF markers HOT 1
- OSS-Fuzz issue 59182 HOT 1
- OSS-Fuzz issue 59540 HOT 1
- OSS-Fuzz issue 59966 HOT 1
- A question regarding auxiliary C++ API HOT 4
- What is the status of version 0.3? HOT 3
- Empty slice manipulation triggers UBSAN by offsetting from a null pointer. HOT 2
- error: conversion to ‘uint32_t’ {aka ‘unsigned int’} from ‘int’ may change the sign of the result HOT 3
- OSS-Fuzz issue 66816 HOT 1
- PNG's are stored in RGB order but Wuffs returns BGR/BGRA? HOT 1
- Decode PNG with gray+alpha as 2 channels (i.e. YA not BGRA) HOT 5
- Warning about always true comparison of integers HOT 1
- std/crc64 doesn't build for 32-bit x86 HOT 1
- Allowing LA and RGBA PNGs with a tRNS chunk HOT 2
- How to get the correct 'transparency' value in the DecodeImage API? HOT 2
- wuffs 0.4 significantly slower than 0.3 decoding PNGs HOT 27
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wuffs.