[RFC] perf: use an internal module resolver to improve require performance (#14633)
* perf: use an internal module resolver instead of relative requires * perf: memoize the results of getting exported Electron properties * perf: make internal module changes consistent across sandboxed / bundled files
This commit is contained in:
parent
73d1b76b54
commit
54ef906832
32 changed files with 156 additions and 73 deletions
|
@ -1,5 +1,5 @@
|
|||
const common = require('../../../common/api/exports/electron')
|
||||
const moduleList = require('../module-list')
|
||||
const common = require('@electron/internal/common/api/exports/electron')
|
||||
const moduleList = require('@electron/internal/renderer/api/module-list')
|
||||
|
||||
// Import common modules.
|
||||
common.defineProperties(exports)
|
||||
|
@ -16,6 +16,6 @@ for (const {
|
|||
|
||||
Object.defineProperty(exports, name, {
|
||||
enumerable: !isPrivate,
|
||||
get: () => require(`../${file}`)
|
||||
get: common.memoizedGetter(() => require(`@electron/internal/renderer/api/${file}`))
|
||||
})
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@ const v8Util = process.atomBinding('v8_util')
|
|||
const { ipcRenderer, isPromise } = require('electron')
|
||||
const resolvePromise = Promise.resolve.bind(Promise)
|
||||
|
||||
const CallbacksRegistry = require('../callbacks-registry')
|
||||
const bufferUtils = require('../../common/buffer-utils')
|
||||
const CallbacksRegistry = require('@electron/internal/renderer/callbacks-registry')
|
||||
const bufferUtils = require('@electron/internal/common/buffer-utils')
|
||||
|
||||
const callbacksRegistry = new CallbacksRegistry()
|
||||
const remoteObjectCache = v8Util.createIDWeakMap()
|
||||
|
@ -349,8 +349,8 @@ const addBuiltinProperty = (name) => {
|
|||
}
|
||||
|
||||
const browserModules =
|
||||
require('../../common/api/module-list').concat(
|
||||
require('../../browser/api/module-list'))
|
||||
require('@electron/internal/common/api/module-list').concat(
|
||||
require('@electron/internal/browser/api/module-list'))
|
||||
|
||||
// And add a helper receiver for each one.
|
||||
browserModules
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue