electron 电子计算机中的重计算功能

enxuqcxy  于 2022-12-16  发布在  Electron
关注(0)|答案(1)|浏览(123)

我希望你做得很好!我是一个相对较新的电子和阅读了大量的文章后,我仍然困惑我应该把沉重的计算功能在电子。我计划使用节点库在这些功能,我已经阅读了大量的文章,这些功能应该放在主进程。然而,是不是有机会,这可能会开销我的主进程,因此,阻止我的渲染器?这绝对不是我想要的,我想知道为什么我不能把这些函数放在preload.js中。这不是更好的性能吗?另外,如果我只需要节点模块,只连接到我的API,如果我把这些函数放在preload.js中,是否仍然有安全问题?对不起,基本的问题,请让我知道!
谢谢

lp0sw83n

lp0sw83n1#

您可以使用在渲染器线程中创建的Web辅助进程。它们不会阻塞。
但是您提到计划使用节点模块。因此,根据它们是什么,从主进程运行它们可能更有意义。(但也请参见https://www.electronjs.org/docs/latest/tutorial/multithreading,它指出您可以独立于nodeIntegration设置nodeIntegrationInWorker
您也可以在Node中使用https://nodejs.org/api/worker_threads.html,或者对于流程级分离,也可以使用https://nodejs.org/api/child_process.html
注意浏览器中的工作线程(因此渲染器线程)不能共享内存。相反,你必须序列化它来来回传递它。如果你的繁重计算进程正在处理大型数据结构,请记住这一点。我注意到 node 工作线程说他们允许在线程之间共享内存。

相关问题