diff --git a/packages/account-tree-controller/src/backup-and-sync/syncing/group.ts b/packages/account-tree-controller/src/backup-and-sync/syncing/group.ts index 2a6c90284e..de937e6750 100644 --- a/packages/account-tree-controller/src/backup-and-sync/syncing/group.ts +++ b/packages/account-tree-controller/src/backup-and-sync/syncing/group.ts @@ -38,6 +38,10 @@ export const createMultichainAccountGroupsBatch = async ( profileId: ProfileId, analyticsAction: BackupAndSyncAnalyticsAction, ): Promise => { + console.log(`[PERFORMANCE DEBUG] createMultichainAccountGroupsBatch - Creating ${maxGroupIndex + 1} account groups (batch) for entropy source: ${entropySourceId}`); + console.log(`[PERFORMANCE DEBUG] createMultichainAccountGroupsBatch - Max group index: ${maxGroupIndex}`); + console.log(`[PERFORMANCE DEBUG] createMultichainAccountGroupsBatch - Context: ${JSON.stringify(context)}`); + const numberOfAccountGroupsToCreate = maxGroupIndex + 1; // maxGroupIndex is zero-based, so we add 1 to get the count. backupAndSyncLogger( `Creating ${numberOfAccountGroupsToCreate} account groups (batch) for entropy source: ${entropySourceId}`, diff --git a/packages/multichain-account-service/src/MultichainAccountService.ts b/packages/multichain-account-service/src/MultichainAccountService.ts index 283e747c46..32f6d36b43 100644 --- a/packages/multichain-account-service/src/MultichainAccountService.ts +++ b/packages/multichain-account-service/src/MultichainAccountService.ts @@ -675,10 +675,16 @@ export class MultichainAccountService { toGroupIndex: number; entropySource: EntropySourceId; }): Promise>[]> { - return await this.#getWallet(entropySource).createMultichainAccountGroups( + console.log(`[PERFORMANCE DEBUG] MultichainAccountService - Creating multichain account groups from ${fromGroupIndex} to ${toGroupIndex} for entropy source: ${entropySource}`); + const start = performance.now(); + const result = await this.#getWallet(entropySource).createMultichainAccountGroups( { from: fromGroupIndex, to: toGroupIndex }, - { waitForAllProvidersToFinishCreatingAccounts: false }, + { waitForAllProvidersToFinishCreatingAccounts: true }, ); + const end = performance.now(); + console.log(`[PERFORMANCE DEBUG] MultichainAccountService - Time taken to create multichain account groups: ${end - start}ms`); + console.log(`[PERFORMANCE DEBUG] MultichainAccountService - Result: ${result.length} groups created`); + return result; } /** diff --git a/packages/multichain-account-service/src/MultichainAccountWallet.ts b/packages/multichain-account-service/src/MultichainAccountWallet.ts index d38114eefe..72393703de 100644 --- a/packages/multichain-account-service/src/MultichainAccountWallet.ts +++ b/packages/multichain-account-service/src/MultichainAccountWallet.ts @@ -327,6 +327,7 @@ export class MultichainAccountWallet< const results = await Promise.allSettled( providers.map(async (provider) => { const providerName = provider.getName(); + console.log(`[PERFORMANCE DEBUG] MultichainAccountWallet - Execution of buildGroupStateForRange. Start accounts creation for provider: ${providerName} from ${from} to ${to}`); const accounts = await this.#createAccountsRangeForProvider( provider, from, diff --git a/packages/multichain-account-service/src/providers/SnapAccountProvider.ts b/packages/multichain-account-service/src/providers/SnapAccountProvider.ts index eb0ce052c0..bda95507a3 100644 --- a/packages/multichain-account-service/src/providers/SnapAccountProvider.ts +++ b/packages/multichain-account-service/src/providers/SnapAccountProvider.ts @@ -387,11 +387,18 @@ export abstract class SnapAccountProvider extends BaseBip44AccountProvider { if (options.type === `${AccountCreationType.Bip44DeriveIndexRange}`) { if (batched) { // Batch account creations. + console.log(`[PERFORMANCE DEBUG] SnapAccountProvider ${this.getName()} (createAccountsV2) - Batching account creations with options: ${JSON.stringify(options)}`); + const start = performance.now(); snapAccounts = await createAccountsV2(options); + const end = performance.now(); + console.log(`[PERFORMANCE DEBUG] SnapAccountProvider ${this.getName()} (createAccountsV2) - Time taken to create accounts between ${options.range.from} and ${options.range.to}: ${end - start} ms`); + console.log(`[PERFORMANCE DEBUG] SnapAccountProvider ${this.getName()} (createAccountsV2) - Result: ${snapAccounts.length} accounts created`); } else { + console.log(`[PERFORMANCE DEBUG] SnapAccountProvider ${this.getName()} (createAccountV1) - Creating accounts one by one with options: ${JSON.stringify(options)}`); const { range } = options; // Create accounts one by one. + const start = performance.now(); for ( let groupIndex = range.from; groupIndex <= range.to; @@ -401,6 +408,9 @@ export abstract class SnapAccountProvider extends BaseBip44AccountProvider { snapAccounts.push(snapAccount); } + const end = performance.now(); + console.log(`[PERFORMANCE DEBUG] SnapAccountProvider ${this.getName()} (createAccountV1) - Time taken to create accounts: ${end - start} ms`); + console.log(`[PERFORMANCE DEBUG] SnapAccountProvider ${this.getName()} (createAccountV1) - Result: ${snapAccounts.length} accounts created`); } // Group indices are sequential, so we just need the starting index. @@ -439,6 +449,7 @@ export abstract class SnapAccountProvider extends BaseBip44AccountProvider { async createAccounts( options: CreateAccountOptions, ): Promise[]> { + console.log(`[PERFORMANCE DEBUG] SnapAccountProvider ${this.getName()} - Creating accounts with options: ${JSON.stringify(options)}`); assertCreateAccountOptionIsSupported(options, [ `${AccountCreationType.Bip44DeriveIndex}`, `${AccountCreationType.Bip44DeriveIndexRange}`,