mirror of
https://github.com/SukkaW/Surge.git
synced 2025-12-15 10:40:33 +08:00
Perf: improve speedtest hosts
This commit is contained in:
parent
175ba65127
commit
2d9c401219
@ -13,7 +13,7 @@ import { readFileIntoProcessedArray } from './lib/fetch-text-by-line';
|
||||
import { TTL, deserializeArray, fsFetchCache, serializeArray } from './lib/cache-filesystem';
|
||||
import { createMemoizedPromise } from './lib/memo-promise';
|
||||
|
||||
import { setAddFromArrayCurried } from './lib/set-add-from-array';
|
||||
import { createTrie } from './lib/trie';
|
||||
|
||||
const s = new Sema(2);
|
||||
|
||||
@ -90,9 +90,8 @@ const getPreviousSpeedtestDomainsPromise = createMemoizedPromise(async () => {
|
||||
});
|
||||
|
||||
export const buildSpeedtestDomainSet = task(import.meta.main, import.meta.path)(async (span) => {
|
||||
// Predefined domainset
|
||||
/** @type {Set<string>} */
|
||||
const domains = new Set<string>([
|
||||
const domainTrie = createTrie(
|
||||
[
|
||||
// speedtest.net
|
||||
'.speedtest.net',
|
||||
'.speedtestcustom.com',
|
||||
@ -179,12 +178,15 @@ export const buildSpeedtestDomainSet = task(import.meta.main, import.meta.path)(
|
||||
'mensura.cdn-apple.com', // From netQuality command
|
||||
// OpenSpeedtest
|
||||
'open.cachefly.net'
|
||||
]);
|
||||
],
|
||||
true,
|
||||
true
|
||||
);
|
||||
|
||||
await span.traceChildAsync(
|
||||
'fetch previous speedtest domainset',
|
||||
() => getPreviousSpeedtestDomainsPromise()
|
||||
.then(setAddFromArrayCurried(domains))
|
||||
.then(prevDomains => prevDomains.forEach(domainTrie.add))
|
||||
);
|
||||
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
@ -222,7 +224,7 @@ export const buildSpeedtestDomainSet = task(import.meta.main, import.meta.path)(
|
||||
pMap[keyword] = span.traceChildAsync(`fetch speedtest endpoints: ${keyword}`, () => querySpeedtestApi(keyword)).then(hostnameGroup => {
|
||||
return hostnameGroup.forEach(hostname => {
|
||||
if (hostname) {
|
||||
domains.add(hostname);
|
||||
domainTrie.add(hostname);
|
||||
}
|
||||
});
|
||||
});
|
||||
@ -245,7 +247,7 @@ export const buildSpeedtestDomainSet = task(import.meta.main, import.meta.path)(
|
||||
}).catch(() => reject);
|
||||
});
|
||||
|
||||
const deduped = span.traceChildSync('sort result', () => sortDomains(domainDeduper(Array.from(domains))));
|
||||
const deduped = span.traceChildSync('sort result', () => sortDomains(domainDeduper(domainTrie)));
|
||||
|
||||
const description = [
|
||||
...SHARED_DESCRIPTION,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user