| Message ID | 20260224132624.3469488-1-christopher.burr@cern.ch |
|---|---|
| Headers |
Return-Path: <libabigail-bounces~patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 04A374B9DB54 for <patchwork@sourceware.org>; Tue, 24 Feb 2026 13:26:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 04A374B9DB54 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=cern.ch header.i=@cern.ch header.a=rsa-sha256 header.s=selector1 header.b=TLiFcq+W; dkim=pass (1024-bit key) header.d=cern.ch header.i=@cern.ch header.a=rsa-sha256 header.s=selector1 header.b=TLiFcq+W X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from ZRZP278CU001.outbound.protection.outlook.com (mail-switzerlandnorthazlp170110002.outbound.protection.outlook.com [IPv6:2a01:111:f403:c213::2]) by sourceware.org (Postfix) with ESMTPS id 697E74BA23F9 for <libabigail@sourceware.org>; Tue, 24 Feb 2026 13:26:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 697E74BA23F9 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=cern.ch Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cern.ch ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 697E74BA23F9 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c213::2 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1771939600; cv=pass; b=IaDEIPfWqsvxCHixiPVB3OBdevxCDXS45C7Hcc15dpfOiMMCfu/4dfMHQmZQe61zSmVreU6jv7XyYdsW/G0XGBqUtiFry5jXkqLzugy2vNObNl8W3fGoGP+obgUmFINe+KzLT8408rQXuP6Zl/1Anz0qZX7xHLdZVMtXssw3UKY= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1771939600; c=relaxed/simple; bh=VvVA5BL4kjzK875Z1QH0g6GQKDEj5C1RCSgIyBdIdtk=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=QnMDUGy5SO0Xhvwya4NfPXfHsnUNOjh4tHpR/cNKAh8mo2mEAEgzUWgjYgDBb1u/X6OV9frVuVSjJa8XMetVPsZnxVAuZZj82EfkrjTsrACxmkeiQUiybpC28ilZ5ZpbkSEkVdyprSR8OoQRpf+F4HIWJoqYDcMPY0js/c5a+BU= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 697E74BA23F9 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RGmYFWx4w1dy+c6MX/xqgOXTfZSnWIa6HgSOamX+kNSl9Th7/LyJZkyhFqZQRUg0/pFuvkyN8SU87hm6ym4NTFx3Zb+CxrMtYkUDoZUF1yN272p4APJITITWt4odpSbzFBdguaMUzFcOQkug9VWMX07g6NtSpGywnYttPtBjE1HqBeGxNxQkfSSwH7i8viGpRle2dQcf54GaszXtXN4g4rxLzbJjn9RTr1EyWA1LN1VvSD90NbzJnC6ezzdHebQBGMlS8ccyak4pcJV95PjttjplNmUaCPLXbNN8eP69PxZwbqnidgQhGbqrsk35Jyd/nW7sObOswXIQiUW5b+0dFw== 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=029GfWF4JorLugc3+uKYYMyxyRVhomciBnacrNQJgXs=; b=UQVbPXdK7zhUuFy2C6xjQZpMCWgfGM9Z/W88RfTY7NFTbj9VWJ7WhAIB0PtjUIRLWXyGl3s8V/XYq7Zf4yIhRZ3XxwFnDjnt8DABahzjf58I65VuG38NoAJnuGgXWV5Xa9qycTTE1Iyra4n3k6f+nThPO4g8Pj6SCGy5YP/XtmbKuftiQpPdxbBM6yShTJjiFK8gPr55HdbhjM81+5UV+TaOzIo4+CN8BSp5btTXUQcTqti1zph8rCYCIyQZW9jXi9lOb9afwYgRUsXfR5JwyM7wNmQXZsiy0feTwoIgflipF7gmd57LniPZ6sumeZmrQsxs2QYpDOvoLrrXMmDEjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 20.208.138.155) smtp.rcpttodomain=sourceware.org smtp.mailfrom=cern.ch; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=cern.ch; dkim=pass (signature was verified) header.d=cern.ch; arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cern.ch; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=029GfWF4JorLugc3+uKYYMyxyRVhomciBnacrNQJgXs=; b=TLiFcq+Wtc5ErzH1zEslxpgLxC5o0fZBaJIUcHwYgKk9PiZeC7WTkv7NEOmbYD5tgtCBa6PDVhPDFpRMvWcIXr0tNGyIxy2sSp+hzU96l4p/EiYt8Z0nJQXg/LLoHv/vVEauw9S+Y72YwnYAwYaXP6vYVUy6SXHx6J9CwAu/Zag= Received: from AS9PR04CA0144.eurprd04.prod.outlook.com (2603:10a6:20b:48a::25) by ZR2P278MB1099.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:60::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb 2026 13:26:28 +0000 Received: from AMS0EPF000001AB.eurprd05.prod.outlook.com (2603:10a6:20b:48a:cafe::d5) by AS9PR04CA0144.outlook.office365.com (2603:10a6:20b:48a::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Tue, 24 Feb 2026 13:26:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 20.208.138.155) smtp.mailfrom=cern.ch; dkim=pass (signature was verified) header.d=cern.ch;dmarc=pass action=none header.from=cern.ch; Received-SPF: Pass (protection.outlook.com: domain of cern.ch designates 20.208.138.155 as permitted sender) receiver=protection.outlook.com; client-ip=20.208.138.155; helo=mx3.crn.activeguard.cloud; pr=C Received: from mx3.crn.activeguard.cloud (20.208.138.155) by AMS0EPF000001AB.mail.protection.outlook.com (10.167.16.151) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 13:26:28 +0000 Authentication-Results-Original: auth.opendkim.xorlab.com; dkim=pass (1024-bit key; unprotected) header.d=cern.ch header.i=@cern.ch header.a=rsa-sha256 header.s=selector1 header.b=TLiFcq+W Received: from ZR1P278CU001.outbound.protection.outlook.com (mail-switzerlandnorthazlp17012050.outbound.protection.outlook.com [40.93.85.50]) by mx3.crn.activeguard.cloud (Postfix) with ESMTPS id 0CCBA7EE76 for <libabigail@sourceware.org>; Tue, 24 Feb 2026 14:26:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cern.ch; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=029GfWF4JorLugc3+uKYYMyxyRVhomciBnacrNQJgXs=; b=TLiFcq+Wtc5ErzH1zEslxpgLxC5o0fZBaJIUcHwYgKk9PiZeC7WTkv7NEOmbYD5tgtCBa6PDVhPDFpRMvWcIXr0tNGyIxy2sSp+hzU96l4p/EiYt8Z0nJQXg/LLoHv/vVEauw9S+Y72YwnYAwYaXP6vYVUy6SXHx6J9CwAu/Zag= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cern.ch; Received: from GVAP278MB0151.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:3f::8) by GVAP278MB0972.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:47::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb 2026 13:26:25 +0000 Received: from GVAP278MB0151.CHEP278.PROD.OUTLOOK.COM ([fe80::d451:e182:5808:68c1]) by GVAP278MB0151.CHEP278.PROD.OUTLOOK.COM ([fe80::d451:e182:5808:68c1%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026 13:26:25 +0000 From: Chris Burr <christopher.burr@cern.ch> To: libabigail@sourceware.org Cc: Chris Burr <christopher.burr@cern.ch> Subject: [PATCH 0/3] Speedup abidiff for large symbol diffs Date: Tue, 24 Feb 2026 14:26:21 +0100 Message-ID: <20260224132624.3469488-1-christopher.burr@cern.ch> X-Mailer: git-send-email 2.47.1 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: FR3P281CA0175.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a0::12) To GVAP278MB0151.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:3f::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: GVAP278MB0151:EE_|GVAP278MB0972:EE_|AMS0EPF000001AB:EE_|ZR2P278MB1099:EE_ X-MS-Office365-Filtering-Correlation-Id: 4bebc0af-890a-42c4-93c3-08de73a850db X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|10070799003|366016|19092799006|786006|1800799024|376014|7142099003; X-Microsoft-Antispam-Message-Info-Original: qJFGrJ+Uke/gZHQVrHBhBCHwGDKuprRayBnRANoozpejDNhHq5hWlKdAoQVw0oF3dwdd/Rl+SnhyWQ30oF6NfCme1bqIrjWRBH252k7unpDh7eGbpC4EkeMRbX8s8oLBMqXpwoV1JI+WMnhboWnGxfx6TlqbUvrIWYisCxoEZlZgIqp3EfXdOFzP2TiwMhHQcwuouzx7p4H0tPY/T6aDdpn7SvEJ7np++fngoqZqExZ9Hu6a4XmghgRSBy+HPiMz+QmrfsEHyVycP4xWjjQ7WIF2mScOqpYhteQL+8cTK1Ke8CP+qARZIm1I+UB5q3f8ePlctjgYgn3vNGWyQE7FELSBLfzGOqLz9RafeZsBqOirB1dfNH6VAQslXSw0z3cFGQcZntVB4QHDLJIgskisc20s2F2VxZa/kEfaOQohrWZM0elClgNY3I1QY/AbNKWkUSDeqgVe+LJ3OcUkhog6kEVAKb+Feh4srqP5jIeKcT1z0DRzIeeRWtEe9o47WTiewNRimOmfyzUONKMJJJ9lBmZXt6BNXakMpbL1v2lzHF92VnzgjDug0HrowNPnXzVbF0s5suO7sUWAU0xYcjd1EpidtXJRDFJ0xsjEeW7wlTq/EGt2vEQUPBmlq2XcHCi1waFPqtwU2J1pMBZ4ocxi2PunEbTs9L9MqP+kBBcd/kQIXH6S89rkJd8CWp8Vzi9C0dvrY6YE6hd0SIeN98VrKjm00Crhxk2VIXWnxAwBEEYizls3e0JcqG6q0THgCGrTBgXVHlAItSU4XsMu3x9AlzBDWET+TJTns3sPFWyygsls2z3z4ta2S10J/QrmJjKqaSszbT53VvYsN470gR5MEJl2uP4Y6YJLv903VvsZX26XGsvqYF5t3BpSnHW+24jt+MGKIxDHkfMBuJcZfq2UJojQ7JA/Ox0EnmLkI+TnzW9Y+uh95e0BaCJwGc7zToG3Bf4dPQ6WsBro0nTcJLzwkGFlH4y1aFNZI3lD2VDsWIv2T6oh9yeqE2vzo0RhQejYYoiFYUiVNc9IROujCuQwItAcJu1RzHxx4rQ7NvN4+bW1Ks6BLp4Uyf/UfRhAEVpad60fg/9BQKgvl4GksYXV54n+Ue5XdcYN399oEC+vYg3sHMPnnK99d41ygibeJNGn1jhwVLzJjgP9yXgk/DkMlh5b+/HQWT4aVMsPMYIF7pqjW3D/1BLP0iX3B64YTwF3Xmy7UuNJRcsG5MOHACp0nHQ9Kq7EL/dPD/DMhiCmbHo75OtRtIINct0cw+i41PB5SMIAgGccPP+xEXPYWjtURDnNhPRm7goCa6mcMhIWLRctQzLlbDVhtYQY124cbuTOJidZjUXvOVSJ+tnIhGf2SDUBTAjtq4szIVfHakC+2uoOKxUE3bO+iFbL8rD2bPAgHgR6aA9WDaRXOkus6gHuTlYW8KW4O1o127tnqvSEbJ9OcswA38hkwqu91NiIlpg+kTqUFE7zffWNL1S7SBWQGFnlOSgeM6An/Av+W2V0toikq3IsF+VMeokCFzz3lnluBh4ydV8uHU8OsB3q76zlO9ArK6PB/dbYYmI3mXybR6c= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GVAP278MB0151.CHEP278.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230040)(10070799003)(366016)(19092799006)(786006)(1800799024)(376014)(7142099003); DIR:OUT; SFP:1102; X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVAP278MB0972 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS0EPF000001AB.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 3bff072c-b32f-4eac-f8f1-08de73a84efd X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|14060799003|82310400026|786006|36860700013|19092799006|35042699022|1800799024|7142099003; X-Microsoft-Antispam-Message-Info: mYWCKRcmNK8Cwvdlm+nSJwtGjyvZ4+q2kKEToshj25G6gzOC/uNrtmS2Z62dBligkbkPgcPXK01gj6UhRysZmRgwZvOS1MtpNn8Q4wQ5qRzyfKi1Zw9UH3k2QeCY9yKa2RI86pJ6/XOBkq+MKcciPtT+Ly8jeqGA9X6UFst8mp48zlnO7wCflEvJRxYjJQf8/kE6uOF1AKsWMbft/8txCsDUq8eAl0u1ancuZvhEchr8Pqjbx+LXRESGj08m8/p+mPc+Ls4apUDXnrQLNhyt7KlpknoYZL28VdpQYuu4fw+nG59JK+b+BFB4GUYx+2dC2DaC6PQbJbIA1NDe6K154h+oOb7QzRaRp7T9RZYeckfQFmJNdxUUl/27j2n6baY8rmpoVTEsvKGV4j9ZQsjCfFjn88aLYtTHeEuZRG+dHyGYJGZsEcKEaPzqtJihMcJs560hNuxmaFsu1hkncfQGK1JgsQVtK1c8mgWN8VKy8uumZ5Nr797dLMFpLJ8UJuI+3ByquqRkJKBRl+vRhW8iuhwZzWoUf4AHH7zNMo58njbZH99lEH67hWinf/UDSOMpPOAc/+H0J7Igj+bXAz4blZIT2boFQUH9VZmNA4dAcinr6f0wk4V7Fp9Pk4NQUHRWU1WlfZUIHZ1gvEGMsv4SQI49yv7IGjJ40mEwAMicApxceZPbNJc1dzWl/KmgRyH99BjAZRyNJNeawZ1iubynN5fhbVhhsZkDv2FGu+pDmmxYbLiBrxpp62nrSnh4O/Tf5hnmbIctPN1/FXjGOpEA+nr4cKUfCKDZZ6ZsoqxI61pVASWWCuNHeQuYwavOKA0fN2HpLps8LFTPMhqVj1uFWhajLYmK8FEDi/0oci0/1I/bkyFMkk96VrDDjL+YKCAfRegC6CsbA+IZVc91IW8eG98sXEiyWDwlljHlUYGX2Kru1wcNvun5k0P6U5tFtGQokYpqyEPKOG5od+bixiWXM0I95B43sW7gh1cutspTxifUpdd1F9IK5FWY9DGe3E7DFnnNGNt0e3cfCdL9ggEVhbtE4MZtQiOhnqwX85Lfxz5w1KuqWtVUvIh87xSgyFJJAeCWn86feL3qmhTJ7Ce7WLNP/uPnmI3l//tv4ABEvQBiFkydmRoXcc1nUk8JMXRfJLKtZ+3aD91NmjjszSdZybx4ktUu7N5Hf3zuiOY5Ym+XFciTcgvIGtiqvDYZi1MKy6tmteVWBR9E4mPAQ0vqcQxSMrLPTE+iLWYJmLSR0+iZDg4L9IS9p55v93tpwDUn3gwPmM3mvI2r6SQPYh7mWlD1CZRZo3lE76d0ijaVjWq6kzzxAAO4YH4ahfLcHCbsbbgTYnBnKU3F0ZKNcp0YoxLR0tLDI4r5nCtNEK3XpmZLF5wm9yoWkaYDcY7uZ+l+a1d6pRD6szwinrUrmiWuN2cMSLeSz+PcrQQwPbDW70a58rcJQwH1Vv7Bg3+kqD8qJ8++GTpKLhxMNskMmvswMMuSnqlTEs++7aM/1RCXPuEHBrVco0OAKns0+XcZxmUmH6310Uw0n1tInFMaLcFt5ZKs703rv+gowBuei2UfVNz5wJa5x/BRaVTVnFehhrVwLyBZcQ8cHm3WpmvIkoyO98l+oAkAOx+Jky5tCizjTRgI+NA6by4ZT5qqXvpSHESHPS+w9KXGHjyJBwpIWODN2w== X-Forefront-Antispam-Report: CIP:20.208.138.155; CTRY:CH; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:mx3.crn.activeguard.cloud; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(14060799003)(82310400026)(786006)(36860700013)(19092799006)(35042699022)(1800799024)(7142099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /RCeqgYP6uO+zWirOSTOQ4zp1P2oQViBufyuSAGj94gVxImTtK2DfhZ+GnadzEyLuqpOAAjGiIii1aaO+LaVEbneeH68xov65Uf9YSrfj50hK/f312/5ejPauOq5PUvhcXbMVvbcEwTwZSqKy12p9wyIJqbVRQME+0Mbjb/Z0Csnv9LX6eSrsGQgnuFEUmU6DARCN1iuL2iz5on3zmmL7nr1hbY6AzmsCRbMxVNiZZhmS8f3xgqFBD0udc9G4KKGjUl5+jg/AEskWRuIMY3ges/v1WS72ZVQmnxWelmv2sVz8+gQ0oF34ueEpwfYAX5IiUMjnmhXkpFb6C8hJEGEzxJTf9UvWlFJaQOsEsvjgmpOKhMTX5QPrhEJpu0wrMH35SJS4Hn8rGTo4o8TAPs0A5HsqXGNaDMvt44T/SXXt/aCsiiwHa1kQwhufKUkc0mQ X-OriginatorOrg: cern.ch X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 13:26:28.0622 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4bebc0af-890a-42c4-93c3-08de73a850db X-MS-Exchange-CrossTenant-Id: c80d3499-4a40-4a8c-986e-abce017d6b19 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c80d3499-4a40-4a8c-986e-abce017d6b19; Ip=[20.208.138.155]; Helo=[mx3.crn.activeguard.cloud] X-MS-Exchange-CrossTenant-AuthSource: AMS0EPF000001AB.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZR2P278MB1099 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, JMQ_SPF_NEUTRAL, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Mailing list of the Libabigail project <libabigail.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/libabigail>, <mailto:libabigail-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/libabigail/> List-Post: <mailto:libabigail@sourceware.org> List-Help: <mailto:libabigail-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/libabigail>, <mailto:libabigail-request@sourceware.org?subject=subscribe> Errors-To: libabigail-bounces~patchwork=sourceware.org@sourceware.org |
| Series |
Speedup abidiff for large symbol diffs
|
|
Message
Chris Burr
Feb. 24, 2026, 1:26 p.m. UTC
When comparing corpora with large numbers of differing symbols (in my case a library which was linking to LLVM and accidentally exposing all LLVM symbols), abidiff was taking ~9 minutes. Two algorithmic bottlenecks were responsible: 1. compute_aliases_for_elf_symbol performed a full O(N) symbol table scan per call, yielding O(N^2) behavior. Fixed by using the existing hash table for O(1) lookup. 2. The corpus diff computation used Myers diff O(N*D) to compare symbol lists, but the downstream consumer only builds unordered maps. Replaced with direct hash-based set difference in O(N+M). Together, these reduce abidiff runtime on corpora with ~57K symbol changes from ~9 minutes to ~1 second. A regression test with 20K synthetic symbols is included. Chris Burr (3): ir: Speedup compute_aliases_for_elf_symbol comparison: Speedup corpus diff computation tests: Add perf regression test for symbol diff include/abg-comparison.h | 6 - src/abg-comparison-priv.h | 4 - src/abg-comparison.cc | 430 +- src/abg-ir.cc | 13 +- tests/data/Makefile.am | 3 + .../test-many-unreferenced-syms-report.txt | 19998 +++++++++++++++ .../test-many-unreferenced-syms-v0.abi | 14 + .../test-many-unreferenced-syms-v1.abi | 20004 ++++++++++++++++ tests/generate-perf-test-data.py | 44 + tests/test-abidiff-exit.cc | 15 + 10 files changed, 40251 insertions(+), 280 deletions(-) create mode 100644 tests/data/test-abidiff-exit/test-many-unreferenced-syms-report.txt create mode 100644 tests/data/test-abidiff-exit/test-many-unreferenced-syms-v0.abi create mode 100644 tests/data/test-abidiff-exit/test-many-unreferenced-syms-v1.abi create mode 100644 tests/generate-perf-test-data.py
Comments
Hello Chris, OK, let's get this straight, I am impressed. Congratulations and many thanks for diving into this topic. I have been willing to try to compare functions & variable "directly" as you did precisely to do away with the potentially quadratic behaviour of the otherwise great Myers diff algorithm but never got time to get to the bottom of it. And here you are, extremely welcome ;-) Chris Burr <christopher.burr@cern.ch> a écrit: > When comparing corpora with large numbers of differing symbols (in my > case a library which was linking to LLVM and accidentally exposing all > LLVM symbols), abidiff was taking ~9 minutes. Whoah. Out of curiosity, have you noticed speed gains when comparing, say, that binary against itself? Also, if the library is Free Software, maybe we can add it to the "big tests" suite of libabigail at https://sourceware.org/cgit/libabigail-tests/tree ? > Two algorithmic bottlenecks were responsible: > > 1. compute_aliases_for_elf_symbol performed a full O(N) symbol table > scan per call, yielding O(N^2) behavior. Fixed by using the > existing hash table for O(1) lookup. > > 2. The corpus diff computation used Myers diff O(N*D) to compare > symbol lists, but the downstream consumer only builds unordered > maps. Replaced with direct hash-based set difference in O(N+M). > > Together, these reduce abidiff runtime on corpora with ~57K symbol > changes from ~9 minutes to ~1 second. A regression test with 20K > synthetic symbols is included. Many thanks. I am looking at the patches and will be replying to them specifically. [...] Thanks again. Cheers,