我不确定 实际 值是多少,但我在 node.js 中看到 实际 上限约为 400,000(在具有 16 GB RAM 的 Mac 上) )。
这是我将数据库中的行添加到对象中的日志:
[[21:32:34.325]] [LOG] 340001, pint of delight
[[21:32:35.574]] [LOG] 350001, pound shrimp
[[21:32:36.545]] [LOG] 360001, ravioli allaragosta
[[21:32:37.721]] [LOG] 370001, roasted ham and cheese
[[21:32:39.862]] [LOG] 380001, salmon kama
[[21:32:41.152]] [LOG] 390001, scallops and vegetables
[[21:32:42.150]] [LOG] 400001, show cabernet ca
[[21:32:44.412]] [LOG] 410001, sloppy nachos
[[21:33:25.425]] [LOG] 420001, spaghetti or ziti sauce
[[21:35:37.839]] [LOG] 430001, steak au poivre vert
[[21:37:37.202]] [LOG] 440001, sushi moriawase
[[21:39:45.365]] [LOG] 450001, tequila shooters
[[21:42:09.036]] [LOG] 460001, toro roll with scallion
[[21:44:32.796]] [LOG] 470001, two enchiladas taco rice and refried beans
[[21:47:02.584]] [LOG] 480001, veuve clicquot ponsardin rose reims nv
[[21:49:04.020]] [LOG] 490001, whole turkey gourmet sides
[[21:51:15.264]] [LOG] finished
直到大约 400,000 条,插入 10,000 条新记录大约需要 1 秒。超过 410,000,时间几乎呈指数增长。
我不确定如何解决这个问题。也许制作 2 个对象并将它们每个限制为 400,000 个键...有点劳动密集型但比重写字典对象要好:)
更新:
看起来问题实际上是 使用的内存量,而不是对象的数量。我的机器在使用了大约 1.5 GB 的 RAM 时慢了下来。它可能与分配给 node.js 进程的内存相关联,可以通过以下参数增加内存:--max_old_space_size=4096(数字以 MB 为单位)。