From: Michael Niedermayer <michael@niedermayer.cc>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH v3] [NOT for git] avutil/tests/map: benchmark code [BENCHMARK included]
Date: Wed, 16 Apr 2025 15:52:03 +0200
Message-ID: <20250416135203.GL4991@pb2> (raw)
In-Reply-To: <DM8P223MB0365093E495C0404C6E78A36BAB22@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
[-- Attachment #1.1: Type: text/plain, Size: 4201 bytes --]
On Tue, Apr 15, 2025 at 11:24:37PM +0000, softworkz . wrote:
>
>
> > -----Original Message-----
> > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> > Michael Niedermayer
> > Sent: Dienstag, 15. April 2025 22:51
> > To: FFmpeg development discussions and patches <ffmpeg-
> > devel@ffmpeg.org>
> > Subject: [FFmpeg-devel] [PATCH v3] [NOT for git] avutil/tests/map:
> > benchmark code [BENCHMARK included]
> >
>
> [..]
>
> >
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> > libavutil/tests/map.c | 57
> > +++++++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 57 insertions(+)
> >
> > diff --git a/libavutil/tests/map.c b/libavutil/tests/map.c
> > index 38f0a153e68..90950769f98 100644
> > --- a/libavutil/tests/map.c
> > +++ b/libavutil/tests/map.c
> > @@ -26,6 +26,8 @@
> > #include "libavutil/mem.h"
> > #include "libavutil/map.h"
> >
> > +#include "libavutil/timer.h"
> > +#include "libavutil/dict.h"
> >
> > static void print_set(const AVMap *s)
> > {
> > @@ -37,6 +39,7 @@ static void print_set(const AVMap *s)
> >
> > int main(void)
> > {
> > +#if 0
> > void *our_cmp[] = {
> > strcmp,
> > av_map_strcmp_keyvalue,
> > @@ -185,6 +188,60 @@ int main(void)
> > av_map_free(&set);
> > av_assert0(!set);
> > }
> > +#else
> > +#define N_ENTRIES 1000
> > +#define P 4
> > + fprintf(stderr, "%d entries variable bytes at location %d-%d\n",
> > N_ENTRIES, P, P+1);
> > + for (int runs = 0; runs < 1000; runs++) {
> > + AVMap *map = av_map_new(av_strcasecmp, NULL, NULL);
> > + for(int pass = 0; pass < 2; pass++) {
> > + START_TIMER
> > + unsigned r = 5;
> > + for(int i=0; i<N_ENTRIES; i++) {
> > + r = r*123 + 7;
> > + char str[7] = "TEST";
> > + str[P ] = r;
> > + str[P+1] = r>>8;
> > + if(pass == 0) {
> > + av_map_add(map, str, 7, str, 7, 0);
> > + } else {
> > + av_map_get(map, str, av_strcasecmp);
> > + }
> > + }
> > + if (pass) {
> > + STOP_TIMER("av_map_get")
> > + } else {
> > + STOP_TIMER("av_map_add")
> > + }
> > + }
> > + av_map_free(&map);
> > + }
> > +
> > + for (int runs = 0; runs < 1000; runs++) {
> > + AVDictionary *dict = NULL;
> > + for(int pass = 0; pass < 2; pass++) {
> > + START_TIMER
> > + unsigned r = 5;
> > + for(int i=0; i<N_ENTRIES; i++) {
> > + r = r*123 + 7;
> > + char str[7] = "TEST";
> > + str[P ] = r;
> > + str[P+1] = r>>8;
> > + if(pass == 0) {
> > + av_dict_set(&dict, str, str, 0);
> > + } else {
> > + av_dict_get(dict, str, NULL, 0);
> > + }
> > + }
> > + if (pass) {
> > + STOP_TIMER("av_dict_get")
> > + } else {
> > + STOP_TIMER("av_dict_set")
> > + }
> > + }
> > + av_dict_free(&dict);
> > + }
> > +#endif
> >
> > return 0;
> > }
> > --
>
> Hi Michael,
>
> is av_map_get() supposed tg work? I wasn't able to retrieve any values
> (always null return).
if you flip the #if 0 above this is a test that tests
av_map_get() and other functions.
Its new code and certainly bugs remain.
If you found cases that dont work, send a patch that adds these
cases to this test, and ill look at it eventually
or even better send a patch that fixes the issue you found
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If you drop bombs on a foreign country and kill a hundred thousand
innocent people, expect your government to call the consequence
"unprovoked inhuman terrorist attacks" and use it to justify dropping
more bombs and killing more people. The technology changed, the idea is old.
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
prev parent reply other threads:[~2025-04-16 13:52 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-15 20:50 Michael Niedermayer
2025-04-15 23:24 ` softworkz .
2025-04-16 13:52 ` Michael Niedermayer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250416135203.GL4991@pb2 \
--to=michael@niedermayer.cc \
--cc=ffmpeg-devel@ffmpeg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git