这是我 github 上提的一个 issue, 好久了, 没人理 https://github.com/electron/electron/issues/25208
我在主进程使用 sqlite3 或者像 demo 上用 indexeddb 都避免不了这种处理大量数据引发的内存问题
敢问大佬们有没有解决方案
也只是很简单的一个 demo, 没什么骚操作
const Dexie = require('dexie')
const fs = require('fs-extra')
const path = require('path')
const { v4: uuid } = require('uuid')
const DB_NAME = 'haha'
const DB_VERSION = 1
class Database extends Dexie {
testData
constructor() {
super(DB_NAME)
this.setupSchema()
}
setupSchema() {
this.version(DB_VERSION).stores({
testData: 'id, xx_id, xxxx_id, user, remark, level, deleted_at, created_at, xxxxxasdasd'
})
this.testData = this.table('testData')
}
}
const db = new Database()
fs.readJSON(path.join(__dirname, './data.json')).then(async res => {
for (let i = 0; i < 30; i ++) {
res = res.map(item => ({ ...item, id: uuid() }))
const t = Date.now()
await db.testData.clear()
await db.testData.bulkPut(res)
await db.testData.toArray()
console.log(`${i} exec cost: `, Date.now() - t)
document.getElementById('done').innerText = String(i)
}
})
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.