From 16ce1d044396b3a59cc5817b676b1fd31a39f141 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Mon, 31 Mar 2025 22:12:10 +0800 Subject: [PATCH] Perf: improve domainlist performance --- Build/lib/parse-filter/domainlists.ts | 31 +-------------------------- 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/Build/lib/parse-filter/domainlists.ts b/Build/lib/parse-filter/domainlists.ts index d3007df2..cf9b2f02 100644 --- a/Build/lib/parse-filter/domainlists.ts +++ b/Build/lib/parse-filter/domainlists.ts @@ -1,13 +1,9 @@ import { fastNormalizeDomain, fastNormalizeDomainWithoutWww } from '../normalize-domain'; -import { processLine } from '../process-line'; import { onBlackFound } from './shared'; import { fetchAssets } from '../fetch-assets'; import type { Span } from '../../trace'; -function domainListLineCb(l: string, set: string[], meta: string, normalizeDomain = fastNormalizeDomain) { - const line = processLine(l); - if (!line) return; - +function domainListLineCb(line: string, set: string[], meta: string, normalizeDomain = fastNormalizeDomain) { const domain = normalizeDomain(line); if (!domain) return; @@ -24,31 +20,6 @@ function domainListLineCbIncludeAllSubdomain(line: string, set: string[], meta: set.push('.' + domain); } - -export function processDomainLists( - span: Span, - domainListsUrl: string, mirrors: string[] | null, includeAllSubDomain = false -) { - const lineCb = includeAllSubDomain ? domainListLineCbIncludeAllSubdomain : domainListLineCb; - - return span.traceChildAsync(`process domainlist: ${domainListsUrl}`, async (span) => { - const filterRules = await span.traceChildAsync('download', () => fetchAssets( - domainListsUrl, - mirrors, - true - )); - const domainSets: string[] = []; - - span.traceChildSync('parse domain list', () => { - for (let i = 0, len = filterRules.length; i < len; i++) { - lineCb(filterRules[i], domainSets, domainListsUrl, fastNormalizeDomainWithoutWww); - } - }); - - return domainSets; - }); -} - export function processDomainListsWithPreload( domainListsUrl: string, mirrors: string[] | null, includeAllSubDomain = false