From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <ffmpeg-devel-bounces@ffmpeg.org> Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 3D5414CDEB for <ffmpegdev@gitmailbox.com>; Mon, 14 Apr 2025 12:40:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8E9AA687C94; Mon, 14 Apr 2025 15:40:20 +0300 (EEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02olkn2032.outbound.protection.outlook.com [40.92.44.32]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 733AB6879D2 for <ffmpeg-devel@ffmpeg.org>; Mon, 14 Apr 2025 15:40:14 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qyo5WLHuf0/brQYxFfmdN7Mp4AHellbJj9+H8deW/6eenmYtwrXvirGANIHtUNaT9uv4vdMbUS0ESBAGVb3ZH4Au8AQcycqgWsNQK2ujrGd2gRFqzTLC3t7cQzFRliE7YYw377jweFhOj1D3JmmptDXwParEfdvt6JBspSSpiklGJrW8o5C1gBjPERN/+9TBwmF3zXvkLsFkWB6qwsMJJDfGk6Ff7B0G3VrZeRO8wyFidSNHILKYeponV+gD2neG/w+PT81lgcxcp2msakD/+MTwl7DQREvxd4lKELrj+0uPIlIt4CSMAY4zm98nMkfnXrI+YQMqKtkcv71uPhYzTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tLB+WXp4dMdnLhhrUScjCN+Zgj54p4IccqXHU/1HLWo=; b=Lhw1sznYl+aRJm4psSGHJF1QuflSO5jZvpJRSrV2HgBNOQDDyuxX/bnkmm+HdPpo1EoXL7YmJI6towkcjoP3ScUzIvLtXBEQ0FonCcuXpRLEzcJkVOZjEE1Giodv/yhyxJflxH/LBkVnjXBXqeoqdl0ejNvx3q9jq0DJxPjJ6e+WvthOdoQkSJPhWEcI0oc5r/G40x6xrMgSg+U+uM0lrmNOgiglDKz/wLXNEI+yY6/ftp0y7y/pJx9VICzOwg1P/eDzPj5dbx+8l+BTNV3Ot8ZyB7qI0MXhiWXwe9d3BQ70zfEOmjWroyEhuN/cVueRCAjhPYcRwaK6anCqdZu5Kw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tLB+WXp4dMdnLhhrUScjCN+Zgj54p4IccqXHU/1HLWo=; b=i9Hy5WyYANDc94X1NCf9IxG1wtPWRzkunjb+iY06GpHacp92jRjyLr2NwT9UgRKtPdpRW42aGZYn2ZOsFuQa4jC2g50KTGzUBiDGUmBaFG1TZ+6TZT33WADbNNAgeQMAnLcrhMxADWcZBvYJXql4GAjX8yt/lZyOBjtthlrXdqHoKaIOwdIm3Gncqq4rMjbVNpJ5SLW4RHTDuFjXR7eji2gk/RbVgIBnS5/7IUY0l13CIAmzfftCrSWCmaRNba19u6JtI0haQjEKs0Vyw7I8f0CkeRwMqaFjEt1Ow0EMquX7agSdqi20Jg05a2lB5VSjm7m18982sbU+pJdLDhQKkQ== Received: from BN0P223MB0358.NAMP223.PROD.OUTLOOK.COM (2603:10b6:408:145::16) by DS4PPFAD6013C26.NAMP223.PROD.OUTLOOK.COM (2603:10b6:f:fc00::b7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8632.27; Mon, 14 Apr 2025 12:40:11 +0000 Received: from BN0P223MB0358.NAMP223.PROD.OUTLOOK.COM ([fe80::c63a:275a:b3f4:fae9]) by BN0P223MB0358.NAMP223.PROD.OUTLOOK.COM ([fe80::c63a:275a:b3f4:fae9%5]) with mapi id 15.20.8632.025; Mon, 14 Apr 2025 12:40:11 +0000 From: "softworkz ." <softworkz-at-hotmail.com@ffmpeg.org> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Thread-Topic: [FFmpeg-devel] AVDictionary vs. AVSet (AVDictionary2 approximation) Thread-Index: AQHbrTEaXvjKypbCNkqW6ojU4mBbWbOjF48g Date: Mon, 14 Apr 2025 12:40:11 +0000 Message-ID: <BN0P223MB0358D7E3367462AA4EF9B744BAB32@BN0P223MB0358.NAMP223.PROD.OUTLOOK.COM> References: <20250414113328.GM4991@pb2> In-Reply-To: <20250414113328.GM4991@pb2> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN0P223MB0358:EE_|DS4PPFAD6013C26:EE_ x-ms-office365-filtering-correlation-id: d238706b-9924-4caf-f5c2-08dd7b517f11 x-microsoft-antispam: BCL:0; ARA:14566002|7092599003|8060799006|19110799003|15080799006|461199028|8062599003|440099028|3412199025|102099032|12091999003; x-microsoft-antispam-message-info: =?us-ascii?Q?9LMlmawGtOIyvrWc6RJ6/Qd1R+0wIsX6luFdNY2RLlff9x0Rve1kxCySa1CR?= =?us-ascii?Q?+n6fEgLfZkn55b/wqgyc1HSTNfMqKREjoSLfCHbQ3cxsumVErfoqOqJ7dKnX?= =?us-ascii?Q?DtyjJCaS3KDLQZHF9l4RcLAtMzuc8xQuuiHAklGVb0qw7JwK4IZ/aWkNxd2+?= =?us-ascii?Q?m/OeUNC6EXGBQDaTjHr3IqaTCrBbb6mOvoHjiAktOyyx9WL+l29ycVgRoLe5?= =?us-ascii?Q?G4tKOueXxGLPxADbHLDImF6TRh5KLntVDHRwp4GLlPWRLt3XN1XqUBQsS9Do?= =?us-ascii?Q?0j3ab8pv+Rp4g49PjXaJihkWouVR6J1cdCfz8UVfdKDOf9Nar4u9Q4QWO4m8?= =?us-ascii?Q?dtrVy/obL++yua3qvi6PbsALUSyx9u+9XX6l9jeiieB87qMSy9hTwU0j29/n?= =?us-ascii?Q?PzvBIfLy7GqU3qmILebA0j0r9NNeagQhEZ5UIc5nj7hmVCHY6SPm3fEtXRfw?= =?us-ascii?Q?EpQ1zKcNG/eNWH6NNCSgD+ROqX1nQ4FuIeIvNVH7qEl5pH+2P3uj9YsuwLuT?= =?us-ascii?Q?RvxT1EgWqpM6DTQvoj8TaIjI3PWbAABRgGpcrSpOJP7Ge0MKTNH9n9qZPvw3?= =?us-ascii?Q?3524pWrYGUphGX1Y0WX0EKh1pd53TjdJ680LtFtuhiYlmYQn7NMYNuJ+T/DS?= =?us-ascii?Q?RuOPz1CeOaGksq6Bc7ibNW7S+CWN6vAPTZr008y3+fI/MhFttTtwYyBj+lWE?= =?us-ascii?Q?6FgTnBIaccEY0w5ueR/1cJckeiXjZ2hBozbLrpLS98nMf7RxCxdK7YHqrXj2?= =?us-ascii?Q?e2+PBpAsc95zKFZpDosjdUCNK8bh2uHXmPe/x/zB5RVNgWj1f/fy5tgm/WzM?= =?us-ascii?Q?xDb0sR20A+3qbH/TDDWxIW+RkAqiQt6zbRry/e9SBTFygIxYCDzJrBLEG83z?= =?us-ascii?Q?zB92LK8H16gi1/5CtvuN7dlTjJJOZ+Cq5M37nCbEaX9+xUuMy/kitc3stnUy?= =?us-ascii?Q?Ar4X2Y4oDYKTEFhQ9rGtBMEWCHABCf1lkj8GvUZQt9u5pG4kVn9FCBg22o2t?= =?us-ascii?Q?D1+s83kOzkwkkehIYrZB1E/Epl1Nw4oZ+5yU0H+CZBbZLoINjlzmOl/FaKqf?= =?us-ascii?Q?D6PNGGgbbhM7BOHOVDIqinBEZfZcbHMX2G+UzxcIISnWOMC2RmLNASjP5lTM?= =?us-ascii?Q?57yn1LIN7KcnlQraz0nmUUXxPSfXTZAgTg=3D=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?kmTsNy9PZ/XXUF9hM9LT28AaGyuD8PoYHNIfYx2QfAP8nRV9/8r9RZ0Vckt4?= =?us-ascii?Q?Mjyor3BtgdkOsMDRXOZFz9LadGlaMEtdbRSvzmbJnV+9+TsA8KapMobM8nwo?= =?us-ascii?Q?sZpSEbOS41P2qeoAslL8ioftLI8PINQY9KXIE6EhrO4Xvxfp903jPEssisvZ?= =?us-ascii?Q?rc1jroGVZuvoFE+FCzhTcxkzvhS1VacF6Kkd6EUPribVQE6vArBKHMGXv1oe?= =?us-ascii?Q?oLPLf8NgilZ2zPlEwg70CGYr+WD5kkH4PoutawMlOa0EjHn419seanWb3iz7?= =?us-ascii?Q?MYc2Vk+zl76E6WY5Llu45hxzmtG1DfogAnp2e86Dfp+kQVHPqm/mjqkEi8I/?= =?us-ascii?Q?1cjMJOahajmzUW4oJim8uX+FVvPilZmyH8kOXQGvEZ2YtVvrpPqPMsztQ+0Q?= =?us-ascii?Q?Hj4CU5lrk8nrvUQHjNTX7lrU65+da4Bj6mHNw8rcu5u6tKp/HVM2nxQ/wcj5?= =?us-ascii?Q?BFAKbOvzI9paHKJlMC2sC05xVX2AF+RE9ReW8DoHxHY9yCkn596w2RrMJbJp?= =?us-ascii?Q?LxeneDKMZrdlW9q71FBuRPV39GpARvGwkIwGRwijAxBrssN/yEG9hxHZLkm8?= =?us-ascii?Q?nxnGHEWYveOgfdcJvBJPdtmFyg7O/1F3MSmL/DDfy2TQUnY0704tTBX/Qqh+?= =?us-ascii?Q?vSKuJutH21KgGfu/YXknfg+d34DIyeIJE8QS0hTnxRkR+aKIZO4eYcHWWrtK?= =?us-ascii?Q?Y91jnM0JZuczVkIj41vZ3+CG9+eK7HlV6N5k5QvBgNl5PhyZXJuYzRzUhR0P?= =?us-ascii?Q?QTaTG1uzA0GWTZ0dkd7Yy1O0/9hWdJ/2x5sGVQcaLowO7cdAn3FsMhakgMoo?= =?us-ascii?Q?WLrKHxHL862GmzZos2fmzSAwAgfiPvblmPFWGrwV13GAjGyZsIhppa9MWGRg?= =?us-ascii?Q?iPlzdDyH2jrn5vb4F5LWXLqxkghAz9MVMJpMKbT5aGHtx5RwPPLC1fuG1CG4?= =?us-ascii?Q?r52mx6SRjJcyWpGGKON013fVrV/unEthj+GPwI4MZllaxiY08l3zOmRjyt0r?= =?us-ascii?Q?axgrbkdgjwyrmJxkulf+vsJU/RtmFiOE9YSPhg61mg1nCFDPLVSGjycjv9O3?= =?us-ascii?Q?HpSAapLSp7Czcu38iU5RjA4epOfGnD3eeI++ZpGEBdFCBA/xHc0iHGSzlW50?= =?us-ascii?Q?nuburQwCnTSYCw2n4vENmT4R+ZALS97BfjfLqJxOWm/VssG+AfyptC3WY7Xz?= =?us-ascii?Q?Yw8GrewQSXvOUq6puPXe9tOSElARkDgRgFi4jwQ5k8hfsVe/HItm2zCXlQI?= =?us-ascii?Q?=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN0P223MB0358.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: d238706b-9924-4caf-f5c2-08dd7b517f11 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2025 12:40:11.0300 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PPFAD6013C26 Subject: Re: [FFmpeg-devel] AVDictionary vs. AVSet (AVDictionary2 approximation) X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org> List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe> List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel> List-Post: <mailto:ffmpeg-devel@ffmpeg.org> List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help> List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>, <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe> Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org> Archived-At: <https://master.gitmailbox.com/ffmpegdev/BN0P223MB0358D7E3367462AA4EF9B744BAB32@BN0P223MB0358.NAMP223.PROD.OUTLOOK.COM/> List-Archive: <https://master.gitmailbox.com/ffmpegdev/> List-Post: <mailto:ffmpegdev@gitmailbox.com> > -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of > Michael Niedermayer > Sent: Montag, 14. April 2025 13:33 > To: FFmpeg development discussions and patches <ffmpeg- > devel@ffmpeg.org> > Subject: [FFmpeg-devel] AVDictionary vs. AVSet (AVDictionary2 > approximation) > > Hi > > I just posted a AVSet implementation i wrote in the last 2 days (yes > thats > why i did dissapear for the last 2 days) > > My plan was to use that AVSet as basis for AVDictionary2 in case > benchmarks indicate that its worth it, so is it ? > > with 3 entries (100000 runs) > AVDictionary 0.040sec > AVSet 0.027sec > > with 5 entries (100000 runs) > AVDictionary 0.065sec > AVSet 0.042sec > > with 10 entries (100000 runs) > AVDictionary 0.193sec > AVSet 0.087sec > > with 100 entries (100000 runs) > AVDictionary 8.7 sec > AVSet 1.4 sec > > with 1000 entries (1000 runs) > AVDictionary 8.0 sec > AVSet 0.240 sec > > with 10000 entries (10 runs) > AVDictionary 7.2 sec > AVSet 0.042 sec > > > I was a bit surprised for the 3 and 5 entry case, maybe my benchmark > is buggy or > AVSet is, but then AVDictionary is pretty bad with memory allocations > > AVDictionary needs to strdup every key and value, needs to allocate > the AVDictionary itself and reallocs the entry array each time > thats 10 memory allocation related calls for adding 3 entries > > while AVSet allocates the AVSet and then uses av_fast_realloc() for > the array > and theres nothing else, the key/value goes in that array too > > > bechmark code used is below: > > > #if 0 > for (int runs = 0; runs < 100000; runs++) { > AVSet *set = av_set_new(strcmp, NULL, NULL); > for(int pass = 0; pass < 2; pass++) { > unsigned r = 5; > for(int i=0; i<100; i++) { > r = r*123 + 7; > char str[2*7] = "TESTXXTESTXX"; > str[4] = r; > str[5] = r>>8; > if(pass == 0) { > av_set_add(set, str, 2*7, 0); > } else { > av_set_get(set, NULL, str, NULL); > } > } > } > av_set_free(&set); > } > #else > for (int runs = 0; runs < 100000; runs++) { > AVDictionary *dict = NULL; > for(int pass = 0; pass < 2; pass++) { > unsigned r = 5; > for(int i=0; i<100; i++) { > r = r*123 + 7; > char str[7] = "TEST"; > str[4] = r; > str[5] = r>>8; > if(pass == 0) { > av_dict_set(&dict, str, str, 0); > } else { > av_dict_get(dict, str, NULL, 0); > } > } > } > av_dict_free(&dict); > } > #endif > > > -- Hi Michael, what's not quite realistic is that all keys are starting with the same 4 characters. This affects the lookups of course - and probably (maybe) not equally for both sides. Doesn't the code create duplicate keys (at least when it gets > 65536 it will for sure) ? So, I think, the keys should be completely random (all chars). I would also check whether the lookups are successful (just to be sure). Best, sw _______________________________________________ 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".