Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的node.js在比较列表时会锁定吗?_Javascript_Node.js_List_Performance_Cpu - Fatal编程技术网

Javascript 我的node.js在比较列表时会锁定吗?

Javascript 我的node.js在比较列表时会锁定吗?,javascript,node.js,list,performance,cpu,Javascript,Node.js,List,Performance,Cpu,基本上,我在计划的node.js应用程序上有两个列表,一个来自数据库,另一个来自复制服务器上的文件名并将其存储在列表中 问题是:它们都有大约750000个字符串,我需要在一个字符串中搜索另一个字符串中的每个字符串 我对node还很陌生,所以我想知道,在比较列表时,我的应用程序是否会向其他用户锁定自己,因为它是单线程的,而不是所有的?对我来说,比较这两个巨大的列表似乎需要大量的cpu。这取决于您是如何比较列表以及您的应用程序是如何构建的,但通常是这样的。例如,此代码将阻止执行: server.on

基本上,我在计划的node.js应用程序上有两个列表,一个来自数据库,另一个来自复制服务器上的文件名并将其存储在列表中

问题是:它们都有大约750000个字符串,我需要在一个字符串中搜索另一个字符串中的每个字符串


我对node还很陌生,所以我想知道,在比较列表时,我的应用程序是否会向其他用户锁定自己,因为它是单线程的,而不是所有的?对我来说,比较这两个巨大的列表似乎需要大量的cpu。

这取决于您是如何比较列表以及您的应用程序是如何构建的,但通常是这样的。例如,此代码将阻止执行:

server.onrequest、req、res=>{ //在比较运行时不会调用此函数。 //请求必须等待调用堆栈清空,直到没有任何内容 //他正在跑步。 } 比较主义者;
也许您应该查看一下Node.js应用程序,或者让它成为多线程应用程序,或者您可以并行执行另一个Node.js脚本。另外,请参见。

如果将它们构建到对象的键中,即将它们放入哈希表或使用合适的库,则可以将搜索从指数减少到线性。另外,这对数据库来说可能是一项很好的工作-可能创建一个临时表并用sql进行比较?我想可能编写2.json文件并对它们进行比较。这是一个好主意吗?如果您将它们与相同的Node.js进程进行比较,则不会。